从 Couchbase 导出到 CSV 文件

Jos*_*ido 3 csv nosql couchbase

我有一个只有一个节点(我们称之为 localhost)的 Couchbase 集群,我需要将一个非常大的存储桶(我们称之为 XXX)中的所有数据导出到 CSV 文件中。

现在这似乎是一项非常简单的任务,但我找不到让它发挥作用的方法。

根据 Couchbase http://docs.couchbase.com/admin/admin/CLI/cbtransfer_tool.html有关 cbtransfer 工具的(非常糟糕)文档,他们说这是可能的,但他们没有清楚地解释。如果您希望以 csv 格式进行传输(?),他们只是添加一个标志,但它不起作用。也许已经这样做过的人可以帮我一把?

使用文档,我已经能够使用以下命令获得我想要获得的结果(一个干净的 CSV 文件,其中包含 XXX 存储桶中的所有文档):

/opt/couchbase/bin/cbtransfer http://localhost:8091 /path/to/export/output.csv -b XXX

但我得到的是 /path/to/export/output.csv 实际上是一个包含很多文件夹的文件夹,它存储某种 json 元数据,可用于恢复 Couchbase 另一个实例中的 XXX 存储桶。

有人能够将 Couchbase 存储桶(Json 文档)中的数据导出到 CSV 文件中吗?

Kir*_*irk 5

通过查看文档,您必须使用稍微不同的语法才能导出到 CSV。http://docs.couchbase.com/admin/admin/CLI/cbtransfer_tool.html

它需要看起来像这样:

cbtransfer http://[localhost]:8091 csv:./data.csv -b 默认 -u 管理员 -p 密码

请注意 csv 文件名称之前的“csv:”。

我对此进行了测试,它确实导出了 CSV。请注意,您需要一个相对平坦的文档结构才能很好地工作,因为 JSON 显然可以表示比 CSV 复杂得多的数据结构,例如数组、子文档等。cbtransfer 不会解开这些。例如,如果有一个子文档,cbtransfer 会将其表示为每个 CSV 行中的 JSON 文档。

因此,根据您的文档结构,导出为 CSV 并不是理想的格式。这是一种倒退。