更新时间: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 |
--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 |
--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}; --data_destination 只能是一个表名称 --file_encoding 表示该二进制文件导出时指定的编码格式 --parallel_num 表示数据导入时的客户端数量,在集群资源较为充足时建议此值为8。 |
父主题: 典型场景