将大型数据集导入Couchbase

时间:2014-10-23 21:49:58

标签: couchdb couchbase

我很难将大型数据集导入Couchbase。我有使用Redis通过命令行快速完成此操作的经验,但我还没有看到Couchbase的任何内容。

我尝试过使用PHP SDK,它每秒导入大约500个文档。我还尝试了Couchbase bin文件夹中的cbcdocload脚本,但似乎希望每个文档都在JSON文件中。创建所有这些文件然后加载它们是一项工作。我还缺少其他一些进口流程吗?如果cbcdocload是加载数据的唯一方法,则可以将多个文档放入1个json文件中。

1 个答案:

答案 0 :(得分:1)

获取包含所有JSON文档的文件并压缩文件:

zip somefile.zip somefile.json 

将zip文件放入目录中。我在我的主目录中使用了〜/ json_files /。

然后通过以下命令加载文件:

cbdocloader -u Administrator -p s3kre7Pa55 -b MyBucketToLoad -n 127.0.0.1:8091 -s 1000 \
~/json_files/somefile.zip

注意:' -s 1000'是内存大小。您需要为您的存储桶调整此值。

如果成功,您将看到输出说明加载了多少文档,成功等等。

这是一个在给定目录中加载大量.zip文件的简短脚本:

#!/bin/bash
JSON_Dir=~/json_files/
for ZipFile in $JSON_Dir/*.zip ; 
do /Applications/Couchbase\ Server.app/Contents/Resources/couchbase-core/bin/cbdocloader  \
    -u Administrator -p s3kre7Pa55 -b MyBucketToLoad                                  \
    -n 127.0.0.1:8091 -s 1000 $ZipFile
 done

更新:请注意,只有正确格式化数据或文件小于最大单个文档大小20MB时,此脚本才有效。 (不是zip文件,而是从zip中提取的任何文件)

我创建了一篇描述单个文件批量加载的博客文章,它列在这里:

Bulk Loading Documents Into Couchbase