DynamoDB vs S3平面文件?

时间:2016-05-24 03:12:35

标签: amazon-s3 amazon-dynamodb parquet bigdata nosql

我正在存储数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吗?

每个人的利弊是什么?

1 个答案:

答案 0 :(得分:0)

您可以通过AWS Kinesis Firehose从AWS Kinesis流式传输数据,以缓冲您的数据并将其保存到较小的128MB or 15 minute chunks中的S3。 Firehose会自动将您的块放在子文件夹中,以启用您需要的基于范围的查找。