sib*_*ane 6 amazon-dynamodb amazon-athena
我需要将一个缓慢变化的AWS DynamoDb定期转储到S3上,以便在Athena上进行查询。需要确保Athena可用的数据与DynamoDb上可用的数据相差不远(最大延迟为1小时)
我知道以下两种方法:
使用EMR(来自数据管道)导出整个DynamoDb
这种方法的优势在于,使用单个EMR脚本(每小时运行),可以在Athena上直接搜索的压缩Parquet文件可以转储到S3上。但是,此方法的一大缺点是,尽管一个小时内仅更改少量记录,但需要进行整个转储,这要求DynamoDb中的读取容量显着更高,而EMR资源也更高。
使用DynamoDB流可反映S3上DynamoDb中的任何更改。
这具有不需要在DynamoDb上处理不变数据的优点,从而减少了比正常操作所需的读取容量高得多的读取容量的需求。但是,将需要一个后续脚本(可能是另一个EMR作业)来整合DynamoDb流生成的每个记录文件,否则Athena的性能会因为文件数量过多而受到严重影响。
还有其他方法可以做得更好吗?
小智 0
我已经实现了以下数据管道,用于将实时数据流传输到 athena:
Dynamodb -> DynamoDB 流 -> Lambda -> Kinesis Firehose -> s3 <- Athena
如果您有任何疑问,请告诉我。
归档时间: |
|
查看次数: |
759 次 |
最近记录: |