Amazon Kinesis Data Streams
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

KPL 主要概念

以下部分包含了解 Kinesis Producer Library (KPL) 并从中获益所需的概念和术语。

记录

在本指南中,我们区分了 KPL 用户记录Kinesis Data Streams 记录。当我们使用没有限定词的术语记录 时,我们指的是 KPL 用户记录。当我们提及 Kinesis Data Streams 记录时,我们会明确地表述 Kinesis Data Streams 记录

KPL 用户记录是对用户有特别含义的数据 Blob。示例包括表示网站上的 UI 事件的 JSON Blob 或 Web 服务器中的日志条目。

Kinesis Data Streams 记录是由 Kinesis Data Streams 服务 API 定义的 Record 数据结构的实例。它包含一个分区键、序列号和数据 Blob。

批处理

批处理 指对多个项执行单个操作而不是对每个单独的项重复执行操作。

在此背景下,“项”是一条记录,操作是将项发送到 Kinesis Data Streams。在非批处理情况下,您会将每条记录放置在一个单独的 Kinesis Data Streams 记录中,并发出一个 HTTP 请求以将其发送到 Kinesis Data Streams。利用批处理,每个 HTTP 请求可携带多条记录而不仅仅是一条记录。

KPL 支持两种批处理:

  • 聚合 – 在单条 Kinesis Data Streams 记录中存储多条记录。

  • 集合 – 使用 API 操作 PutRecords 将多条 Kinesis Data Streams 记录发送到 Kinesis stream 中的一个或多个分片。

这两种类型的 KPL 批处理旨在共存并可彼此独立启用或禁用。默认情况下,两种批处理将同时启用。

聚合

聚合 指在一条 Kinesis Data Streams 记录中存储多条记录。聚合允许客户增加每个 API 调用发送的记录的数目,这将有效增加创建器吞吐量。

Kinesis Data Streams 分片支持每秒最多 1000 条 Kinesis Data Streams 记录或 1 MB 吞吐量。每秒 Kinesis Data Streams 记录数限制将绑定具有 1 KB 以下的记录的客户。记录聚合允许客户将多条记录合并为一条 Kinesis Data Streams 记录。这使客户能够提高其每分片吞吐量。

考虑以下情况:区域 us-east-1 中的一个分片当前正在以每秒 1000 条记录的恒速运行,其中每条记录的大小为 512 个字节。利用 KPL 聚合,您可将 1,000 条记录打包到 10 条 Kinesis Data Streams 记录中,从而将 RPS 降低到 10 (每条记录 50 KB)。

集合

集合 指批处理多条 Kinesis Data Streams 记录并通过调用 API 操作 PutRecords 在单个 HTTP 请求发送这些记录,而不是在其自己的 HTTP 请求中发送每条 Kinesis Data Streams 记录。

与不使用集合相比,这将增加吞吐量,因为它减少了发出多个单独 HTTP 请求的开销。实际上,PutRecords 本身专用于实现此目的。

集合与聚合的不同之处在于,前者处理的是 Kinesis Data Streams 记录组。正在收集的 Kinesis Data Streams 记录仍可包含来自该用户的多条记录。可通过如下方式来可视化此关系:

record 0 --| record 1 | [ Aggregation ] ... |--> Amazon Kinesis record 0 --| ... | | record A --| | | ... ... | | record K --| | record L | | [ Collection ] ... |--> Amazon Kinesis record C --|--> PutRecords Request ... | | record S --| | | ... ... | | record AA--| | record BB | | ... |--> Amazon Kinesis record M --| ... | record ZZ--|

本页内容: