2017-04-10 113 views

回答

3

將CSV文件導入CockroachDB的最簡單方法是使用CSV轉換器將CSV中的每一行轉換爲SQL INSERT語句。你可以找到任何數量的網站爲你做這件事,或者你可以建立一個腳本來處理類似awk,Perl或Python的處理。另外

cockroach sql --database=[your db] < [file].sql 

,如果已安裝的Postgres,您可以通過psql連接到CockroachDB並使用其COPY命令導入:一旦你有你的SQL文件中的INSERT語句,你可以像這樣執行它們CSV。

psql postgres://[email protected]:PORT/DATABASE -c "COPY [table] FROM '[path to].csv' DELIMITER ',' CSV;" 

如果你在你的本地計算機上的默認端口上運行CockroachDB,這裏是充滿在默認設置相同的命令:

psql postgres://[email protected]:26257/DATABASE -c "COPY [table] FROM '[path to].csv' DELIMITER ',' CSV;" 
+0

Postgres的複製命令負載蟑螂沒有工作對我來說這個開放式問題。這種方法在文檔中也沒有提到,所以我認爲它不是真的支持。但是pgdump恢復是受支持的。 –

1

蟑螂不支持DELIMITER聲明確實也不接受CSV格式明確,從而以正確的命令來使用COPY FROM是:

psql postgres://[email protected]:port/DATABASE -c "COPY [table] FROM '[path to].csv';"

的分隔符必須是特殊字符\t因此,如果您的CSV文件使用,作爲分隔符,你可以很容易地使用SED將其轉換:

sed -i 's/,/\t/g' [your file].csv

爲什麼他們硬編碼特殊字符\t作爲分隔符超出我的知識範圍而不是,

目前已經在https://github.com/cockroachdb/cockroach/issues/16407