我有一个只有一个节点的Couchbase集群(我们称之为localhost),我需要将一个非常大的存储桶(我们称之为XXX)中的所有数据导出到CSV文件中。
现在这似乎是一项非常简单的任务,但我找不到让它发挥作用的方法。
根据来自Couchbase http://docs.couchbase.com/admin/admin/CLI/cbtransfer_tool.html的cbtransfer toold的(非常糟糕的)文档,他们说这是可能的,但他们没有清楚解释。如果您希望以csv格式(?)进行传输,它们只是添加一个标志,但它不起作用。也许有人已经这样做可以帮我一把忙?
使用该文档我已经能够使用此命令对我想要获得的结果(包含XXX存储桶中所有文档的干净CSV文件)进行处理:
/ opt / couchbase / bin / cbtransfer http://localhost:8091 /path/to/export/output.csv -b XXX
但我得到的是/path/to/export/output.csv实际上是一个包含很多文件夹的文件夹,它存储了某种json元数据,可用于在另一个实例中恢复XXX存储桶Couchbase。
是否有人能够将Couchbase存储桶(Json文档)中的数据导出到CSV文件中?
答案 0 :(得分:4)
通过查看文档,您必须使用稍微不同的语法导出到CSV。 http://docs.couchbase.com/admin/admin/CLI/cbtransfer_tool.html
它需要看起来像这样:
cbtransfer http://[localhost]:8091 csv:./ data.csv -b default -u Administrator -p password
注意csv文件名称前的“csv:”。
我对此进行了测试,并确实导出了CSV。只是转发你需要一个相对平坦的文档结构才能使其工作得非常好,因为JSON可以代表比CSV更复杂的数据结构,例如数组,子文档等cbtransfer不会解开那些。例如,如果有子文档,cbtransfer会将其表示为每个CSV行中的JSON文档。
因此,根据您的文档结构,导出为CSV不是理想的格式。这是向后退一步。