Amazon Kinesis Data Streams
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Kinesis Data Stream

Amazon Kinesis Data Streams 实时吸收大量数据、持久存储数据并使这些数据可供使用。Kinesis Data Streams 存储的数据单位是数据记录表示一组数据记录。流中的数据记录将分发到分片中。

分片具有流中的一系列数据记录。在创建流时,您将指定流的分片数。每个分片可支持 最多 每秒 5 次交易 可用于读取,最多可达的最大总数据读取速率为 每秒 2 MB。分片也可支持 最多 每秒 1000 条记录 可用于写入,最多可达的最大总数据写入速率为 每秒 1 MB (包括分区键)。流的总容量是其分片容量的总和。您可以根据需要增加或减少流中的分片数。但请注意,您需要按分片付费。

创建器将数据记录放入分片,使用者从分片中获取数据。

确定 Kinesis Data Stream 的初始大小

在创建流之前,您需要确定流的初始大小。在创建流后,可以使用 AWS 管理控制台或 UpdateShardCount API 动态扩展或缩减分片的容量。当有 Amazon Kinesis Data Streams application 从流使用数据时,您可以进行更新。

要确定流的初始大小,您需要以下输入值:

  • 写入流的数据记录的平均大小(以 KB 为单位,四舍五入为 1 KB),数据大小 (average_data_size_in_KB)。

  • 每秒写入流和从流读取的数据记录数 (records_per_second)。

  • 同时单独使用流中数据的 Amazon Kinesis Data Streams application 的数量,即使用者数 (number_of_consumers)。

  • 以 KB 为单位的传入写入带宽 (incoming_write_bandwidth_in_KB),等于 average_data_size_in_KB 乘以 records_per_second

  • 以 KB 为单位的传出读取带宽 (outgoing_read_bandwidth_in_KB),等于 incoming_write_bandwidth_in_KB 乘以 number_of_consumers

您可使用以下公式中的输入值计算流所需的分片的初始数目 (number_of_shards):

number_of_shards = max(incoming_write_bandwidth_in_KB/1000, outgoing_read_bandwidth_in_KB/2000)

创建流

您可以使用 Kinesis Data Streams 控制台、Kinesis Data Streams API 或 AWS CLI 创建流。

使用控制台创建流

  1. 通过以下网址打开 Kinesis Data Streams 控制台:https://console.amazonaws.cn/kinesis/

  2. 在导航栏中,展开区域选择器并选择一个区域。

  3. 选择 Create Stream

  4. Create Stream 页面上,输入流名称和所需分片数,然后单击 Create

    Stream List 页面上,在创建流的过程中,其 StatusCREATING。当流可以使用时,Status 会更改为 ACTIVE

  5. 选择流的名称。Stream Details (流详细信息) 页面显示了流配置摘要以及监控信息。

使用 Kinesis Data Streams API 创建流

  • 有关使用 Kinesis Data Streams API 创建流的信息,请参阅 创建流

使用 AWS CLI 创建流

  • 有关使用 AWS CLI 创建流的信息,请参阅 create-stream 命令。

更新流

您可以使用 Kinesis Data Streams 控制台、Kinesis Data Streams API 或 AWS CLI 更新流的详细信息。

注意

您可以为现有流或最近刚创建的流启用服务器端加密。

使用控制台更新流

  1. 通过以下网址打开 Kinesis Data Streams 控制台:https://console.amazonaws.cn/kinesis/

  2. 在导航栏中,展开区域选择器并选择一个区域。

  3. 选择流的名称。Stream Details 页面显示流配置摘要和监控信息。

  4. 要编辑分片数量,请在 Shards 部分中选择 Edit,然后输入新分片数。

  5. 要对数据记录启用服务器端加密,请选择 Server-side encryption 部分中的 Edit。选择要用作加密主密钥的 KMS 密钥,或者使用由 Kinesis 管理的默认主密钥 aws/kinesis。如果您对流启用加密,并使用自己的 KMS 主密钥,请确保您的创建者和使用者应用程序有权访问您使用的 KMS 主密钥。要将权限分配给应用程序以访问用户生成的 KMS 密钥,请参阅使用用户生成的 KMS 主密钥的权限

  6. 要编辑数据保留期,请选择 Data retention period 部分中的 Edit,然后输入新的数据保留期。

  7. 如果您已在自己账户上启用自定义指标,请在 Shard level metrics 部分中选择 Edit,然后指定流的指标。有关更多信息,请参阅 利用 Amazon CloudWatch 监控 Amazon Kinesis Data Streams 服务

使用 API 更新流

要使用 API 更新流详细信息,请参阅以下方法:

使用 CLI 更新流

有关使用 AWS CLI 更新流的信息,请参阅 Kinesis CLI 参考