第 7 步:收尾 - Amazon Kinesis Data Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

第 7 步:收尾

由于您需要付费使用 Kinesis 数据流,请确保在使用完后删除流和相应的 Amazon DynamoDB 表。即使您不发送和获取记录,活动流也会产生象征性的费用。这是因为活动流将持续“侦听”传入记录和获取记录的请求,这将耗用资源。

删除流和表
  1. 关闭您可能仍在运行的任何创建者和使用者。

  2. 打开 Kinesis 控制台,网址为:https://console.aws.amazon.com/kinesis

  3. 选择为此应用程序创建的流 (StockTradeStream)。

  4. 选择 Delete Stream (删除流)

  5. https://console.aws.amazon.com/dynamodb/ 打开 DynamoDB 控制台。

  6. 删除 StockTradesProcessor 表。

摘要

近乎实时处理大量数据不需要编写任何功能强大的代码或开发大型基础设施。这就像编写逻辑来处理少量数据(如编写 processRecord(Record))一样简单,但会使用 Kinesis Data Streams 进行扩展以使该逻辑能处理大量流数据。您无需担心处理的扩展方式,因为 Kinesis Data Streams 将为您完成这一工作。您只需将流记录发送到 Kinesis Data Streams 并编写用于处理收到的每条新记录的逻辑。

以下是针对此应用程序的一些可能的改进。

跨所有分片进行聚合

当前,通过聚合单个分片中单个工作线程收到的数据记录来获得统计数据。(一个分片不能同时由单个应用程序中的多个工作线程处理。) 当然,当您扩展并具有多个分片时,可能希望跨所有分片聚合。可通过部署管道架构完成此操作。在该架构中,每个工作线程的输出都注入具有单个分片的另一个流,分片由聚合第一个阶段输出的工作线程处理。由于来自第一个阶段的数据是有限的(每分片每分钟一个示例),因此一个分片即可轻松处理它。

缩放处理

当流进行扩展以包含多个分片(因为多个创建器正在发送数据)时,扩展处理的方式是添加更多工作程序。可以在 Amazon EC2 实例中运行工作程序并使用自动扩缩组。

使用 Amazon S3/DynamoDB/Amazon Redshift/Storm 连接器

在连续处理流时,其输出可以发送到其他目标。Amazon 提供了用于集成 Kinesis Data Streams 与其他 Amazon 服务和第三方工具的连接器