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

时间:2013-06-06 20:45:01

标签: mongodb amazon-s3

我在S3中压缩了JSON文件,我想在EC2中将MongoDB设置为这些文件中包含的服务器json文档。压缩文件大于100M,其中有1000个。每个文件包含100000个小文档。

将此数据导入Mongo的最佳方法是什么? 如果有办法给Mongo提供S3路径,那将是最好的 并让它自己检索它们。 我有什么比将数据下载到服务器并进行mongoimport更好的事情了吗?

Mongo处理这么多数据的程度如何?

2 个答案:

答案 0 :(得分:4)

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

您的完整命令如下所示:

s3cmd get s3://<yourFilename> - | mongoimport -d <dbName> -c <collectionName>

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

答案 1 :(得分:0)

使用s3cmd的另一种方法是使用aws s3,该功能功能较少,但随AWS CLI一起安装。

命令如下:

aws S3 cp <your s3 URI> - | \
mongoimport \
--db <dbName> \
--collection <collectionName> \

-将文件发送到stdout