京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者:Boris Scholl, Trent Swanson, Peter Jausovec
来源:大数据DT(ID:hzdashuju)
内容摘编自《云原生:运用容器、函数计算和数据构建下一代应用》
导读:数据库通常用来存储结构化数据,这些数据有明确定义的格式。在过去的几年中,已经发布了许多数据库,可供我们选择的数据库每年都在增长。这些数据库中有许多是为特定类型的数据模型和工作任务设计的。其中一些支持多种模型,通常被归类为多模型数据库。
了解数据库的各种分类有助于你在设计应用时选择正确的数据库。
01 键值数据库
通常,只需要使用主键甚至是部分键来检索应用程序的数据。键/值数据库可以被看作一个非常大的哈希表,该表在唯一的键下存储了一些值。存储的值可以通过键或者部分键高效地检索到。因为该值对于数据库是不透明的,所以如果需要按值来查找一条记录的话就需要逐条扫描。
键/值数据库中的键可以包含多个元素,甚至可以排序以提高查询效率。一些键/值数据库允许使用键的前缀进行查找,从而可以使用复合键。如果数据可以通过一些简单的键嵌套查询,那键/值数据库会是个不错的选择。
例如,我们将客户xyz的订单存储在键/值数据库中,可以使用客户ID作为键的前缀,结合订单号组成键“xyz-1001”来存储订单。可以使用整个键来检索特定的订单,也可以使用“xyz”前缀检索客户xyz的所有订单。
说明:键/值数据库通常是比较便宜的,且具有高度可伸缩性的数据存储。键/值数据库能够根据键对数据进行分区甚至重分区。使用键/值数据库时,选择键很重要,因为这将对数据存储的规模和读写性能产生重大影响。
02 文档数据库
文档数据库和键/值数据库类似,因为它也通过主键存储文档(值)。与键/值数据库不同的是,文档数据库中的文档需要符合某些定义好的结构,而键/值数据库几乎可以存储任意值。这使得文档数据库可以启用诸如维护二级索引的功能以及基于文档查询数据的功能。
通常存储在文档数据库中的值是哈希图(JSON对象)和列表(JSON数组)的组合。JSON格式在文档数据库中很常用,尽管许多数据库引擎使用了更高效的内部存储格式,例如MongoDB的BSON。
建议:当你从关系型数据库转换到基于文档的数据库时,你需要思考如何去组织数据。许多人需要时间来过渡到这种不同的数据建模方法。
传统关系型数据库(如PostgreSQL)存储的数据大部分也可以存储在文档数据库中。它们正变得越来越流行,与关系数据库不同,这些存储的文档可以很好地映射成编程语言中的对象,并且不需要对象关系映射(ORM)工具。
这些数据库通常不强制要求定义数据模式(schema),这对于在软件持续交付(CD)过程中需要更新数据模式的情形具有一些优势。
说明:不强制要求定义模式的数据库通常被称为“读时模式(schema on read)”,因为尽管数据库未强制要求模式,但是在使用数据的应用中存在固有的模式,并且需要知道如何转化读到的数据。
03 关系型数据库
关系型数据库将数据组织到称为表的二维结构中,该结构由列和行组成。一张表中的数据可以与另一表中的数据有关联,数据库系统可以保证这种关联。关系型数据库通常强制执行严格的模式,也称为“写时模式(schema on write)”,在该模式中,向数据库写入的数据必须符合数据库中定义的结构。
关系型数据库已经存在很长时间了,许多开发人员都有使用它们的经验。迄今为止,最流行和最常用的数据库仍然是关系型数据库。这些数据库非常成熟,可以处理包含大量关系的数据,并且拥有大量知道如何使用它们的工具和应用程序生态系统。
在文档数据库中可能很难使用多对多关系,但是在关系型数据库中这非常简单。如果应用的数据具有很多关系,尤其是有事务处理的需求,那么这些数据库可能很合适。
04 图数据库
图数据库存储两种类型的信息:边和节点。边定义了节点之间的关系,你可以把节点看作实体。节点和边都具有属性,其中存储了该节点或边的一些信息。边通常会定义关系的方向或性质。
图数据库可以很好地分析实体之间的关系。图数据也可以存储在任何其他数据库中,但是当图的遍历变得越来越复杂时,其他类型的存储可能很难满足图数据对性能和伸缩性的需求。
05 列族数据库
列族数据库(column family database)将数据组织成行和列,乍一看可能与关系型数据库非常相似。你可以将列族数据库视为行和列组成的表格数据,但是列被分了组,称为列族。
每个列族包含了一组逻辑上相关的列,通常被作为一个单元进行检索或操作。能被单独访问的数据可以存储在单独的列族中。在一个列族中,可以动态添加新列,并且行可以是稀疏的(也就是说,行不需要在每个列下面都有值)。
06 时序数据库
时序数据库是针对时间进行优化的数据库,可根据时间来存储值。这些数据库通常需要支持大量的写操作。它们通常被用于从大量数据源实时收集大量数据。这些数据很少更新,删除操作通常是批量进行的。写入时序数据库的记录通常很小,但记录的量很多。
时序数据库非常适合存储遥测数据。流行的用途包括物联网(IoT)传感器或应用程序/系统的计数器。时序数据库通常会提供数据保持、下采样以及根据数据使用模式的配置将数据保存到其他存储中的功能。
07 搜索引擎
搜索引擎数据库通常用于搜索保存在其他存储和服务中的数据。搜索引擎数据库可以对大量的数据建立索引,并提供近实时的索引查询。
除了搜索像网页这样的非结构化的数据,许多应用程序还使用它为其他数据库中的数据提供结构化和即时搜索功能。有一些数据库也能提供全文索引功能,但是搜索数据库还具备通过词干和泛化将单词缩减为词根的功能。
关于作者:鲍里斯·肖勒(Boris Scholl)是Azure计算团队的产品架构师,专注于下一代分布式系统平台和应用程序模型的研究,拥有多项有关云计算与分布式系统的专利。
特伦特·斯旺森(Trent Swanson)是专注于云和边缘技术的软件架构师。他帮助了不少微软的大客户把应用迁移上云,或在云中构建应用。
彼得·加索维奇(Peter Jausovec)是一名软件工程师,在软件开发和技术领域有10多年的经验。近年来,他一直致力于开发分布式系统上的云原生解决方案。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
当沃尔玛数据分析师首次发现 “啤酒与尿布” 的高频共现规律时,他们揭开了数据挖掘最迷人的面纱 —— 那些隐藏在消费行为背后 ...
2025-11-03这个问题精准切中了配对样本统计检验的核心差异点,理解二者区别是避免统计方法误用的关键。核心结论是:stats.ttest_rel(配对 ...
2025-11-03在 CDA(Certified Data Analyst)数据分析师的工作中,“高维数据的潜在规律挖掘” 是进阶需求 —— 例如用户行为包含 “浏览次 ...
2025-11-03在 MySQL 数据查询中,“按顺序计数” 是高频需求 —— 例如 “统计近 7 天每日订单量”“按用户 ID 顺序展示消费记录”“按产品 ...
2025-10-31在数据分析中,“累计百分比” 是衡量 “部分与整体关系” 的核心指标 —— 它通过 “逐步累加的占比”,直观呈现数据的分布特征 ...
2025-10-31在 CDA(Certified Data Analyst)数据分析师的工作中,“二分类预测” 是高频需求 —— 例如 “预测用户是否会流失”“判断客户 ...
2025-10-31在 MySQL 实际应用中,“频繁写入同一表” 是常见场景 —— 如实时日志存储(用户操作日志、系统运行日志)、高频交易记录(支付 ...
2025-10-30为帮助教育工作者、研究者科学分析 “班级规模” 与 “平均成绩” 的关联关系,我将从相关系数的核心定义与类型切入,详解 “数 ...
2025-10-30对 CDA(Certified Data Analyst)数据分析师而言,“相关系数” 不是简单的数字计算,而是 “从业务问题出发,量化变量间关联强 ...
2025-10-30在构建前向神经网络(Feedforward Neural Network,简称 FNN)时,“隐藏层数目设多少?每个隐藏层该放多少个神经元?” 是每个 ...
2025-10-29这个问题切中了 Excel 用户的常见困惑 —— 将 “数据可视化工具” 与 “数据挖掘算法” 的功能边界混淆。核心结论是:Excel 透 ...
2025-10-29在 CDA(Certified Data Analyst)数据分析师的工作中,“多组数据差异验证” 是高频需求 —— 例如 “3 家门店的销售额是否有显 ...
2025-10-29在数据分析中,“正态分布” 是许多统计方法(如 t 检验、方差分析、线性回归)的核心假设 —— 数据符合正态分布时,统计检验的 ...
2025-10-28箱线图(Box Plot)作为展示数据分布的核心统计图表,能直观呈现数据的中位数、四分位数、离散程度与异常值,是质量控制、实验分 ...
2025-10-28在 CDA(Certified Data Analyst)数据分析师的工作中,“分类变量关联分析” 是高频需求 —— 例如 “用户性别是否影响支付方式 ...
2025-10-28在数据可视化领域,单一图表往往难以承载多维度信息 —— 力导向图擅长展现节点间的关联结构与空间分布,却无法直观呈现 “流量 ...
2025-10-27这个问题问到了 Tableau 中两个核心行级函数的经典组合,理解它能帮你快速实现 “相对位置占比” 的分析需求。“index ()/size ( ...
2025-10-27对 CDA(Certified Data Analyst)数据分析师而言,“假设检验” 绝非 “套用统计公式的机械操作”,而是 “将模糊的业务猜想转 ...
2025-10-27在数字化运营中,“凭感觉做决策” 早已成为过去式 —— 运营指标作为业务增长的 “晴雨表” 与 “导航仪”,直接决定了运营动作 ...
2025-10-24在卷积神经网络(CNN)的训练中,“卷积层(Conv)后是否添加归一化(如 BN、LN)和激活函数(如 ReLU、GELU)” 是每个开发者都 ...
2025-10-24