【发布时间】:2019-05-28 13:55:42
【问题描述】:
我有 Kinesis 流,我的应用每秒向其写入大约 10K 条原始格式的消息。
我想以 parquet 格式将这些消息保存到 S3。为了事后方便搜索,我需要按用户 ID 字段对我的数据进行分区,这是消息的一部分。
目前,我有一个由 Kinesis 事件触发的 lambda 函数。它接收多达 10K 条消息,按用户 ID 对它们进行分组,然后将这些文件以 parquet 格式写入 S3。
我的问题是这个 lambda 函数生成的文件非常小,大约 200KB,而我想创建大约 200MB 的文件以获得更好的查询性能(我使用 AWS Athena 查询这些文件)。
天真的方法是编写另一个 lambda 函数来读取这些文件并将它们合并(汇总)到一个大文件中,但我觉得我错过了一些东西,必须有更好的方法来做到这一点。
我想知道是否应该按照this 问题中的描述使用 Spark。
【问题讨论】:
-
在查看建议的编辑时请小心。您最近批准了this,它的改进为零,并且根据评论,仅用于测试编辑。
-
@jhpratt,好的,但是您的评论与此线程有什么关系?
标签: apache-spark amazon-s3 parquet amazon-kinesis