我有一个s3存储桶,每天可以在26000csv文件中获得近14-15亿条记录。
我需要解析这些文件并将其推送到mongo db。
以前只有5000到1亿条记录,我在ec2实例中使用了大量upsert和多个并行进程,这很好。但由于记录数量急剧增加,以前的方法效率不高。
那么最好的方法是什么呢?
你应该看一下用GoLang编写的mongoimport,它可以有效地使用threadsto并行化上传。这很快。您必须在上传之前将文件从S3复制到本地磁盘,但如果您将节点放在与S3存储桶相同的区域和数据库中,则应该快速运行。此外,您可以使用MongoDB Atlas及其API在您加载时调高群集上的IOPS,然后将其拨号以加快上传速度。