将gzip存档中的数据导入mongodb



我有存储在gzip归档文件夹中的数据,每个归档都包含一个大文件,其中包括以下格式的json:

{key:value, key:value}
{key:value, key:value}
{key:value, key:value}

我需要将数据导入MongoDB。最好的方法是什么?我无法在我的电脑上提取gzip,因为每个文件(未存档(大约是1950MB。

您可以将文件解压缩到STDOUT并将流管道传输到mongoimport。然后你不需要将未压缩的文件安全地保存到本地磁盘:

gunzip --stdout your_file.json.gz | mongoimport --uri=<connection string> --collection=<collection> --db=<database>

在过去的一年里,我已经向MongoDB导入了数百亿行CSV和JSON,甚至是压缩格式。为了节省宝贵的时间,我尝试了所有这些方法,下面是我想推荐的:

  • 解压缩文件
  • 将其作为参数传递给mongoimport
  • 在所需字段上创建索引,但只能在整个数据插入过程结束时创建

您可以在以下位置找到mongoimport文档:https://www.mongodb.com/docs/database-tools/mongoimport/

如果你有很多文件,你可能想在bash中做一个for,解压缩文件名并将其作为参数传递给mongoimport。如果你担心没有足够的磁盘空间,你也可以在每次导入mongoimport时删除解压缩的文件。

希望它能有所帮助!

最新更新