在 QLDB 中使用流进行开发 - Amazon Quantum Ledger Database (Amazon QLDB)

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

在 QLDB 中使用流进行开发

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

可以使用 KCL 为 Amazon Kinesis Data Streams 构建用户应用程序。KCL 提供低级 Kinesis Data Streams API 之上的有用抽象来简化编码。要了解有关 KCL 的详细信息,请参阅 Amazon Kinesis Data Streams 开发人员指南使用 Kinesis 客户端库

QLDB 日记账流 API

QLDB API 提供以下日记账流操作以供应用程序使用:

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

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

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

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

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

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

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

有关这些 API 操作的完整介绍,请参阅 Amazon QLDB API 参考

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

示例应用程序

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

基本操作(Java)

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

注意

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

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

运行代码

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

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

    注意

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

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

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

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

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

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

./gradlew run -Dtutorial=streams.StreamJournal

与 OpenSearch 服务集成 (Python)

有关演示如何将 QLDB 流与 OpenSearch 亚马逊服务集成的 Python 示例应用程序,请参阅 GitHub 存储库 aws-samples/-。amazon-qldb-streaming-amazon 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

要运行示例应用程序,请参阅上的自述文件 GitHub 以获取说明。

与 Amazon SNS 和 Amazon SNS 和 Amazon SSS(Python)集成

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

此应用程序使用 AWS Lambda 函数来实现 Kinesis Data Streams 使用者。它向 Amazon SNS 主题发送消息,该主题已订阅 Amazon Simple Queue Service(Amazon SQS)队列。

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

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

要运行示例应用程序,请参阅上的自述文件 GitHub 以获取说明。