原始网页:https://www.cockroachlabs.com/docs/stable/import-data.html


本小节将展示如何从CSV/TSV文件或SQL dump文件导入数据到CockroachDB当中。

NOTE: 若需要导入/恢复CockroachDB企业版备份出来的数据,可查看RESTORE语句。

导入表格格式数据

对于表格格式的数据(例如CSV或TSV格式),用户可以使用IMPORT语句进行导入操作。同时,用户在使用IMPORT语句前需要准备远程文件服务器(例如亚马逊S3服务器,或是其他自定义的文件服务器)供节点访问数据文件。

导入通用SQL dump数据

用户可以对.sql文件里的INSERT语句使用cockroach sql命令批量执行:

cockroach sql --database=[database name] < statements.sql

TIPS: 将小的单个INSERT语句聚合成包含500-1000行记录的大INSERT语句,能够获得更好的性能。聚合的行数取决于记录大小、列簇和索引情况,一般来说更小的记录大小和更简单的schema能够对应更多的聚合行数。

导入PostgreSQL dump数据

用户可以在PostgreSQL的环境上使用pg_dump工具导出.sql的数据文件,再通过导出的文件将数据快速导入CockroachDB。

TIPS: pg_dump工具导出的.sql文件使用的是COPY语句,相较于批量的INSERT语句能够获得更好的导入性能。

生成PostgreSQL dump数据

根据数据迁移计划,调整并执行pg_dump命令,例如:

迁移整个数据库

pg_dump [database] > [filename].sql

迁移特定表

pg_dump -t [table] [table's schema] > [filename].sql

更多细节查看pg_dump工具的说明文档。

调整SQL文件内容

导出.sql文件后,用户需要执行以下操作:

导入数据

调整完SQL文件内容后,通过pgsql工具导入数据:

psql -p [port] -h [node host] -d [database] -U [user] < [file name].sql

CockroachDB默认情况下[port]26257[user]root