繁体   English   中英

Kinesis Firehose 将数据从 DynamoDB Steam 传输到 S3:为什么文件中的 JSON 个对象数量不同?

[英]Kinesis Firehose delivers data from DynamoDB Steam to S3: Why the numbers of JSON objects in files is different?

我是 AWS 的新手,我正在致力于将数据从 DynamoDB 归档到 S3。 这是我的解决方案,我已经完成了管道。

DynamoDB -> DynamoDB TTL + DynamoDB Stream -> Lambda -> Kinesis Firehose -> S3

但我发现 S3 中的文件有不同数量的 JSON 个对象。 有些文件有 7 个 JSON 个对象,有些有 6 个或 4 个对象。 我在lambda做了ETL,S3只保存REMOVE item,JSON已经unmarshall了。

我认为这将是一个文件中的 JSON object,因为每个项目的 TTL 值不同,并且 lambda 会在项目被 TTL 删除时立即交付该项目。

是因为 Kinesis Firehose 对物品进行批处理吗? (它会在收集更多项目然后将它们保存到文件后等待一段时间)还是有其他原因? 如果 DynamoDB 每 5 分钟有一个新项目被 TTL 删除,我能估计它将保存多少文件吗?

先感谢您。

Kinesis Firehose 根据缓冲区大小或间隔拆分您的数据。

假设您的缓冲区大小为 1MB,间隔为 1 分钟。 如果您在 1 分钟间隔内收到的数据少于 1MB,Kinesis Firehose 无论如何都会根据收到的数据创建一个批处理文件,即使数据少于 1MB。

这可能发生在几乎没有数据到达的情况下。 您可以根据需要调整缓冲区大小和间隔。 例如,您可以增加间隔以在单个批次中收集更多项目。

您可以选择 1–128 MiB 的缓冲区大小和 60–900 秒的缓冲区间隔。 先满足的条件触发数据传送到 Amazon S3。

来自 AWS Kinesis Firehose 文档: https://docs.aws.amazon.com/firehose/latest/dev/create-configure.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM