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

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

什么是 Amazon Kinesis Data Streams?

可以使用 Amazon Kinesis Data Streams 实时收集和处理大型数据记录。可以创建称为 Kinesis Data Streams 应用程序的数据处理应用程序。典型 Kinesis Data Streams 应用程序会将数据流中的数据作为数据记录读取。这些应用程序可使用 Kinesis Client Library,并且可在 Amazon EC2 实例上运行。可以将处理后的记录发送到控制面板,使用这些记录生成警报,动态更改定价和广告战略,或将数据发送给其他各个 Amazon 服务。有关 Kinesis Data Streams 功能和定价的信息,请参阅 Amazon Kinesis Data Streams

Kinesis Data Streams 是 Kinesis 流媒体数据平台的一部分,还有 Firehose、Kinesis Video Streams 和 Apache Flink托管服务。

有关 Amazon 大数据解决方案的更多信息,请参阅上的 Big Data Amazon。有关 Amazon 流数据解决方案的更多信息,请参阅什么是流数据?

我能用 Kinesis Data Streams 做什么?

您可以使用 Kinesis Data Streams 实现快速而持续的数据引入和聚合。使用的数据类型可以包括 IT 基础设施日志数据、应用程序日志、社交媒体、市场数据源和 Web 点击流数据。由于数据引入和处理的响应时间是实时的,因此处理通常是轻量级的。

以下是使用 Kinesis Data Streams 的典型场景:

加速的日志和数据源引入和处理

您可以让创建者直接将数据推入流。例如,推送系统和应用程序日志,它们可在几秒内就绪,以用于处理。这可以防止因前端或应用程序服务器故障而造成日志数据丢失。Kinesis Data Streams 可加快数据源接收速度,因为在提交数据以进行引入之前,数据不会在服务器上进行批处理。

实时指标和报告

您可以使用收集到 Kinesis Data Streams 中的数据进行实时的简单数据分析和报告。例如,您的数据处理应用程序可以处理系统和应用程序日志的指标和报告,因为数据将流入而不是等待接收批量数据。

实时数据分析

这可将并行处理的强大功能与实时数据的价值相结合。例如,实时处理网站点击流,然后使用多个并行运行的不同的 Kinesis Data Streams 应用程序来分析站点可用性参与度。

复杂流处理

可以创建 Kinesis Data Streams 应用程序和数据流的有向无环图(DAG)。这通常会涉及将数据从多个 Kinesis Data Streams 应用程序放入其他流,以供其他 Kinesis Data Streams 应用程序进行下游处理。

使用 Kinesis Data Streams 的优点

虽然可使用 Kinesis Data Streams 解决各种流数据问题,但其常见用途是实时聚合数据,然后将聚合数据加载到数据仓库或 map-reduce 集群。

将数据放入 Kinesis 数据流,以确保持久性和弹性。将记录放入流中的时间与可以检索的时间(put-to-get 延迟)之间的延迟通常小于 1 秒。换言之,在添加数据之后,Kinesis Data Streams 应用程序几乎立即可以开始使用流中的数据。Kinesis Data Streams 的托管服务方面可减轻您创建和运行数据引入管道的操作负担。可以创建流式 map-reduce 类型应用程序。利用 Kinesis Data Streams 的弹性,可以扩大或缩小流,以确保数据记录绝不会在过期前丢失。

多个 Kinesis Data Streams 应用程序可以使用流中的数据,以便多个操作(如归档和处理)可以并发且独立地进行。例如,两个应用程序可读取同一流中的数据。第一个应用程序计算正在运行的聚合并更新 Amazon DynamoDB 表,第二个应用程序压缩数据并将数据归档至数据存储,例如 Amazon Simple Storage Service(Amazon S3)。然后,控制面板会读取包含正在运行的聚合的 DynamoDB 表以获取报告。 up-to-the-minute

Kinesis Client Library 支持容错使用流中的数据,并提供针对 Kinesis Data Streams 应用程序的扩展支持。

有关使用 Amazon EMR 集群直接读取和处理 Kinesis Data Streams 的信息,请参阅 Kinesis Connector