从 Couchbase 导出到 CSV 文件

Export from Couchbase to CSV file

我有一个只有一个节点(我们称之为本地主机)的 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 元数据,可用于恢复 XXX 存储桶在 Couchbase 的另一个实例中。

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

通过查看文档,您必须使用稍微不同的语法才能导出到 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 doc。

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