amazon-s3 - DynamoDB 与 S3 平面文件?

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

各自的优缺点是什么?

最佳答案

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

https://stackoverflow.com/questions/37403770/

相关文章:

eclipse-plugin - 在 Eclipse RCP 中以编程方式修改命令标签

android - 如何在聊天中使用 smack 通过 xmpp 发送联系人?

php - Laravel 验证器不区分数字和字符串

php - CodeIgniter form_validation 没有显示错误

php - 返回对象(PHP 最佳实践)

Spring - 异常不记录到文件

javascript - 为什么 tinymce 没有出现在动态添加的文本区域

highcharts - Waterfall Highchart 在 y 轴为 0 的系列之间开始一

java - 我不能同时使用 ActionListener 和 KeyListener

javascript - 使用准备好的语句 DB2 时获取 SQLCODE=-313