更新时间:2025-05-29 GMT+08:00
导入导出的数据文件在GSQL客户端的场景
当使用GSQL执行COPY命令导出数据时,生成的数据文件默认存储在数据库服务端,这可能导致用户获取数据文件时面临一定不便。针对此场景,建议采用\COPY命令进行操作,该命令会将导出的数据文件直接生成在客户端本地。
COPY与\COPY的区别
- 数据文件的位置差异:COPY导入生成的文件与导入时读取的文件均在服务端节点上,而\COPY导入生成的文件与导入时读取的文件均在客户端节点上。
- 性能差异:由于\COPY是在客户端读取文件流后传输给服务端完成数据的导入,所以性能上会比COPY导入低。
- 功能差异:\COPY在COPY的基础上额外支持基于客户端并行导入的能力,具体的规格约束可参考《工具参考》中“数据库连接工具 > gsql连接数据库 > 元命令参考”章节。
\COPY命令示例
\COPY的导出命令与COPY命令的区别为把命令中的COPY换成\COPY即可,此处提供一个简单的CSV格式COPY导出命令转换为\COPY导出命令的示例:
1 2 3 4 5 6 7 |
--COPY命令。 COPY {data_source} to '/path/export.csv' encoding {server_encoding} csv; COPY {data_source} from '/path/export.csv' encoding {server_encoding} csv; --对应的\COPY命令。 \COPY {data_source} to '/path/export.csv' encoding {server_encoding} csv; \COPY {data_source} from '/path/export.csv' encoding {server_encoding} csv; |
并行导入命令示例
1 2 3 4 5 6 7 8 9 10 11 12 |
--data_destination只能是一个表名称 --file_encoding表示该二进制文件导出时指定的编码格式。 --parallel_num表示数据导入时的客户端数量,在集群资源较为充足时建议此值为8 --CSV格式的导入命令 \COPY {data_destination} FROM '/path/export.txt' ENCODING {file_encoding} PARALLEL {parallel_num} CSV; --FIXED格式的导入命令 \COPY {data_destination} FROM '/path/export.txt' ENCODING {file_encoding} PARALLEL {parallel_num} FIXED; --TEXT格式的导入命令 \COPY {data_destination} FROM '/path/export.txt' ENCODING {file_encoding} PARALLEL {parallel_num}; |
父主题: 典型场景