热数据须要在内存中存储和处置,因此适宜用缓存或内存数据库(如Redis或SAPHana)。AWS提供了ElastiCache服务,可生成托管的Redis或Memcached环境。NoSQL数据库是面向高速但小规模记载(例如,用户会话消息或物联网数据)的理想选用。NoSQL数据库关于内容治理也很有用,可以存储数据目录。
结构化数据存储曾经存在了几十年,是人们最相熟的数据存储技术。大少数事务型数据库(如Oracle、MySQL、SQLServer和PostgreSQL)都是行式数据库,由于要处置来自软件运行程序的频繁数据写入。企业经常将事务型数据库同时用于报表,在这种状况下,须要频繁读取数据,但数据写入频率要低得多。随着数据读取的需求越来越强,有更多的翻新进入了却构化数据存储的查问畛域,比如列式文件格局的翻新,它有助于提高数据读取性能,满足剖析需求。
基于行的格局将数据以行的方式存储在文件中。基于行的写入方式是将数据写入磁盘的最快方式,但它不必定能最快地读取,由于你必需跳过很多不相关的数据。基于列的格局将一切的列值一同存储在文件中。这样会带来更好的紧缩成果,由于相反的数据类型如今被归为一组。通常,它还能提供更好的读取性能,由于你可以跳过不须要的列。
咱们来看结构化数据存储的经常出现选用。例如,你须要从订单表中查问某个月的开售总数,但该表有50列。在基于行的架构中,查问时会扫描整个表的50个列,但在列式架构中,查问时只会扫描订单开售列,因此提高了数据查问性能。咱们再来详细引见相关型数据库,重点引见事务数据和数据仓库处置数据剖析的需求。
(1)相关型数据库
RDBMS比拟适宜在线事务处置(OLTP)运行。盛行的相关型数据库有Oracle、MSSQL、MariaDB、PostgreSQL等。其中一些传统数据库曾经存在了几十年。许多运行,包括电子商务、银行业务和酒店预订,都是由相关型数据库支持的。相关型数据库十分长于处置表之间须要复杂联结查问的事务数据。从事务数据的需求来看,相关型数据库应该保持原子性、分歧性、隔离性、耐久性准则,详细如下:
通常状况下,相关型数据库的数据会被转存到数据仓库中,用于报表和聚合。
(2)数据仓库
数据仓库更适宜在线剖析处置(OLAP)运行。数据仓库提供了对海量结构化数据的极速聚合配置。只管这些技术(如AmazonRedshift、Netezza和Teradata)旨在极速口头复杂的聚合查问,但它们并没有针对少量并发写入启动过优化。所以,数据须要分批加载,使得仓库无法在热数据上提供实时洞察。
现代数据仓库经常使用列式存储来优化查问性能,例如Amazon Redshift、Snowflake和Google BigQuery。得益于列式存储,这些数据仓库提供了十分快的查问速度,提高了I/O效率。除此之外,AmazonRedshift等数据仓库系统还经过在多个节点上并行查问以及大规模并行处置(MPP)来提高查问性能。
数据仓库是中央存储库,可以存储来自一个或多个数据库的累积数据。它们存储和历史数据,用于创立业务数据的剖析报告。只管,数据仓库集中存储来自多个系统的数据,但它们不能被视为数据湖。数据仓库只能处置结构化的相关型数据,而数据湖则可以同时处置结构化的相关型数据和非结构化的数据,如JSON、日志和CSV数据。
AmazonRedshift等数据仓库处置打算可以处置PB级的数据,并提供解耦的计算和存储配置,以节俭老本。除了列式存储外,Redshift还经常使用数据编码、数据散布和区域映射来提高查问性能。比拟传统的基于行的数据仓库处置打算包括Netezza、Teradata和Greenplum。
NoSQL数据库(如Dynamo DB、Cassandra和MongoDB)可以处置在相关型数据库中经常遇到的伸缩和性能应战。望文生义,NoSQL示意非相关型数据库。NoSQL数据库贮存的数据没有明白结构机制衔接不同表中的数据(没有衔接、外键,也不具有范式)。
NoSQL运用了多种数据模型,包括列式、键值、搜查、文档和图模型。NoSQL数据库提供可伸缩的性能、具有高可用性和韧性。NoSQL通常没有严厉的数据库形式,每条记载都可以有恣意数量的列(属性),这象征着某一行可以有4列,而同一个表中的另一行可以有10列。分区键用于检索蕴含相关属性的值或文档。NoSQL数据库是高度散布式的,可以复制。NoSQL数据库十分耐用,高可用的同时不会发生性能疑问。
SQL数据库曾经存在了几十年,大少数人或者曾经十分相熟相关型数据库。咱们来看SQL数据库和NoSQL数据库之间的一些严重区别(见表1)。
表1 SQL数据库和NoSQL数据库的区别
依据数据特点,市面上有各种类别的NoSQL数据存储来处置特定的疑问。咱们来看NoSQL数据库的类型。
NoSQL数据库的关键类型如下:
NoSQL有很多用例,但要树立数据搜查服务,须要对一切数据树立索引。
Elasticsearch是大数据场景(如点击流和日志剖析)最受欢迎的搜查引擎之一。搜查引擎能很好地支持对具有恣意数量的属性(包括字符串令牌)的温数据启动暂时查问。Elasticsearch十分盛行。普通的二进制或对象存储适用于非结构化、无法索引和其余没有专业工具能了解其格局的数据。
Amazon ElasticsearchService治理Elasticsearch集群,并提供API访问。它还提供了Kibana作为可视化工具,对Elasticsearch集群中的存储的索引数据启动搜查。AWS治理集群的容量、伸缩和补丁,省去了运维开支。日志搜查和剖析是经常出现的大数据运行场景,Elasticsearch可以协助你剖析来自网站、主机、物联网传感器的日志数据。Elasticsearch被少量的行业运行经常使用,如银行、游戏、营销、运行监控、广告技术、欺诈检测、介绍和物联网等。
当你有非结构化数据存储的需求时,Hadoop仿佛是一个完美的选用,由于它是可裁减、可伸缩的,而且十分灵敏。它可以运转在生产级设备上,领有庞大的工具生态,而且运转起来仿佛很划算。Hadoop驳回主节点和子节点形式,数据散布在多个子节点,由主节点协调作业,对数据启动查问运算。Hadoop系统附丽于大规模并行处置(MPP),这使得它可以极速地对各种类型的数据启动查问,无论是结构化数据还是非结构化数据。
在创立Hadoop集群时,从主机上创立的每个子节点都会附带一个称为本地Hadoop散布式文件系统(HDFS)的磁盘存储块。你可以经常使用经常出现的处置框架(如Hive、Ping和Spark)对存储数据启动查问。但是,本地磁盘上的数据只在相关实例的生命期内耐久化。
假设经常使用Hadoop的存储层(即HDFS)来存储数据,那么存储与计算将耦合在一同。参与存储空间象征着必需参与更多的机器,这也会提高计算才干。为了取得最大的灵敏性和最佳老本效益,须要将计算和存储分开,并将两者独立伸缩。总的来说,对象存储更适宜数据湖,以经济高效的方式存储各种数据。基于云计算的数据湖在对象存储的支持下,可以灵敏地将计算和存储解耦。
数据湖是结构化和非结构化数据的集中存储库。数据湖正在成为在集中存储中存储和剖析少量数据的一种盛行方式。它按原样存储数据,经常使用开源文件格局来成功间接剖析。由于数据可以按格局原样存储,因此不须要将数据转换为预约义的形式,从而提高了数据摄取的速度。如图1所示,数据湖是企业中一切数据的繁多实在起源。
图1 数据湖的对象存储
数据湖的好处如下:
随着发生的数据量始终裁减:数据湖准许你将存储层和计算层分开,对每个组件区分伸缩。这就回答了如何随着发生的数据量启动伸缩的疑问。
你须要为数据湖提供一个能有限伸缩的数据存储处置打算。将处置和存储解耦会带来渺小的好处,包括能够经常使用各种工具处置和剖析相反的数据。只管这或者须要一个额外的步骤将数据加载到对应工具中,但经常使用AmazonS3作为中央数据存储比传统存储打算有更多的好处。
数据湖还有其余好处。它能让你的架构永不过期。假定12个月后,或者会有你想要经常使用的新技术。由于数据曾经存在于数据湖,你可以以最小的开支将这种新技术拔出上班流程中。经过在大数据处置流水线中构建模块化系统,将AWSS3等通用对象存储作为骨干,当特定模块不再适用或有更好的工具时,可以自若地交流。
本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/8058.html