2017-04-10 154 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