我正在存储数TB的点击流类型用户事件数据。它需要按日期编制索引或分区,以便可以合理快速地查询较窄的日期范围。我希望能够对此运行聚合作业和查询。我希望在Amazon EMR中使用Spark或类似的东西。
一个选项是按天+小时分区的S3平面文件,如:
s3://my-bucket/20160503_00/data.txt
s3://my-bucket/20160503_01/data.txt
s3://my-bucket/20160503_02/data.txt
我更可能使用Parquet柱状存储而不是原始文本,如:
s3://my-bucket/20160503_00/data.parquet
s3://my-bucket/20160503_01/data.parquet
s3://my-bucket/20160503_02/data.parquet
另一个选择是完整的Amazon DynamoDB吗?
每个人的利弊是什么?
答案 0 :(得分:0)
您可以通过AWS Kinesis Firehose从AWS Kinesis流式传输数据,以缓冲您的数据并将其保存到较小的128MB or 15 minute chunks中的S3。 Firehose会自动将您的块放在子文件夹中,以启用您需要的基于范围的查找。