跳至主要内容

Amazon Kinesis Data Streams

Amazon Kinesis Data Streams 入门

开始使用

Amazon Kinesis Data Streams 是一种可大规模扩展、高度持久的数据摄取和处理服务,针对流式传输数据进行了优化。您可以配置数以万计的数据创建器,连续不断地将数据传输到 Kinesis 数据流。数据将在几毫秒内提供给您的 Amazon Kinesis 应用程序,这些应用程序将按其生成顺序接收数据记录。

Amazon Kinesis Data Streams 与多项 AWS 服务集成,其中包括以近乎实时的方式转换流数据并将其传输到 Amazon S3 等数据湖的 Amazon Kinesis Data Firehose、用于托管流处理的适用于 Apache Flink 的亚马逊托管服务、用于事件或记录处理的 AWS Lambda、用于私有连接的 AWS PrivateLink、用于指标和日志处理的 Amazon Cloudwatch 以及用于服务器端加密的 AWS KMS

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

Amazon Kinesis Data Streams 入门

参阅有关 Amazon Kinesis Data Streams 的最新资讯

请求为您的概念验证或评估提供支持

视频

使用 Kinesis Data Streams

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

重要概念

全部打开

数据创建器是一种应用程序,它通常会将生成的数据记录传送到 Kinesis 数据流。数据创建器可以为记录分配分区键。分区键最终决定哪个分区为数据流提取数据记录。

数据使用器是一种分布式 Kinesis 应用程序或 AWS 服务,流中所有分区生成数据时,它进行检索。大多数数据使用器会检索分区中的最新数据,以支持实时分析或数据处理。

数据流是分区的逻辑分组。数据流中的分片数量没有界限(如果您需要更多,请请求提高限制)。数据流将默认保留数据 24 小时,也可以选择保留长达 365 天。

分区是 Amazon Kinesis 数据流的基本吞吐量单位。

  • 分区是一种仅附加日志和流功能的单位。分区包含按到达时间排序的有序记录序列。
  • 一个分区每秒可以提取多达 1000 个数据记录,或每秒可以提取 1MB 数据。添加更多分区可以提高提取能力。
  • 使用 AWS 控制台、 UpdateShardCount API、通过 AWS Lambd a 触发自动扩展或使用自动扩展实用程序,在数据吞吐量发生变化时动态添加或删除数据流中的分片。
  • 当使用器使用增强型扇出时,一个分区可以为每个注册使用增强型扇出的数据使用器提供每秒 1MB 的数据输入和每秒 2MB 的数据输出。
  • 当使用器不使用增强型扇出时,分区提供每秒 1MB 的输入和每秒 2MB 的数据输出,并且这些使用器将与不使用增强型扇出的任何使用器共享此输出。
  • 创建流时,您需要指定所需的分区数量,您可以随时更改该数量。例如,您可以创建具有两个分区的流。如果您有 5 个使用增强型扇出的数据使用器,此流可提供每秒高达 20MB 的总数据输出(2 个分区 x 2MB/秒 x 5 个数据使用器)。如果数据使用器没有使用增强型扇出,此流的吞吐量为每秒 2MB 的数据输入和每秒 4MB 的数据输出。在所有情况下,此流允许每秒最多 2000 个 PUT 记录或每秒 2MB 的数据摄入(以先达到的限制为准)。
  • 您可以监控 Amazon Kinesis Data Streams 中的分区级指标。

记录是存储在 Amazon Kinesis 流中的数据单元。记录由序列号、分区键和数据块组成。数据块是您的数据创建器添加到流中的重要数据。数据块的最大大小(Base64 解码后的数据有效载荷)是 1 兆字节 (MB)。

分区键通常是有意义的标识符,例如用户 ID 或时间戳。它由数据创建器在将数据传输到 Amazon Kinesis 数据流时指定,它对使用器很有用,因为使用器可以使用分区键重播或构建与分区键关联的历史记录。分区键还可以用于隔离数据记录并将其路由到不同的流分区。例如,假定您的 Amazon Kinesis 数据流具有两个分区(分区 1 和分区 2)。您可以将数据创建器配置为使用两个分区键(键 A 和键 B),以将所有带键 A 的数据记录添加到分区 1,同时将所有带键 B 的数据记录添加到分区 2。

序列号是每个数据记录的唯一标识符。当数据创建者调用 PutRecord 或 Put Record s API 向亚马逊 Kinesis 数据流添加数据时,序列号由亚马逊 Kinesis 数据流分配。同一分区键的序列号通常会随时间变化增加;PutRecord 或 PutRecords 请求之间的时间段越长,序列号则越大。

将数据传输到流中

全部打开

亚马逊 Kinesis Data Streams 提供了两个 API,用于将数据输入亚马逊 Kinesis 流:PutRecord 和 PutRecord s。PutRecord 支持 API 调用中的一条数据记录,PutRecords 支持 API 调用中的多条数据记录。

亚马逊 Kinesis 制作者库 (KPL) 是一个易于使用且高度可配置的库,可帮助您将数据输入亚马逊 Kinesis 数据流。Amazon Kinesis Producer Library (KPL) 具有一个简单可靠的异步界面,使您能够快速使用最少客户资源实现较高的创建器吞吐量。

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

运行应用程序或自行构建应用程序

全部打开

使用 AWS 服务运行完全托管的流处理应用程序,或自行构建。

亚马逊 Kinesis Data Firehose 是可靠地转换流数据并将其加载到数据存储和分析工具的最简单方法。您可以使用 Kinesis 数据流作为 Kinesis 数据消防站的来源。

您可以订阅 Lambda 函数以自动读取 Kinesis 数据流中的记录。  AWS Lambda 通常用于逐条记录(也称为基于事件)的流处理。

亚马逊 Kinesis 客户端库 (KCL) 是一个预建库,可帮助您轻松构建用于读取和处理来自亚马逊 Kinesis 数据流的数据的亚马逊 Kinesis 应用程序。KCL 可以处理各种复杂的问题,如适应流量的变化、均衡流数据负载、协调分布式服务以及以容错方式处理数据。KCL 可让您在构建 Amazon Kinesis 应用程序时专注于业务逻辑。 从 KCL 2.0 开始,您可以利用低延迟 HTTP/2 流 API 和增强的扇出功能来从流中检索数据。

亚马逊 Kinesis 连接器库是一个预建库,可帮助您轻松地将亚马逊 Kinesis 与其他 AWS 服务和第三方工具集成。使用 Amazon Kinesis 连接器库需要 Amazon Kinesis Client Library (KCL)。该库的当前版本为亚马逊 DynamoDB、亚马逊 Redshift、亚马逊 S3 亚马逊 Elasticsearch 服务提供连接器。该库还包含各种类型的示例连接器,并有 Apache Ant 用来构建运行示例的文件。

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

管理流

全部打开

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

增强型扇出让客户能够增加并行地从流中读取数据的使用器数量,同时保持高性能。您可以使用增强型扇出和 HTTP/2 数据检索 API 将数据扇出到多个应用程序,通常在到达后 70 毫秒内。

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

亚马逊 Kinesis 数据流与亚马逊 CloudWatch 集成,因此您可以轻松收集、查看和分析亚马逊 Kinesis 数据流和这些数据流中分片的 CloudWatch 指标。有关亚马逊 Kinesis 数据流指标的更多信息,请参阅使用亚马逊 CloudWatch 监控亚马逊 Kinesis

Amazon Kinesis Data Streams 与 AWS 身份和访问管理 (IAM) 集成,该服务使您能够安全地控制用户对 AWS 服务和资源的访问权限。例如,您可以创建仅允许特定用户或组将数据传输到 Amazon Kinesis 数据流的策略。有关访问管理和控制您的亚马逊 Kinesis 数据流的更多信息,请参阅使用 IAM 控制对亚马逊 Kinesis 资源的访问权限

亚马逊 Kinesis Data Streams 与 AWS CloudTrail 集成,后者是一项记录您账户的 AWS API 调用并向您传送日志文件的服务。有关 API 调用记录的更多信息以及支持的 Amazon Kinesis API 列表,请参阅使用 AWS CloudTrail 记录亚马逊 Kinesis API 调用

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

教程

全部打开

本教程将带您一步步学习如何创建 Amazon Kinesis 数据流,向流中发送模拟股票交易数据,以及编写应用程序处理数据流中的数据。 

精选演示文稿

全部打开

Amazon Kinesis 使您可以轻松收集、处理和分析实时流数据,以便您及时获得见解并对新信息快速做出响应。在本次研讨会中,我们通过用于进行数据摄取的 Kinesis Streams、用于实时处理的 Kinesis Analytics 和用于实现持久性的 Kinesis Firehose 来展示端到端的流数据解决方案。我们将详细了解一下如何使用流数据编写 SQL 查询,并讨论用于优化和监控 Kinesis Analytics 应用程序的最佳实践。最后,我们将讨论如何预估整个系统的成本。

观看会议录像 | 下载演示文稿

想要增加您关于 AWS 大数据 Web 服务的知识,并在云上启动您的首款大数据应用程序吗? 我们将带您了解如何将大数据处理简化为数据总线形式 (包含摄取、存储、处理和虚拟化)。您可以使用 Amazon Athena、Amazon Kinesis、Amazon DynamoDB 和 Amazon S3 等 AWS 托管服务构建大数据应用程序。同时,我们将了解大数据应用程序的架构设计模式,并授予您访问课后练习用实验的权限,以便您可以自己重建和自定义应用程序。您应该带上自己的笔记本电脑,并熟悉 AWS 产品,以充分利用本次研讨会。

下载演示文稿

在最近几年,连接设备和实时数据源的数量呈爆炸式增长。因此,数据不断地生成,而且生成速度也在加快。企业无需再等数小时或数天才能使用该数据。要获取最有价值的见解,他们必须立即使用该数据,以便对新信息做出迅速响应。在本次研讨会中,您将了解如何利用流数据源以近乎实时的方式进行分析和做出响应。您会看到真实流数据场景的几个要求,并负责制定能够通过 Amazon Kinesis、AWS Lambda 和 Amazon SNS 等服务成功满足要求的解决方案。

下载演示文稿

对于所有使用批处理数据分析工具探索流分析优势的企业和客户来说,缩短通过数据获取可行性见解所需的时间至关重要。了解最佳实践,将您的架构从数据仓库和数据库扩展到实时解决方案。了解如何使用 Amazon Kinesis 获取实时数据见解并将其与 Amazon Aurora、Amazon RDS、Amazon Redshift 和 Amazon S3 集成。Amazon Flex 团队描述了他们如何在 Amazon Flex 移动应用程序中使用流分析,Amazon Delivery Driver 使用该应用程序每月按时交付数百万个软件包。他们讨论了能够克服将现有批处理数据迁移到流处理数据所面临的挑战并进而实现从批处理系统向实时系统迁移的架构,还讨论了如何从实时分析中获益。

观看会议录像 | 下载演示文稿

要在市场中获胜并提供独特的客户体验,企业必须能够实时使用实时数据来促使快速制定出决策。在本次研讨会中,您将了解常见的流数据处理使用案例和架构。首先,我们将概述流数据和 AWS 流数据功能。接下来,我们来了解几个客户示例以及他们的实时流应用程序。最后,我们将了解一下常见的架构和首要流数据使用案例的设计模式。

观看会议录像 | 下载演示文稿

精选解决方案

适用于 Amazon Kinesis 的 AWS 流式传输数据解决方案提供了多种 AWS CloudFormation 模板;数据在模板中流经生成器、流式存储、使用者和目的地。为支持多种使用案例和业务需求,此解决方案提供了四种 AWS CloudFormation 模板。这些模板已配置为应用最佳实践,从而可使用控制面板和警报来监控功能是否正常以及保护数据。