我在DynamoDB中有一个包含100万行的表。
我需要在100万行上运行一个进程。
表格如下:
Date, Type, Quantity, value
Jan23, M, 10, 0.4
Jan24, F, 5, 0.6
Jan26, M, 6, 0.8
该过程如下:
清单1:
Jan23, M , 10, 0.4
jan26, M, 6, 0.8
列表2:
Jan24, F, 5,0.6
所以(10 * 0.4-0.6 * 5)= 1< - 记录该值
这是一个简单的过程,但是,这可以在拥有100万条记录的Lambda中完成吗?我会以某种方式需要Lambda拥有所有100万条记录,因为由于必须知道每行的数量而无法拆分列表。
数据存储在DynamoDB而不是S3中,因为某些行需要从Web应用程序轻松编辑。如果此解决方案需要,我可以并将实施一种将其存储在S3上的方法。
我一直在寻找并行实现,但为此我需要知道预先拆分每个列表的位置。
答案 0 :(得分:2)
您正在使用错误的数据库解决问题。 Dynamo不能用于分析或统计问题解决。
至少截至目前,DymanoDB并不适合用于大量数据获取。
解决方案,
DynamoDB - Streams - Lambda - RDS
使用RDS执行所有复杂查询。
如果数据变得越来越大,您也可以引入Redshift。
DynamoDB - Streams - Lambda - Firehose - Redshift
使用Redshift工具并将结果更新到DymanoDB以进行交易消费。
希望它有所帮助。