借助 Amazon Kinesis Data Streams,您可以构建用于处理或分析流数据的自定义应用程序,以满足特定需求。您可以配置数以万计的数据创建器,连续不断地将数据输入 Kinesis 数据流。例如,来自网站点击流、应用程序日志和社交媒体馈送内容的数据。在不到一秒时间里,您的 Amazon Kinesis 应用程序便可以从数据流读取和处理数据。

在下面的架构图表中,Amazon Kinesis Data Streams 用作大数据解决方案的网关。不同来源的数据被转换成 Amazon Kinesis 流,然后流中的数据再被不同的 Amazon Kinesis 应用程序使用。在此示例中,一个应用程序(显示为黄色)正在对流数据运行实时控制面板。另一个应用程序(显示为红色)执行着简单的聚合并将处理后的数据发给 Amazon S3。Amazon S3 中的数据将获得进一步处理并储存在 Amazon Redshift 中,以便进行复杂分析。第三个应用程序(显示为绿色)将原始数据传送到 Amazon S3,之后这些数据还会存档到 Amazon Glacier,以实现长期的低成本存储。注意,全部三条数据处理管道是同时并行工作的。Amazon Kinesis Data Streams 可以根据解决方案的需要支持任意数量的数据流使用器,而不对性能造成任何影响。

开始免费使用 AWS

创建免费账户
或登录到控制台
kinesis-architecture-crop

分片是 Amazon Kinesis 数据流的基本吞吐量单位。一个分片提供 1MB/秒数据输入和 2MB/秒输入输出容量。一个分片最高可支持每秒 1 000 个 PUT 记录。创建数据流时,您将指定所需的分片数量。例如,您可以创建具有两个分片的数据流。这一数据流具有 2MB/秒数据输入和 4MB/秒数据输出的吞吐量,并允许最多 2 000 个 PUT 记录。您可以在 Amazon Kinesis Data Streams 中监控分区级别指标,并在数据吞吐量因对数据流进行重新分区而发生变化时动态添加或删除分区。

记录是存储在 Amazon Kinesis 数据流中的数据单位。记录由序列号、分区键和数据块组成。数据块是您的数据生产者添加到数据流的重要数据。数据块的最大尺寸(Base64 编码前的数据有效载荷)是 1 兆字节 (MB)。

分区键用于隔离和路由数据记录到不同的数据流分片。分区键由您的数据生产者在输入数据到 Amazon Kinesis 数据流时指定。例如,假定您的 Amazon Kinesis 数据流具有两个分片(分片 1 和分片 2)。您可以将数据创建器配置为使用两个分区键(键 A 和键 B),以将所有带键 A 的数据记录输入分片 1,同时将所有带键 B 的数据记录输入分片 2。

序列号是每个数据记录的唯一标识符。当数据创建器调用 PutRecordPutRecords API 以添加数据到 Amazon Kinesis 数据流时,Amazon Kinesis Data Streams 会分配序列号。同一分区键的序列号通常会随时间变化增加;PutRecordPutRecords 请求之间的时间段越长,序列号则越大。


注册 Amazon Web Services 后,可按以下步骤使用 Amazon Kinesis Data Streams:

  • 通过 Amazon Kinesis 管理控制台或 Amazon Kinesis CreateStream API 创建 Amazon Kinesis 数据流。
  • 配置您的数据生产者,将数据持续输入 Amazon Kinesis 数据流。
  • 构建 Amazon Kinesis 应用程序,读取和处理来自 Amazon Kinesis 流的数据。

数据创建器可通过 Amazon Kinesis Data Streams API、Amazon Kinesis Producer Library (KPL)Amazon Kinesis Agent 将数据输入 Amazon Kinesis 数据流。

 

Amazon Kinesis Data Streams 提供了两个将数据输入到 Amazon Kinesis 流的 API:PutRecord PutRecordsPutRecord 允许在 API 调用中提供一条数据记录,PutRecords 允许在 API 调用中提供多条数据记录。

Amazon Kinesis Producer Library (KPL) 是易于使用且高度可配置的程序库,可以帮助您把数据放到 Amazon Kinesis 数据流中。Amazon Kinesis Producer Library (KPL) 呈现了简单的异步可靠界面,使您能够快速使用最少客户资源实现高创建器吞吐量。

Amazon Kinesis Agent 是一款预构建的 Java 应用程序,可提供简单的方法来收集数据并将其发送到 Amazon Kinesis 流。您可以在基于 Linux 的服务器环境(如 Web 服务器、日志服务器和数据库服务器)上安装此代理。代理监控特定文件并持续发送数据到数据流。


Amazon Kinesis 应用程序是一种数据使用者,用于读取和处理来自 Amazon Kinesis 数据流的数据。您可以使用 Amazon Kinesis API 或 Amazon Kinesis 客户端库 (KCL) 构建 Amazon Kinesis 应用程序。

Amazon Kinesis 客户端库 (KCL) 是一个预建的库,可帮助您轻松构建 Amazon Kinesis 应用程序,用以读取和处理来自 Amazon Kinesis 数据流的数据。KCL 可以处理各种复杂的问题,如适应流量的变化、均衡流数据负载、协调分布式服务以及以容错方式处理数据。KCL 使您能够在专注于业务逻辑的同时构建 Amazon Kinesis 应用程序。

Amazon Kinesis 连接件库是一个预建库,帮助您轻松集成 Amazon Kinesis 与其他 AWS 服务和第三方工具。使用 Amazon Kinesis 连接件库需要 Amazon Kinesis 客户端库 (KCL)。该库的最新版本为 Amazon DynamoDBAmazon RedshiftAmazon S3Elasticsearch 提供了连接件。该库还包括各种类型的示例连接件,并有 Apache Ant 来构建运行示例的文件。

Amazon Kinesis Storm Spout 是一个预建库,可帮助您轻松将 Amazon Kinesis Data Streams 与 Apache Storm 集成。最新版本的 Amazon Kinesis Storm Spout 从 Amazon Kinesis 数据流获取数据,再作为元组发出。您将此 spout 添加到 Storm 拓扑中,以将 Amazon Kinesis Data Streams 作为一种可靠、可扩展、流捕获、存储以及重播服务来使用。


Amazon Kinesis Data Streams 与 Amazon CloudWatch 集成,以便您可以为 Amazon Kinesis 数据流以及其中的分区收集、查看和分析 CloudWatch 指标。有关 Amazon Kinesis Data Streams 指标的更多信息,请参阅利用 Amazon CloudWatch 监控 Amazon Kinesis 服务

Amazon Kinesis Data Streams 与 AWS Identity and Access Management (IAM) 服务集成,后者让您能够安全控制对 AWS 产品和用户资源的访问权限。例如,您可以创建仅允许特定用户或组输入数据到 Amazon Kinesis 数据流的策略。有关 Amazon Kinesis 数据流的访问管理和控制的更多信息,请参阅使用 LAM 控制对 Amazon Kinesis 资源的访问权限

Amazon Kinesis Data Streams 与 AWS CloudTrail 服务集成,后者可记录您账户的 AWS API 调用并向您提供日志文件。有关 API 调用日志记录和支持的 Amazon Kinesis API 列表的更多信息,请参阅使用 AWS CloudTrail 记录 Amazon Kinesis API 调用

您可以通过创建 VPC 终端节点来实现从 Amazon Virtual Private Cloud (VPC) 对 Kinesis Data Streams API 进行私有访问。借助 VPC 终端节点,VPC 和 Kinesis Data Streams 之间的路由可由 AWS 网络处理,而无需使用 Internet 网关、NAT 网关或 VPN 连接。Kinesis Data Streams 所使用的最新一代 VPC 终端节点由 AWS PrivateLink 提供支持。AWS PrivateLink 是一种通过使用 VPC 中带有私有 IP 的弹性网络接口来支持各 AWS 产品之间的私有连接的技术。有关更多信息,请参阅 AWS PrivateLink 文档

您可采用服务器端加密或客户端加密来对传输到 Kinesis Data Streams 的数据进行加密。服务器端加密是一项完全托管的功能,可在您向数据流放入数据和从中提取数据时自动对数据进行加密和解密。或者,您也可以先在客户端加密数据,再将其放入数据流。如需了解更多信息,请参阅 Kinesis Data Streams 常见问题的安全部分。

使用 Amazon Kinesis,您能够标记 Amazon Kinesis 数据流,从而更加轻松地管理资源和成本。标签是以键-值对表示的用户定义的标记,帮助组织 AWS 资源。例如,您可以使用成本中心标记 Amazon Kinesis 数据流,从而基于成本中心分类和跟踪 Amazon Kinesis 成本。有关更多信息,请参阅为您在 Amazon Kinesis Data Streams 中的流加标签