我在S3中压缩了JSON文件,我想在EC2中将MongoDB设置为这些文件中包含的服务器json文档。压缩文件大于100M,其中有1000个。每个文件包含100000个小文档。
将此数据导入Mongo的最佳方法是什么? 如果有办法给Mongo提供S3路径,那将是最好的 并让它自己检索它们。 我有什么比将数据下载到服务器并进行mongoimport更好的事情了吗?
Mongo处理这么多数据的程度如何?
答案 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