你将如何处理aws lambda中包含100万个对象的列表?

时间:2018-02-10 22:34:51

标签: amazon-web-services amazon-s3 aws-lambda amazon-dynamodb

我在DynamoDB中有一个包含100万行的表。

我需要在100万行上运行一个进程。

表格如下:

Date,   Type,  Quantity, value
Jan23,    M,   10,       0.4
Jan24,    F,    5,       0.6
Jan26,    M,    6,       0.8

该过程如下:

  • 记录F和M的所有记录,并按日期将它们分别分为两个列表。

清单1:

Jan23, M , 10, 0.4
jan26, M, 6, 0.8

列表2:

Jan24, F, 5,0.6
  • 现在,对于List2中的每一行,我需要找到列表1中的第一个可用行并进行处理。

所以(10 * 0.4-0.6 * 5)= 1< - 记录该值

  • 现在,因为我从jan23行中取走了5,所以剩下的数量仅为5。

这是一个简单的过程,但是,这可以在拥有100万条记录的Lambda中完成吗?我会以某种方式需要Lambda拥有所有100万条记录,因为由于必须知道每行的数量而无法拆分列表。

数据存储在DynamoDB而不是S3中,因为某些行需要从Web应用程序轻松编辑。如果此解决方案需要,我可以并将实施一种将其存储在S3上的方法。

我一直在寻找并行实现,但为此我需要知道预先拆分每个列表的位置。

1 个答案:

答案 0 :(得分:2)

您正在使用错误的数据库解决问题。 Dynamo不能用于分析或统计问题解决。

至少截至目前,DymanoDB并不适合用于大量数据获取。

解决方案,

  

DynamoDB - Streams - Lambda - RDS

使用RDS执行所有复杂查询。

如果数据变得越来越大,您也可以引入Redshift。

  

DynamoDB - Streams - Lambda - Firehose - Redshift

使用Redshift工具并将结果更新到DymanoDB以进行交易消费。

希望它有所帮助。