

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

# 什么是 Amazon Kinesis Data Streams？
<a name="introduction"></a>

可以使用 Amazon Kinesis Data Streams 实时收集和处理大型数据记录[流](https://aws.amazon.com/streaming-data/)。可以创建称为 *Kinesis Data Streams 应用程序*的数据处理应用程序。典型 Kinesis Data Streams 应用程序会将*数据流*中的数据作为数据记录读取。这些应用程序可以使用 Kinesis 客户端库，也可以在亚马逊 EC2实例上运行。可以将处理后的记录发送到控制面板，使用这些记录生成警报，动态更改定价和广告战略，或将数据发送给其他各个 AWS 服务。有关 Kinesis Data Streams 功能和定价的信息，请参阅 [Amazon Kinesis Data Streams](https://aws.amazon.com/kinesis/streams/)。

Kinesis Data Streams 是 Kinesis 流数据平台的一部分，此外还有 [Firehose](https://docs.aws.amazon.com/firehose/latest/dev/)、[Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/) 和[适用于 Apache Flink 的托管服务](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/)。

有关 AWS 大数据解决方案的更多信息，请参阅[上的 Big Data AWS](https://aws.amazon.com/big-data/)。有关 AWS 流数据解决方案的更多信息，请参阅[什么是流数据？](https://aws.amazon.com/streaming-data/)。

**Topics**
+ [我能用 Kinesis Data Streams 做什么？](#use-service-for-what)
+ [使用 Kinesis Data Streams 的优点](#using-the-service)
+ [相关服务](#related-services)

## 我能用 Kinesis Data Streams 做什么？
<a name="use-service-for-what"></a>

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

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

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

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

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

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

## 使用 Kinesis Data Streams 的优点
<a name="using-the-service"></a>

虽然可使用 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 应用程序的扩展支持。

## 相关服务
<a name="related-services"></a>

有关使用 Amazon EMR 集群直接读取和处理 Kinesis Data Streams 的信息，请参阅 [Kinesis Connector](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-kinesis.html)。