我在 S3 中压缩了 JSON 文件,我想在 EC2 中设置 MongoDB 以服务器包含在这些文件中的 json 文档。压缩文件>100M,有1000个。每个文件包含 100000 个小文档。
将这些数据导入 Mongo 的最佳方法是什么?如果有办法为 Mongo 提供 S3 路径并让它自己检索它们,那将是最好的。我有什么比将数据下载到服务器并执行 mongoimport 更好的方法吗?
此外,Mongo 处理这么多数据的能力如何?
您不需要存储中间文件,您可以将 s3 文件的输出通过管道传输到标准输出,您可以mongoimport
从标准输入获取输入。
您的完整命令如下所示:
s3cmd get s3://<yourFilename> - | mongoimport -d <dbName> -c <collectionName>
注意-
它说将文件发送到stdout
而不是文件名。
使用的替代方法s3cmd
是使用aws s3
功能较少但随 AWS CLI 一起安装的。
该命令如下所示:
aws S3 cp <your s3 URI> - | \
mongoimport \
--db <dbName> \
--collection <collectionName> \
将-
文件发送到stdout