我在设计每小时/每天处理的大数据ETL作业时需要一些建议。我需要一个在1.8TB元数据上定期运行的系统,以将数据转换为计费报告以供下游使用。
要求:
Primary DataSource: DynamoDB has the core metadata, 1.8TB and growing unbounded, metadata would be updated all the time.
Latency: Need to finish the job within 12 hours.
Availability: Critical business logic is running on the DDB tables, I cannot afford to impact business when trying to run the ETL job to produce billing reports.
我正在研究AWS EMR,但我找不到将DDB数据转储到EMR的经济有效的方法,即使我每天进行转储,每次都要扫描整个表,最终花费60000美元:
1 RCU would be 4KB:
1.8TB * 1024^3 / 4 = 483183820.8 * (0.00013/RCU) = $62813
鉴于数据的大小,我最初的想法是每天将数据作为快照转储,并计算前一天的每小时业务报告。但仍然,每天进行转储将使每个月的费用减少到200万美元。
我可以就此工作的成本有效方式获得一些建议吗?
为什么您需要在EMR上转储数据?您只需要在EMR上运行计算,您的源仍可以是dynamodb。
对于第一次迭代,只需读取dynamodb中存在的所有数据并创建报告。从下一次迭代开始,只需读取dynamodb的增量并更新报告即可。