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