使用 DynamoDB Streams Kinesis Adapter 处理流记录 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 DynamoDB Streams Kinesis Adapter 处理流记录

使用 Amazon Kinesis Adapter 是使用来自 Amazon DynamoDB 的流的建议方法。DynamoDB Streams API 有意与 Kinesis Data Streams 相似,这是一种用于实时处理大规模流数据的服务。在这两种服务中,数据流都由分片组成,分片是流记录的容器。这两种服务的 API 都包含 ListStreamsDescribeStreamGetShardsGetShardIterator 操作。(虽然这些 DynamoDB Streams 操作与 Kinesis Data Streams 中的对应操作类似,但它们并不完全相同。)

您可以使用 Kinesis 客户端库 (KCL) 为 Kinesis Data Streams 编写应用程序。KCL 提供低级 Kinesis Data Streams API 之上的有用抽象来简化编码。有关 KCL 的更多信息,请参阅 Amazon Kinesis Data Streams 开发人员指南中的使用 Kinesis 客户端库开发使用者

作为 DynamoDB Streams 用户,您可以使用 KCL 中找到的设计模式来处理 DynamoDB Streams 分片和流记录。若要执行此操作,请使用 DynamoDB Streams Kinesis Adapter。Kinesis Adapter 实现 Kinesis Data Streams 接口,以便 KCL 可用于使用和处理来自 DynamoDB Streams 的记录。有关如何设置和安装 DynamoDB Streams Kinesis 适配器的说明,请参阅存储库。GitHub

下图表显示了这些库之间的交互方式。

有了 DynamoDB Streams Kinesis Adapter,您可以开始针对 KCL 接口进行开发,使 API 调用无缝定向到 DynamoDB Streams 终端节点。

应用程序启动后,调用 KCL 来实例化工作进程。您必须向工作人员提供应用程序的配置信息,例如流描述符和 Amazon 凭证,以及您提供的记录处理器类的名称。在记录处理器中运行代码时,工作进程执行以下任务:

  • 连接到流

  • 枚举流中的分片

  • 协调与其他工作程序的分片关联(如果有)

  • 为其管理的每个分片实例化记录处理器

  • 从流中提取记录

  • 将记录推送到对应的记录处理器

  • 对已处理记录进行检查点操作

  • 在工作程序实例计数更改时均衡分片与工作程序的关联

  • 在分片被拆分时平衡分片与工作程序的关联

注意

有关此处列出的 KCL 概念的说明,请参阅 Amazon Kinesis Data Streams 开发人员指南中的使用 Kinesis 客户端库开发使用者

有关将直播与配合使用的更多信息, Amazon Lambda 请参阅 DynamoDB 直播和触发器 Amazon Lambda