2015-01-26 48 views
2

我有一個只有一個節點(我們稱之爲localhost)的Couchbase集羣,我需要將一個非常大的存儲桶(我們稱之爲XXX)的所有數據導出爲CSV文件。從Couchbase導出到CSV文件

現在這似乎是一個非常簡單的任務,但我找不到讓它工作的方法。

根據couchbase http://docs.couchbase.com/admin/admin/CLI/cbtransfer_tool.html上的cbtransfer文檔(他們說這是可能的,但他們沒有明確解釋)。如果您希望傳輸以csv格式(?)進行,但它不起作用,它們只會添加一個標誌。也許有人已經這樣做可以幫我一把嗎?

使用我已經能夠使一個方法我想用這個命令來獲得(與在鬥XXX所有文檔乾淨的CSV文件)結果的文檔:

的/ 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文件中?

+0

UPDATE:正如@Kirk提到的,您需要在命令行中使用csv:作爲前綴,但同時您需要指定用戶名和密碼。即使該命令在沒有這些參數的情況下工作(不正確),如果我指定了用戶名和密碼,它最終將所有文檔作爲平面CSV文件導出。謝謝! – 2015-01-27 21:15:27

回答

3

從查看文檔,你必須要稍微不同的語法來導出到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不是理想的格式。這是倒退一步。

+0

我需要導出的文檔實際上很平坦,只有* key-> values *和子文檔。我會給這個鏡頭,但整個「csv:」前綴沒有記錄。正如我所說的那樣,特別是文檔很差 – 2015-01-27 18:28:08

+0

您如何更改我發佈的URL上的文檔?我可以提交一個bug讓它改變。 – Kirk 2015-01-28 06:19:41

+0

前綴csv:是沒有記錄的東西,在我看來是非常重要的。同時給出更多使用CSV文件從/從/從couchbase導入和導出的例子,這將非常有用。在官方文檔中也低估了-u和-p標誌的使用 – 2015-01-29 03:49:59