我很难将大型数据集导入Couchbase。我有使用Redis通过命令行快速完成此操作的经验,但我还没有看到Couchbase的任何内容。
我尝试过使用PHP SDK,它每秒导入大约500个文档。我还尝试了Couchbase bin文件夹中的cbcdocload脚本,但似乎希望每个文档都在JSON文件中。创建所有这些文件然后加载它们是一项工作。我还缺少其他一些进口流程吗?如果cbcdocload是加载数据的唯一方法,则可以将多个文档放入1个json文件中。
答案 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中提取的任何文件)
我创建了一篇描述单个文件批量加载的博客文章,它列在这里: