使用直播进行开发 QLDB - 亚马逊 Quantum Ledger 数据库(亚马逊QLDB)

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

使用直播进行开发 QLDB

重要

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

本节总结了您可以使用 AWS SDK或在 Amazon 中创建和管理日记流的API操作QLDB。 AWS CLI 它还描述了演示这些操作并使用 Kinesis 客户端库 (KCL) 或 AWS Lambda 实现流使用者的示例应用程序。

您可以使用KCL为 Amazon Kinesis Data Streams 构建用户应用程序。它通过在低级 Kinesis Data Streams 之上提供有用的抽象来KCL简化编码。API要了解更多信息KCL,请参阅亚马逊 Kinesis Data Streams 开发者指南中的使用 Kinesis 客户端库

QLDB日记直播 APIs

QLDBAPI提供了以下日记流操作供应用程序使用:

  • StreamJournalToKinesis— 为给定QLDB账本创建日记账流。流捕获提交到分类账的日记账的每个文档修订,并将数据传送到指定的 Amazon Kinesis Data Streams 资源。

    • 默认情况下,Kinesis Data Streams 中的记录聚合处于启用状态。此选项允许在单个 Kinesis Data Streams 记录中QLDB发布多条数据记录,从而增加API每次调用发送的记录数量。

      记录聚合对记录处理具有重要影响,并且需要在流使用者中取消聚合。要了解更多信息,请参阅《Amazon Kinesis Data Streams 开发者指南》中的KPL关键概念和消费者分解

  • DescribeJournalKinesisStream— 返回有关给定QLDB日记流的详细信息。输出包括直播名称、当前状态、创建时间和原始直播创建请求的参数。ARN

  • ListJournalKinesisStreamsForLedger— 返回给定账本的所有QLDB日记账流描述符的列表。每个流描述符的输出都包含返回的DescribeJournalKinesisStream相同细节。

  • CancelJournalKinesisStream— 结束给定的QLDB日记流。在取消流式传输前,当前状态必须为ACTIVE

    停止历程后,您无法重新启动历程。要恢复向 Kinesis Data Streams 传输数据,您可以创建一个QLDB新的数据流。

有关这些API操作的完整说明,请参阅亚马逊QLDBAPI参考资料

有关使用创建和管理日记流的信息 AWS CLI,请参阅AWS CLI 命令参考

示例应用程序

QLDB提供了演示使用日记流进行各种操作的示例应用程序。这些应用程序在AWS 示例 GitHub 网站上是开源的。

基本操作(Java)

有关演示QLDB日记流基本操作的 Java 代码示例,请参阅 GitHub 存储库 a ws-samples/-amazon-qldb-dmv-sample java。有关如何下载和安装此示例应用程序的说明,请参阅 安装 Amazon QLDB Java 示例应用程序

注意

安装应用程序后,不要继续执行 Java 教程的步骤 1 来创建分类账。此流媒体示例应用程序将为您创建 vehicle-registration分 类账。

此示例应用程序打包了来自 Java 教程 及其依赖项的完整源代码,包括以下模块:

运行代码

StreamJournal类包含演示以下操作的教程代码:

  1. 创建名为的分类账vehicle-registration,创建表,然后在其中加载示例数据。

    注意

    在运行此代码之前,请确保您还没有名为 vehicle-registration 的活动分类账。

  2. 创建 Kinesis 数据流、QLDB允许担任 Kinesis 数据流写入权限的IAM角色和日志流。QLDB

  3. 使用启动流读取器,该读取器处理 Kinesis 数据流并记录每条QLDB数据记录。KCL

  4. 使用流数据来验证 vehicle-registration 示例分类账的哈希链。

  5. 通过停止流读取器、取消QLDB日记流、删除账本和删除 Kinesis 数据流来清理所有资源。

要运行StreamJournal教程代码,请从项目根目录中输入以下 Gradle 命令。

./gradlew run -Dtutorial=streams.StreamJournal

与 OpenSearch 服务集成 (Python)

有关演示如何将QLDB流与亚马逊 OpenSearch 服务集成的 Python 示例应用程序,请参阅 GitHub 存储库 aws-sam amazon-qldb-streaming-amazon ples/-。opensearch-service-sample-python此应用程序使用 AWS Lambda 函数来实现 Kinesis Data Streams 使用者。

在命令行输入以下 git 命令以克隆存储库。

git clone https://github.com/aws-samples/amazon-qldb-streaming-amazon-opensearch-service-sample-python.git

要运行示例应用程序,请参阅中的README GitHub 以获取说明。

与亚马逊SNS和亚马逊集成 SQS (Python)

有关演示如何将QLDB直播与亚马逊简单通知服务 (亚马逊SNS) 集成的 Python 示例应用程序,请参阅 GitHub 存储库 aws-sam amazon-qldb-streams-dmv ples/-。sample-lambda-python

此应用程序使用 AWS Lambda 函数来实现 Kinesis Data Streams 使用者。它向已订阅亚马逊简单队列服务 (AmazonSQS) 队列的亚马逊SNS主题发送消息。

在命令行输入以下 git 命令以克隆存储库。

git clone https://github.com/aws-samples/amazon-qldb-streams-dmv-sample-lambda-python.git

要运行示例应用程序,请参阅中的README GitHub 以获取说明。