本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用直播进行开发 QLDB
重要
终止支持通知:现有客户可以在2025年7月31日终止支持QLDB之前使用亚马逊。有关更多详细信息,请参阅将亚马逊QLDB账本迁移到亚马逊 Aurora Postgr SQL
本节总结了您可以使用 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 教程的步骤 1 来创建分类账。此流媒体示例应用程序将为您创建 vehicle-registration
分 类账。
此示例应用程序打包了来自 Java 教程 及其依赖项的完整源代码,包括以下模块:
-
AWS SDK for Java
— 创建和删除 Kinesis Data Streams QLDB 和 Kinesis Data Streams 资源,包括账本QLDB、日记流和 Kinesis 数据流。 -
适用于 Java 的亚马逊QLDB驱动程序— 使用 PartiQL 语句在分类账上运行数据事务,包括创建表和插入文档。
-
Kinesis 客户端库:使用和处理 Kinesis 数据流中的数据。
运行代码
该StreamJournal
-
创建名为的分类账
vehicle-registration
,创建表,然后在其中加载示例数据。注意
在运行此代码之前,请确保您还没有名为
vehicle-registration
的活动分类账。 -
创建 Kinesis 数据流、QLDB允许担任 Kinesis 数据流写入权限的IAM角色和日志流。QLDB
-
使用启动流读取器,该读取器处理 Kinesis 数据流并记录每条QLDB数据记录。KCL
-
使用流数据来验证
vehicle-registration
示例分类账的哈希链。 -
通过停止流读取器、取消QLDB日记流、删除账本和删除 Kinesis 数据流来清理所有资源。
要运行StreamJournal
教程代码,请从项目根目录中输入以下 Gradle 命令。
./gradlew run -Dtutorial=streams.StreamJournal
与 OpenSearch 服务集成 (Python)
有关演示如何将QLDB流与亚马逊 OpenSearch 服务集成的 Python 示例应用程序,请参阅 GitHub 存储库 aws-sam amazon-qldb-streaming-amazon
在命令行输入以下 git
命令以克隆存储库。
git clone https://github.com/aws-samples/amazon-qldb-streaming-amazon-opensearch-service-sample-python.git
要运行示例应用程序,请参阅中的README
与亚马逊SNS和亚马逊集成 SQS (Python)
有关演示如何将QLDB直播与亚马逊简单通知服务 (亚马逊SNS) 集成的 Python 示例应用程序,请参阅 GitHub 存储库 aws-sam amazon-qldb-streams-dmv
此应用程序使用 AWS Lambda 函数来实现 Kinesis Data Streams 使用者。它向已订阅亚马逊简单队列服务 (AmazonSQS) 队列的亚马逊SNS主题发送消息。
在命令行输入以下 git
命令以克隆存储库。
git clone https://github.com/aws-samples/amazon-qldb-streams-dmv-sample-lambda-python.git
要运行示例应用程序,请参阅中的README