我想在AWS中一次性加载和处理一堆记录(1m +),而不是在AWS中一次加载整个集合。
具体而言,我正在开发一个将用户匹配在一起的系统。
这两个表格如下:
RATINGS: userID, itemID, rating
RELATIONSHIPS: userID1, userID2, relationshipStrength
我想处理评级而无需一次加载整套(1m +)。我想逐个处理每个评级,进行比较,更新关系并继续下一个。数据的一致性和准确性并不重要 - 如果有几个关系错过了它。
哪些AWS工具可以很好地实现这一目标?
我正在调查dynamodb + lamda,但(我相信)这需要加载整套:
我想避免在步骤3中将整个集合加载到内存中。
答案 0 :(得分:0)
如果您只处理100万条记录,我建议您编写一个程序来执行此操作 in memory ,而不是不断查询数据库。它运行得更快。
内存要求每个记录只有几个字节(例如,评级表为6个字节,“关系”表为6个字节,加上开销)。拥有100万个评级(约6MB),比如10,000个用户交叉引用1000个用户(约60MB),您可以将其放入RAM中。
如果内存有问题,但您不需要经常进行此计算,则可以在竞价定价下启动内存优化的EC2实例,并且相对便宜。
当然,如果您打算在将来进行扩展,那么您需要一种更好的方法来做到这一点并不需要内存中的所有内容,例如使用SQL数据库或在多个工作者之间分配工作