【发布时间】:2025-11-29 16:15:01
【问题描述】:
我有一个 s3 存储桶,每天可以获取近 14-150 亿条记录,分布在 26000 个 csv 文件中。
我需要解析这些文件并将其推送到 mongo db。
以前只有 50 到 1 亿条记录,我在 ec2 实例中使用具有多个并行进程的批量 upsert,这很好。但是由于记录数量急剧增加,以前的方法效率不高。
那么最好的方法是什么?
【问题讨论】:
-
每天都有数十亿条新记录。您的 mongodb 集群的规格是什么。是否已充分配置,并有一些备用容量?
-
@SergioTulentsev 我只需要一天的数据,之后我放弃了集合。此外,尽管有数十亿的数据,但只有 1 亿个文档,因为我正在更新相同的 _id。一个文档可能有多达 200 个 json,被推送到一个数组中
-
无论数据的寿命要求如何,磁盘(spinning rust 或 ssd)每秒只能承受有限的写入次数。很可能是,对于 1000 倍的数据大小,根本就没有足够的磁盘。
-
您能更新一下您采用的方法吗?
-
@GVSandeep我使用了多线程的方式,我启动了一个AWS实例(大的32核)并启动了32个线程,每个线程处理数据并推送到mongo。请记住,我们的 mongo 实例也很大,可以处理这种负载
标签: mongodb amazon-web-services amazon-s3 bigdata