半岛bandao体育(中国)官方网站

BOB半岛平台:本文详细介绍了六种可选的数据存储技术。

日期:2024-06-21 22:41 / 作者:zoc7RcITctunhMtq7EzA
请联系数仓宝贝库公众号获取转载授权。

热数据应当保存在内存中进行处理,因此适合使用缓存或内存数据库(例如Redis或SAP Hana)。AWS提供ElastiCache服务,用于创建托管的Redis或Memcached环境。NoSQL数据库非常适合处理大量高速但小规模的记录,比如用户会话信息或物联网数据。NoSQL数据库在内容管理方面也非常有用,可用于存储数据目录BOB半岛下载。

1结构化数据存储

结构化数据存储已经有几十年的历史,是人们最为熟悉的数据储存技术。一般来说,Oracle、MySQL、SQL Server和PostgreSQL等大多数事务型数据库都采用行式存储结构,因为需要频繁处理来自软件应用程序的数据写入操作。公司通常会将事务性数据库用于报表生成,这种情况下需要频繁地读取数据,但写入数据的频率要低得多。随着对数据读取需求的增加,结构化数据存储查询领域出现了更多创新,比如列式文件格式的创新,可以提高数据读取性能,满足分析需求。将数据以行的形式存储在文件中,是基于行的格式。基于顺序写入的方式是将数据写入磁盘最快的方法,但并不一定能够最快地进行读取,因为需要跳过很多不相关的数据。将所有列值存储在文件中,采用基于列的格式。这种做法会产生更好的压缩效果,因为相同类型的数据现在被归类到一起了。一般来说,它还可以提高读取性能,因为您可以跳过不必要的列。让我们来探讨常见的结构化数据存储选项。比如说,你需要在订单表中查询某个月的销售总额,但是这个表有50列。在基于行的结构中,查询时会扫描整个表的50个列,但在列式结构中,查询时只扫描订单销售列,从而提高了数据查询性能。让我们再详细介绍一下关系型数据库,特别是着重介绍事务数据和数据仓库处理数据分析的需求。关系型数据库系统RDBMS较为适用于在线事务处理(OLTP)应用。Oracle、MSSQL、MariaDB、PostgreSQL等都是目前流行的关系型数据库。一些传统数据库已运行了几十年。许多应用程序,如电子商务、银行业务和酒店预订,都使用关系型数据库来支持。关系型数据库非常擅长处理涉及复杂联合查询的表之间的事务数据。根据业务数据的需求,关系型数据库需遵守原子性、一致性、隔离性和持久性原则,具体如下:\n原子性:事务必须从头到尾完全执行,发生错误时整个事务会回滚。 所有数据在事务完成后必须一致地提交到数据库中。 隔离性:要求多个事务可以同时运行,但彼此之间不会相互影响,在隔离的情况下。 永久性:在任何中断(比如网络或电源故障)的情况下,事务应该能够恢复到最近一次已知的状态。一般来说,关系型数据库中的数据会被迁移至数据仓库,用于生成报表和进行数据聚合。数据仓库是为更好地支持在线分析处理(OLAP)应用而设计的。数据仓库能够快速聚合大量的结构化数据。尽管Amazon Redshift、Netezza和Teradata等技术旨在高效执行复杂的聚合查询,但它们并没有专门针对大规模并发写入进行优化。因此,数据需要分阶段加载,这样仓库无法实时提供有关热数据的洞察。现代数据仓库采用列式存储以提升查询性能,比如Amazon Redshift、Snowflake和Google Big Query。由于采用了列存储技术,这些数据仓库能够实现高速查询,提升了输入输出的效率。Amazon Redshift等数据仓库系统可以通过在多个节点上实现并行查询以及大规模并行处理(MPP)来提升查询性能。

数据仓库是一个中央数据存储库,能够积累来自一个或多个数据库的数据。它们储存最新和过去的数据,用于生成业务数据的分析报告。尽管数据仓库集中存储了来自多个系统的数据,但它们并非数据湖。数据仓库只能处理有结构的关系型数据,而数据湖可以同时处理结构化的关系型数据和非结构化的数据,例如JSON、日志和CSV数据。亚马逊的 Redshift 等数据仓库解决方案能够处理 PB 级的数据量,并且提供独立的计算和存储功能,有利于节省成本。Redshift采用数据编码、数据分布和区域映射等方法来提升查询效率,不仅仅只使用列式存储。传统的基于行的数据仓库解决方案包括Netezza、Teradata和Greenplum。NoSQL数据库(如Dynamo DB、Cassandra和Mongo DB)能够解决关系型数据库经常面临的扩展性和性能挑战。就字面意思而言,NoSQL意味着非结构化查询语言。NoSQL数据库存储数据时没有明确的结构机制来连接不同表中的数据(没有连接或外键,也不符合范式)。NoSQL使用了多种数据模型,包括列式、键值、搜索、文档和图模型。NoSQL数据库具备可伸缩的性能,高可用性和韧性。NoSQL通常没有严格的数据库模式,每个记录都可以具有任意数量的属性,这意味着一行可以包含4个属性,而同一表中的另一行可以有10个属性。分区键被用来检索包含相关属性的值或者文档。NoSQL数据库是高度分布式的,并且具有复制功能。NoSQL数据库具有非常好的耐用性,高可用性,同时能够避免性能问题。

关系型数据库已经存在了好几十年,绝大多数人可能对它非常熟悉BOB半岛入口。让我们来仔细研究一下SQL数据库和NoSQL数据库之间的一些主要区别(详见表格1)。表1:SQL数据库与NoSQL数据库的差异\n根据数据特性,市场上有各种类型的NoSQL数据存储方案来解决特定问题。我们现在来探讨一下NoSQL数据库的种类。NoSQL数据库有不同类型,主要包括以下几种: 列式数据库:Apache Cassandra和Apache HBase 是常用的列式数据库。采用列式数据存储可以帮助在查询数据时只扫描特定列,而不是整行数据。如果表格有100万行和10列,你要查询库存中某一个物品的数量,列式数据库只需要查询物品数量列,而不需要扫描整个表格。 在文档数据库方面,MongoDB、Couchbase、MarkLogic、Dynamo DB和Cassandra是最受欢迎的选择。可以利用文档型数据库来储存半结构化数据的JSON和XML格式。 图数据库:一些流行的图数据库有 Amazon Neptune、JanusGraph、TinkerPop、Neo4j、OrientDB、GraphDB 和 Spark 上的 GraphX。图数据库用来存储顶点和它们之间的关系(称为边)。数据可以存储在关系型数据库和非关系型数据库中。内存键值存储:最受欢迎的内存键值存储包括Redis和Memcached。它们将数据保存在内存中,以满足高数据读取频率的需求。首先,应用程序的查询会传递到内存数据库,如果缓存中有数据可用,就不会对主数据库造成影响。内存数据库非常适合用来存储用户会话信息,因为这些数据通常会带来复杂的查询和频繁的数据请求,比如用户的个人资料。NoSQL有很多应用场景,但是如果要构建数据搜索服务,就需要对所有数据进行索引。Elasticsearch是大数据场景中最受欢迎的搜索引擎之一,用于存储和搜索数据(例如点击流和日志分析)。搜索引擎可以有效地支持临时查询具有任意数量属性(包括字符串令牌)的温数据。Elasticsearch非常受欢迎。通常情况下,普通的二进制或对象存储被用于处理非结构化、不可索引,以及其他无法通过专业工具理解其格式的数据。亚马逊 Elasticsearch 服务用于管理 Elasticsearch 集群,并提供 API 访问。它还包含Kibana,用作可视化工具,用于搜索Elasticsearch集群中存储的索引数据。AWS管理集群的容量、扩展和修补,减少了运维成本。日志搜索和分析是常见的大数据应用场景,Elasticsearch能够协助你分析网站、服务器和物联网传感器等设备产生的日志数据。大量的行业都在使用Elasticsearch,比如银行、游戏、营销、应用监控、广告技术、欺诈检测、推荐和物联网等。当您需要进行非结构化数据存储时,Hadoop似乎是一个理想的选择,因为它可扩展、可伸缩,同时也非常灵活。它能够在普通消费类设备上运行,并具有丰富的工具资源,运行起来似乎非常具有成本效益。Hadoop使用主节点和从节点的架构,数据存储在多个从节点上,主节点负责协调作业,进行数据查询和计算。Hadoop系统借助大规模并行处理(MPP),可以快速对各类数据进行查询,无论是结构化还是非结构化数据。在建立Hadoop集群时,每个新创建的子节点服务器都将附带本地Hadoop分布式文件系统(HDFS)的磁盘存储块。您可以利用常见的数据处理框架(如Hive、Presto和Spark)进行数据存储的查询操作。然而,本地磁盘上的数据仅在相关实例的生存周期内保留。如果使用Hadoop的存储层即HDFS来存储数据,那么存储和计算会耦合在一起。扩大存储空间需要加入更多机器,这样也可以提升计算能力。为了实现最灵活性和成本效益,需要将计算和存储分开,使它们可以相互独立地扩展。总的来说,对象存储更适合于创建数据湖,以经济高效的方式存储各种数据。利用云计算构建的数据湖,在对象存储的基础上,能够实现计算和存储功能的分离,保证了灵活性。数据湖是用来集中存储结构化和非结构化数据的地方。数据湖正逐渐成为集中存储和分析大量数据的一种流行选择。它以原始格式保存数据,并使用开源文件格式进行直接分析。由于数据可以直接以当前格式存储,所以不必进行预定义模式的转换,从而加快了数据摄取速度。根据图1,数据湖是企业中所有数据的主要来源。图1 数据湖的对象存储\n数据湖的优势如下:\n- 从各种来源采集数据:数据湖能够让您集中存储和分析来自多种来源(如关系型和非关系型数据库,以及流式数据)的数据,以产生唯一的真实来源。它回答了一些问题,比如为什么数据会分布在不同的地方?哪里可以找到唯一的来源?

收集并有效地存储数据:数据湖可以接收各种类型的数据,包括半结构化和非结构化数据,并且不需要任何特定的模式。这个问题已经得到了解答,就是如何快速提取各种来源、各种格式的数据,并有效地进行大规模存储。随着数据量的不断增加,数据湖可以将存储层和计算层进行分离,分别进行扩展。这就解决了随着数据量增加时如何调整规模的问题。

在不同数据源上应用分析方法:通过数据湖,您可以在读取时确定数据模式,并创建一个集中的数据目录,以汇总从不同来源收集的数据。这让您可以随时快速地分析数据。这个回答解决了是否可以在相同的数据上应用多种分析和处理框架的问题。您需要为数据湖提供一个能够无限扩展的数据存储解决方案。处理和存储分开会带来许多益处,例如能够利用不同工具对相同数据进行处理和分析。尽管这可能需要额外的步骤将数据加载到特定工具当中,但使用Amazon S3作为中央数据存储相比传统存储方案有更多的优势。

数据湖还具有其他优势。它可以让您的架构永远保持更新。假如12个月后,会有新技术可供您使用BOB半岛APP。由于数据已经存储在数据湖中,您可以以最小的成本将这种新技术整合到工作流程中。利用模块化系统在大数据处理流水线中构建,以AWS S3等通用对象存储作为核心,在需要时可以轻松替换特定模块,或者使用更优秀的工具。本篇文章的内容摘自《解决方案架构师修炼之道》,获得出版方授权发布。ISBN号码是国际标准书号的缩写,用于识别图书出版物。87111694441) 转载时请注明文章来源。

本文详细介绍了六种可选的数据存储技术。


BOB半岛APP BOB半岛平台