AWS Kinesis 流式数据处理
使用 AWS Kinesis 进行数据处理
AWS Kinesis 是一项流式服务,允许您实时处理大量数据。
流是指高速的数据传输。
它使您能够快速响应重要数据。
对于下游处理,流还包括一个异步数据缓冲区。
数据缓冲区是在数据移动时存储在内存中的临时数据存储。
AWS Kinesis 具有三个独立的数据处理服务:
- Kinesis Data Streams
- Kinesis Data Firehose
- Kinesis Data Analytics
所有这些都完全托管且无服务器。
使用 AWS Kinesis Video 进行数据处理
W3schools.com 与 Amazon Web Services 合作,为我们的学生提供数字培训内容。
Kinesis Data Streams
AWS Kinesis 中有两种服务:
- 生产者
- 消费者
生产者向流贡献数据记录。
消费者接收并处理这些数据记录。
生产者可以是:
- Kinesis Producer Library (KPL)
- AWS SDK
- 第三方工具
消费者可以是:
- 使用 Kinesis Client Library (KCL) 创建的应用程序
- AWS Lambda 函数
- 其他流
Kinesis Data Streams 限制
Kinesis Data Stream 有其限制。
每秒可写入 1000 条记录。
每秒可写入 1 MB 数据。
每秒可读取最多 10000 条记录。
每秒可读取最多 2 MB 数据。
Kinesis Data Streams 扩容
Kinesis Data Streams 服务通过添加数据分片来扩容。
数据分片是更大数据集的一部分。
每个分片包含按唯一顺序排列的数据记录。
Kinesis 服务为每条数据记录分配一个顺序号。
聚合
您可以利用分片或聚合来增加每次 API 调用传递的记录数量。
聚合是将多个记录存储在 Kinesis Data Stream 记录中的过程。
要使用记录中的数据,用户必须先对其进行解聚合。
您可以使用 Kinesis 聚合库来处理数据聚合和解聚合。
Kinesis Data Firehose
使用 Kinesis Data Firehouse,您无需管理分片或编写消费者应用程序。
Kinesis Data Firehouse 会自动将数据发送到指定的目的地。
它还可以配置为在发送数据之前对其进行编辑。
Kinesis Data Firehouse 是处理海量数据的绝佳选择。
这是 Kinesis Data Firehouse 工作原理的示例:
- 客户端通过 API Gateway 函数连接到 Kinesis Data Firehose 流。
- 数据通过 API Gateway 加载到 Kinesis Data Firehose 流。
- 原始数据记录通过 Kinesis Data Firehose 的接口发送到 Amazon S3。
- Amazon S3 调用一个 Lambda 函数,该函数在存储数据之前对其进行修改。
- 数据写入 DynamoDB。
Kinesis Data Analytics
在持久化数据之前,Kinesis Data Analytics 允许您进行实时 SQL 分析。
Kinesis Data Analytics 专为近乎实时查询而设计。
它还允许您使用 Lambda 函数在执行 SQL 查询之前预处理数据。
您可以更改数据格式、过滤数据或对其进行增强。
Kinesis Data Analytics 可以将数据输出到 Kinesis Data Stream 和 Kinesis Data Firehose。
相关阅读
Kinesis Data Streams 开发者指南Amazon Kinesis Data Streams 术语和概念
Kinesis Data Firehose 开发者指南
Amazon Kinesis Data Firehose 数据转换
Amazon Kinesis Data Analytics for SQL Applications 开发者指南
Kinesis Data Analytics:使用 Lambda 函数预处理数据