如何直接从S3高效地将许多大型JSON文件导入MongoDB

Dan*_*ler 4 amazon-s3 mongodb

我已经在S3中压缩了JSON文件,我想在EC2中设置MongoDB来处理这些文件中包含的json文件。压缩文件大于100M,其中有1000个。每个文件包含100000个小文档。

将这些数据导入Mongo的最佳方法是什么?如果有一种方法可以给Mongo S3路径并让它自己检索它们,那将是最好的。我有什么比将数据下载到服务器并执行mongoimport更好的方法了?

另外,Mongo处理这些数据的能力如何?

Asy*_*sky 5

您不需要存储中间文件,可以将s3文件的输出通过管道传输到stdout,并且可以mongoimport从stdin 获取输入。

您的完整命令如下所示:

s3cmd get s3://<yourFilename> - | mongoimport -d <dbName> -c <collectionName>
Run Code Online (Sandbox Code Playgroud)

请注意,-该提示表示将文件发送到stdout而不是文件名。