Amazon Quantum Ledger Database (QLDB) 是一种专用分类账数据库,可以提供对应用程序数据所做的所有更改的完整历史记录,这些历史记录能够以加密方式验证。
传统数据库允许您覆盖或删除数据,因此开发人员可以使用审计表和审计跟踪等技术来帮助跟踪数据沿袭。虽然这些方法可行,但它们需要自定义开发,可能难以扩展,并且需要应用程序开发人员承担责任以确保记录所有正确的数据。Amazon QLDB 中的数据被写入仅附加日志,从而为开发人员提供完整的数据沿袭。此外,Amazon QLDB 日志中的数据是不可变且可验证的,这意味着您可以信任分类账中的数据。
Amazon QLDB 的功能使其非常适合记录系统应用程序 – 数据完整性和可验证性至关重要的应用程序。例如,在供应链和物流领域,构建在 Amazon QLDB 上的应用程序将具有完整的更改历史记录,例如运营商之间和跨境的移动,可用于查询和分析。在财务方面,记录系统应用程序跟踪关键数据,例如信用和借记交易。银行可以使用 QLDB 轻松存储所有金融交易的永久和完整记录,而不是在其应用程序中构建复杂的记录保留功能。
Amazon QLDB 不是区块链或分布式分类账技术。区块链和分布式分类账技术专注于解决涉及多方的分散式应用程序的问题,其中不存在拥有该应用程序的单个实体,并且各方不一定完全相互信任。另一方面,QLDB 是一个分类账数据库,专为需要在其拥有的应用程序中维护完整且可验证的数据更改历史记录的客户而构建。Amazon QLDB 提供历史记录,不可变性和可验证性与完全托管的 AWS 数据库的熟悉性、可扩展性和易用性相结合。如果您的应用程序需要分散并涉及多个不受信任方,则区块链解决方案可能适用。如果您的应用程序需要完整且可验证的所有应用程序数据更改历史记录,但不涉及多个不受信任方,则 Amazon QLDB 非常适合。如果您有分布式分类账或区块链的使用案例,请参阅 Amazon Managed Blockchain。
除了提供完整且可验证的应用程序数据更改历史记录外,Amazon QLDB 还支持使用 ACID 语义、灵活的文档数据模型和熟悉的类似 SQL 的 API 进行事务处理。QLDB 也是一项完全托管的服务,可自动扩展以满足您的应用需求,而不需要任何预置。
为了连接到 Amazon QLDB 并处理分类账中的数据,您必须使用 AWS 提供的 QLDB 驱动程序。请遵循此链接中的步骤,以下载驱动程序并配置连接。
可以轻松地开始使用 Amazon QLDB,因为没有要管理的服务器或要预置的容量。您可以使用 AWS 管理控制台、AWS 命令行界面 (CLI)、一个 AWS CloudFormation 模板或通过调用 QLDB API 在数分钟内创建新的分类账。
Amazon QLDB 与普通区块链框架中的分类账相比,可执行 2-3 倍的事务。区块链框架是分散的,因此为了执行事务,它们需要网络的大多数成员就事务的有效性达成一致。另一方面,QLDB 采用了集中式设计,因而无需多方一致同意即可执行其事务。
Amazon QLDB 允许您使用 PartiQL 访问和操作数据,PartiQL 是一种新的开放标准查询语言,支持对 QLDB 面向文档的数据模型的 SQL 兼容访问,此模型包括半结构化和嵌套的数据,同时保持独立于任何特定数据源。要了解有关 PartiQL 的更多信息,请单击此处阅读。
有关 Amazon QLDB 定价,请参阅我们的定价页面。
Amazon QLDB 现已在以下 AWS 区域推出:美国东部(弗吉尼亚北部、俄亥俄)、美国西部(俄勒冈)、欧洲(爱尔兰、法兰克福)和亚太地区(新加坡、悉尼、首尔、东京)。此外,我们即将在其他区域推出这项服务。
使用 Amazon QLDB,您无需担心预置容量或配置读取和写入限制。您可创建分类账,定义表,并且 QLDB 会自动扩展以支持应用程序的需求。
您可以在 AWS 服务限制页面上查看与 Amazon QLDB 相关的限制。
截至目前,Amazon QLDB 不支持备份和还原功能。目前,导出到 S3 功能可用。使用此功能,您可以将 QLDB 日志的内容导出到 S3。
截至目前,Amazon QLDB 不支持时间点恢复功能。
Amazon QLDB 的分类账部署在多个可用区内,其中每个可用区有多个副本。我们保持区域内的冗余并确保从可用区故障中完全恢复。只有在写入到多个可用区中的持久存储后才会确认写入,因此,QLDB 是高度耐用的。
Amazon QLDB 是一项高可用服务。默认情况下,将跨一个区域中的可用区复制多个 QLDB 分类账副本。因此,在区发生故障的情况下,您仍可以继续运行 QLDB。
截至目前,Amazon QLDB 不支持跨区域复制。借助 QLDB 的导出到 S3 功能,客户可以将 QLDB 日志的内容导出到 S3 存储桶。可为跨区域复制配置 S3 存储桶。
Amazon QLDB 与 AWS Private Link 集成。客户可以创建 VPC 终端节点,这使得他们能够在私下将 VPC 连接到 PrivateLink 提供支持的受支持 AWS 服务,而无需互联网网关、NAT 设备、VPN 连接或 AWS Direct Connect 连接。
Amazon QLDB 使用与其他 AWS 服务相同的身份验证机制。此机制要求将请求签名附加到 HTTP 请求(标题或查询字符串)。使用其他请求字段和 AWS 凭据(访问密钥 ID 和秘密访问密钥)计算签名。
默认情况下,所有传输中数据和静态数据都经过加密。Amazon QLDB 于 2021 年 7 月 22 日发布对客户托管的 AWS KMS 密钥的支持。默认情况下,在此次发布之前创建的所有账本都受到 AWS 自有密钥的保护,但目前不符合使用客户托管密钥进行静态加密的资格。 您可以在 QLDB 控制台上查看账本的创建时间。
1/ 创建 Amazon Kinesis Data Stream (KDS):客户可以使用 Amazon Kinesis 控制台或 AWS 开发工具包创建 KDS 流。他们还可以使用现有流。
2/ 创建 Amazon QLDB 流:客户可以使用 Amazon QLDB 控制台或 AWS 开发工具包创建 Amazon QLDB 流。要创建流,您需要配置以下关键方面:
3/ 使用 KDS 流:客户可以使用 Kinesis 服务(例如 Kinesis Data Firehose 和 Kinesis Data Analytics)编写 Kinesis 应用程序,以使用和处理流。客户还可以使用 AWS Lambda 来利用 Kinesis Data Stream 记录。
Amazon QLDB 流式传输功能可提供至少一次交付保证。由 QLDB 流从日志生成的每个控制设置、数据块摘要和修订详情记录至少有一次会传输到 Amazon Kinesis。由于在某些情况下重复记录会出现在 Kinesis 流中,客户将需要在应用程序层中具有重复数据删除逻辑(如果应用程序需要此逻辑的话)。没有订购保证,因为先前的数据块和修订版可能会无序地发布在 Kinesis 流中。