KPL 主要概念 - Amazon Kinesis Data Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

KPL 主要概念

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

Records

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

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

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

Batching

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

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

KPL 支持两种批处理:

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

  • 集合— 使用 API 操作PutRecords将多个 Kinesis Data Streams 记录发送到 Kinesis 数据流中的一个或多个分片。

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

Aggregation

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

Kinesis Data Streams 分片支持每秒最多 1,000 条 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)。

Collection

集合指批处理多个 Kinesis Data Streams 记录并通过调用 API 操作在单个 HTTP 请求发送这些记录PutRecords,而不是在其自己的 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--|