选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

Amazon Kinesis Data Streams 术语和概念

聚焦模式
Amazon Kinesis Data Streams 术语和概念 - Amazon Kinesis Data Streams

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

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

开始使用 Amazon Kinesis Data Streams 之前,有必要了解其架构和术语。

查看 Kinesis Data Streams 的高级架构

下图展示了 Kinesis Data Streams 的大致架构。创建器会持续将数据推送到 Kinesis Data Streams,消费端会实时处理数据。消费者(例如在亚马逊上运行的自定义应用程序 EC2 或亚马逊 Data Firehose 传输流)可以使用亚马逊 DynamoDB、Amazon Redshift 或 Amazon S3 等 AWS 服务存储结果。

Kinesis Data Streams 大致架构图

熟悉 Kinesis Data Streams 的术语

Kinesis 数据流

Kinesis 数据流是一组分片。每个分片都有一系列数据记录。每个数据记录都有一个由 Kinesis Data Streams 分配的序列号

数据记录

数据记录是存储在 Kinesis 数据流中的数据单位。数据记录由序列号分区键和数据 Blob(不可变的字节序列)组成。Kinesis Data Streams 不会以任何方式检查、解释或更改 Blob 中的数据。数据 Blob 最大可为 1MB。

容量模式

数据流容量模式决定如何管理容量以及如何对数据流的使用收费。目前,在 Kinesis Data Streams 中,您可以为数据流选择按需模式和预置模式。有关更多信息,请参阅 选择数据流容量模式

若采用按需模式,Kinesis Data Streams 会自动管理分片来提供必要的吞吐量。您只需为实际使用的吞吐量付费,Kinesis Data Streams 会在工作负载增加或减少时自动适应吞吐量需求。有关更多信息,请参阅 按需模式的特征和用例

若采用预置模式,您必须为数据流指定分片数。数据流的总容量是其分片容量的总和。您可以根据需要增加或减少数据流中的分片数,并且按小时费率支付分片数的费用。有关更多信息,请参阅 预置模式的特征和用例

保留周期

保留期 是数据记录在添加到流中后可供访问的时间长度。在创建之后,流的保留期设置为默认值 24 小时。您可以使用该操作将保留期延长至 8760 小时(365 天),并使用该IncreaseStreamRetentionPeriod操作将保留期缩短至至少 24 小时。DecreaseStreamRetentionPeriod对于保留期设置为 24 小时以上的流,将收取额外费用。有关更多信息,请参阅 Amazon Kinesis Data Streams 定价

Producer

创建器会将记录存入 Amazon Kinesis Data Streams。例如,发送日志数据到流的 Web 服务器是创建器。

消费端

消费端会从 Amazon Kinesis Data Streams 获取记录并加以处理。这些消费端称为 Amazon Kinesis Data Streams 应用程序

Amazon Kinesis Data Streams 应用程序

A mazon Kinesis Data Stream s 应用程序是通常在实例队列上运行的流 EC2 的使用者。

可以开发的消费端有两种:共享扇出功能消费端和增强型扇出功能消费端。要了解它们之间的区别,以及了解如何创建每种消费端,请参阅从 Amazon Kinesis Data Streams 读取数据

Kinesis Data Streams 应用程序的输出可能是另一个流的输入,这使您能够创建实时处理数据的复杂拓扑。应用程序还可以向各种其他 AWS 服务发送数据。一个流可以有多个应用程序,每个应用程序可同时单独使用流中的数据。

分片

分片 是流中数据记录的唯一标识序列。一个流由一个或多个分片组成,每个分片提供一个固定的容量单位。每个分片最多可以支持每秒 5 个事务的读取,最大总数据读取速率为每秒 2MB;每个分片最多可以支持每秒 1000 条记录的写入,最大总数据写入速率为每秒 1MB(包括分区键)。流的数据容量是您为流指定的分片数的函数。流的总容量是其分片容量的总和。

如果数据速率增加,您可以增加或减少分配给流的分片数量。有关更多信息,请参阅 对流进行重新分片

分区键

分区键用于在流中按分片对数据进行分组。Kinesis Data Streams 将属于一个流的数据记录分割到多个分片中。它使用与每个数据记录关联的分区键确定指定数据记录属于哪个分片。分区键是 Unicode 字符串,每个键的最大长度限制为 256 个字符。 MD5 哈希函数用于将分区键映射到 128 位整数值,并使用分片的哈希键范围将关联的数据记录映射到分片。当应用程序将数据放入流中时,它必须指定一个分区键。

序列号

每条数据记录都有一个序列号,该序列号对其分片内的每个分区键都是唯一的。在您使用 client.putRecordsclient.putRecord 写入流之后,Kinesis Data Streams 将分配序列号。同一分区键的序列号通常会随时间推移增加。写入请求之间的时间段越长,序列号越大。

注意

序列号不能用作相同流中的数据集的索引。为了在逻辑上分隔数据集,请使用分区键或者为每个数据集创建单独的流。

Kinesis Client Library

Kinesis 客户端库已编译到您的应用程序中,以实现对流中数据的容错使用。Kinesis 客户端库可确保每个分片都有一个记录处理器在运行并处理该分片。库还可以简化流中的数据读取。Kinesis 客户端库使用亚马逊 DynamoDB 表来存储与数据消耗相关的元数据。它为每个处理数据的应用程序创建三个表。有关更多信息,请参阅 使用 Kinesis 客户端库

应用程序名称

Amazon Kinesis Data Streams 应用程序的名称用于标识应用程序。您的每个应用程序都必须有一个唯一的名称,该名称的范围仅限于该应用程序使用的 AWS 账户和区域。此名称用作 Amazon DynamoDB 中控制表的名称和亚马逊指标的命名空间。 CloudWatch

服务器端加密

当创建器将敏感数据输入流时,Amazon Kinesis Data Streams 可以自动加密这些数据。Kinesis Data Streams 使用 AWS KMS 主密钥进行加密。有关更多信息,请参阅 Amazon Kinesis Data Streams 中的数据保护

注意

要读取或写入加密的流、创建者和消费端应用程序必须有权访问主密钥。有关向创建者应用程序和消费端应用程序授予权限的信息,请参阅使用用户生成的 KMS 密钥的权限

注意

使用服务器端加密会产生 AWS Key Management Service (AWS KMS) 成本。有关更多信息,请参阅 AWS Key Management Service Pricing

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。