亚马逊概述 QLDB - 亚马逊 Quantum Ledger 数据库(亚马逊QLDB)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊概述 QLDB

重要

终止支持通知:现有客户可以在2025年7月31日终止支持QLDB之前使用亚马逊。有关更多详细信息,请参阅将亚马逊QLDB账本迁移到亚马逊 Aurora Postgr SQL e。

以下各节概述了 Amazon QLDB 服务组件及其交互方式。

日记账优先

在传统的数据库架构中,通常将数据写入表中作为事务的一部分。事务日志 —(通常是内部实现)记录了所有事务及其对数据库所做的修改。事务日志是数据库的重要组成部分。在发生系统故障、灾难恢复或者数据复制时,您需要使用日志来重播事务。但是,数据库事务日志并非一成不变,也不是为用户提供直接、便捷的访问而设计的。

在 Amazon 中QLDB,日记是数据库的核心。此日记账在结构上与事务日志类似,是一种不可变的、仅限附加的数据结构,用于存储您的应用程序数据以及相关的元数据。所有写入事务(包含更新和删除)都将首先提交到日记账中。

QLDB使用日记账来确定账本数据的当前状态,方法是将其具体化为可查询的、用户定义的表格。这些表格还提供了所有事务数据(包含文档修订版和元数据)的可访问历史记录。此外,该日记账还处理分类账数据的并发性、排序、加密验证和可用性。

下图说明了期QLDB刊架构。

标题为QLDB:日记账是数据库,显示了日记账架构,其应用程序连接到账本并将交易提交到日记账,这些交易被具体化为表格。
  • 在此示例中,应用程序连接到分类账并运行在名为cars的表中插入、更新和删除文档的事务。

  • 数据首先按顺序写入日记账。

  • 然后,使用内置视图将数据具体化至表中。您可通过这些视图查询汽车的当前状态和完整历史记录,并为每个版本分配一个版本号。

  • 您也可直接从日记中导出或流式传输数据。

不可变的

由于该QLDB日记仅限追加,因此它会完整记录所有无法修改或覆盖的数据更改。没有APIs其他方法可以更改任何已提交的数据。这种日记账结构允许您访问和查询分类账完整历史记录。

注意

不变性QLDB支持的唯一例外是数据编辑。使用此功能,您可以遵守监管法规,例如欧盟的《通用数据保护条例》(GDPR) 和《加利福尼亚消费者隐私法》(CCPA)。

QLDB提供了一种密文操作,允许您永久删除表格历史记录中处于非活动状态的文档修订版本。密文操作仅删除指定修订版中的用户数据,而日记账序列和文档元数据则保持不变。这样可保持分类账的整体数据完整性。有关更多信息,请参阅 对文档修订版执行编校

QLDB在事务中向日志写入一个区块。每个块都包含代表您插入、更新和删除的文档修订版本的条目对象,以及提交这些修订的语句。这些数据块是按顺序排列以及哈希链的,以保证数据的完整性。

下面的示意图阐明了此日记账结构。

标题为记录的图表无法更改,其中显示了不可变的、仅限附加的日记结构QLDB,以及每个哈希链式日记块的序号。

该图显示,事务以数据块的形式提交到日记账中,这些数据块被哈希链连接以供验证。每个数据块都有一个序列号来指定其地址。

可通过密码验证

日记账数据块通过加密哈希技术进行排序并链接在一起,类似于数据块链。QLDB使用期刊的哈希链通过加密验证方法提供交易数据的完整性。使用摘要(代表日记账截至某个时间点的完整哈希链的哈希值)和默克尔审计证明(一种证明二叉哈希树中任何节点有效性的机制),您可以验证您的数据在任何时候都没有发生意想不到的变化。

下图显示了涵盖日记账在某个时间点的完整哈希链的摘要。

标题为使用 SHA -256 进行哈希链的示意图,显示了涵盖日记账完整哈希链的摘要,其日记块结构包含表示 Ion 文档、PartiQL 语句和元数据的条目。

在此图中,使用 SHA -256加密哈希函数对日志块进行哈希处理,并按顺序链接到后续块。每个数据块都包含包含您的数据文档、元数据和事务中运行的 PartiQL 语句的条目。

有关更多信息,请参阅 在 Amazon 中进行数据验证 QLDB

SQL-类似,文档灵活

QLDB使用 PartiQL 作为其查询语言,使用 Amazon Ion 作为其面向文档的数据模型。PartiQL 是一种开源、SQL兼容的查询语言,现已扩展为可与 Ion 配合使用。使用 PartiQL,您可以使用熟悉SQL的运算符插入、查询和管理数据。查询平面文档时,其语法与SQL用于查询关系表的语法相同。要了解有关 PartiQL QLDB 实现的更多信息,请参阅。亚马逊 P QLDB artiQL 参考资料

Amazon Ion 是... 的超集。JSONIon 是基于文档的开源数据格式,可让您灵活地存储和处理结构化、半结构化和嵌套数据。要了解有关 Ion 的更多信息QLDB,请参阅亚马逊中的 Amazon Ion 数据格式参考 QLDB

有关传统关系数据库中核心组件和功能与核心组件和功能的高级比较QLDB,请参阅从关系至分类账

开源开发人员工具

为了简化应用程序开发,QLDB提供了各种编程语言的开源驱动程序。您可以使用这些驱动程序API通过在账本上运行 PartiQL 语句并处理这些语句的结果来与交易数据进行交互。有关当前支持的驱动程序语言的信息和教程,请参阅 开始使用 Amazon QLDB 驱动程序

Amazon Ion 还提供可为您处理 Ion 数据客户端库。有关处理 Ion 数据的开发者指南和代码示例,请参阅上的 Amazon Ion 文档 GitHub。

无服务器且高度可用

QLDB完全托管、无服务器且高度可用。该服务会自动扩展,以支持您的应用程序需求,您无需预配置实例或容量。您的数据的多个副本将在 AWS 区域中的可用区内复制,并在中的可用区之间复制。

企业级

QLDB事务完全符合原子性、一致性、隔离性和耐久性 (ACID) 属性。QLDB使用乐观的并发控制 (OCC),事务以完全的序列化性运行,即最高级别的隔离。这意味着不存在出现幻像读取、脏读、写入偏差或者其他类似并发问题的风险。有关更多信息,请参阅 亚马逊QLDB并发模型