云端NoSQL数据库类型对比

日期: 2024-05-13 作者:Kurt MarkoCraig Stedman翻译:邹铮 来源:TechTarget中国 英文

全球可扩展在线服务主要用于社交网络、流媒体内容、零售、支付系统和其他业务用途,该服务的出现极大地改变企业中的应用程序基础设施要求。最实质性的转变之一是IT系统存储和整理数据的方式。这导致企业更多地使用NoSQL数据库,作为数据管理策略的一部分。

关系数据库(例如Oracle数据库和Microsoft SQL Server)仍然是使用最广泛的数据库管理系统(DBMS)。但主流关系软件不太能够支持需要分布式扩展集群基础设施的应用程序。NoSQL技术更适合松散耦合系统,在这些系统中,应用程序数据和可执行代码分布在多个服务器上,也许还有数据中心。NoSQL还可以处理各种数据集,这些数据集不适合基于SQL的关系数据库的刻板模式,关系数据库最适合结构化数据。

由于NoSQL起源于开源社区,NoSQL供应商已经建立各种类型的数据库来针对不同类型的数据和用例。甲骨文、微软和其他关系数据库管理系统(RDBMS)供应商最终也开发了NoSQL数据库。现在,为了与整体市场向云数据库的转变保持一致,目前NoSQL系统在云端广泛可用,可用于自我管理的IaaS部署和供应商管理的数据库即服务(DBaaS)。

NoSQL数据库的利弊

总体而言,对于网络应用程序、移动应用程序和其他用途,与关系软件相比,NoSQL数据库具有一些优势。这些优势包括以下内容:

  • 在无模式或灵活模式环境中,NoSQL可处理各种数据类型。
  • 支持非结构化和半结构化数据,例如文本、图像、音频和视频。
  • 非常适合时间序列数据以及流数据,例如事件日志和物联网数据。
  • 在某些应用程序中,性能更高,延迟更低,尤其是大容量应用程序。
  • 水平扩展能力,以支持大型工作负载和数据量。
  • 访问各种开源数据库或源可用技术,这些技术的运行成本通常比专有的RDBMS低。

然而,从其他方面来看,这些好处是有代价的。例如,通过ACID属性:原子性、一致性、隔离性和持久性,关系数据库系统可快速确保数据一致性和可靠性。NoSQL数据库通常遵循BASE模型。BASE是基本可用、软状态和最终一致性的缩写,它优先考虑数据可用性和性能,而不是强大的一致性。这限制了NoSQL系统在事务处理应用程序中的使用,这些应用程序需要数据始终保持一致,尽管有些现在确实支持ACID事务。

此外,这些非关系型数据库通常缺乏内置机制去检查数据完整性;在这种情况下,必须在外部代码中完成。此外,虽然很多NoSQL数据库包含一些SQL功能(NoSQL一词现在通常代表“not only SQL”),但它们通常不支持复杂的SQL操作,例如复合选择语句或表连接。

NoSQL数据库类型

我们需要了解的是,NoSQL不是单一技术,而是几种不同类型数据库的总称。以下是四种主要的NoSQL数据库类型:

  1. 键值存储。这种类型的数据库将数据集整理为记录,其中包含与数据值匹配的唯一键值。它使用哈希表来存储这些键值,包含指向相关值的指针,这些值可以是单个条目,也可以是具有多个元素的复杂数据对象。键值存储就像字典:每个键都相当于一个单词,该值代表其含义。
  2. 文档数据库。文档数据库通常也将数据对象存储在键值对中,但将它们置于类似文档的结构中,该结构也可以嵌入有关内容的元数据。有时被称为文档存储或面向文档的数据库,它编码文档的格式包括JSONXMLYAML和其他文本格式或二进制变体,例如二进制JSON-通常称为BSON
  3. 宽列存储。这种DBMS技术按列而不是行整理数据。顾名思义,宽列存储可以包含很多列的表,使其能够处理特别大的数据集。列被分组到相关数据族中,这也被称为列族数据库或列族存储。
  4. 图形数据库。这种类型消除了常见的行列数据库结构,而是使用类似图形的数据库结构来存储数据集作为节点集合。图形数据库显示节点之间的连接,并突出显示其关系。可以列出属性或特性,以进一步描述节点及其相关性。

这些技术也可以是NoSQL产品,但并不完全属于该阵营:

  • 内存缓存。这是一种键值存储,旨在完全适合系统内存。这样做可以加速性能,并可能降低成本,因为不需要仅仅为了处理某个应用程序功能或场景而扩展整个数据库。有些关系数据库也在内存中运行,仍然将数据存储在完整的关系表中。
  • 搜索数据库。搜索数据库是一个专门的文档存储,其中文档索引可以分片并分布在多个节点上,以提供大规模的可扩展性,并通过搜索功能加速条目的检索。也称为数据库搜索引擎,它们有时被视为单独的技术类别。
  • 时间序列数据库。简称TSDB,该数据库收集持续生成的数据,并按时间戳的顺序存储。这些数据示例包括股市、传感器和IT网络数据。有时也建立在关系引擎上,时间序列数据库可用于跟踪此类数据集,并分析它们如何随时间变化。

此外,NoSQL供应商越来越多地将其产品转化为多模型数据库,这些数据哭可支持多个数据模型,例如,通过将图形、时间序列和全文搜索模块添加到文档数据库中。生成性人工智能的兴起还促使很多供应商开始添加矢量数据库功能,以便在非结构化数据集中进行大规模相似性搜索,例如支撑GenAI工具的大型语言模型中使用的文本。

NoSQL云数据库比较

随着公共云基础设施成为运行Web和移动应用程序以及其他IT工作负载的流行选择,云平台市场领导者AWS、微软和谷歌都构建了各种NoSQL数据库服务,以适应不同的数据类型和用例。这里列出了每种类型的NoSQL数据库可用的技术。

正如比较表所示,云端还有很多其他开源数据库技术和商业NoSQL产品。对于DBaaS环境,用户可以在顶级云平台提供商(表中的三个,加上Oracle)和其他在一个或多个平台上托管其数据库的NoSQL供应商之间进行选择。每种第三方技术都有自己的特点和优势,可以使其成为云端最好的NoSQL选项。

在云端运行NoSQL数据库的另一个重大决定是部署模型:自我管理平台与完全托管的数据库服务。这种选择取决于企业是更喜欢内部配置和控制的数据库系统,还是选择取消前期资本支出和持续基础设施管理开销的托管DBaaS系统。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

翻译

邹铮
邹铮

相关推荐

  • Java、JDBC和Postgres

    现在越来越多的企业开始部署PostgreSQL,为什么呢?当你看到这个许可开源数据库所提供的功能,你就不会对此 […]

  • 5个元数据管理最佳实践

    在数据驱动的环境中,元数据不仅仅是数据的副产品;还是综合数据治理战略的关键组成部分。企业需要适当的元数据管理, […]

  • Cockroach Labs增加矢量搜索,更新定价选项

    Cockroach Labs 近日推出矢量搜索功能,旨在使客户能够访问和操作非结构化数据,以训练生成式人工智能 […]

  • 如何使用数据治理成熟度模型

    如果没有强大的数据治理,数据就无法产生有价值的见解以及改善决策。数据治理成熟度模型可帮助企业评估当前的成就水平 […]