GaussDB数据导出方式有:
gsql元命令\copy、gsql元命令+\o导出查询结果到文件、JDBC接口CopyManager。三者数据导出性能差别不大。
copy、\copy、CopyManager、gs_loader的区别:
l copy,从理解上可以理解为copy语法与copy语句两种含义。
n copy语法:copy语句、\copy与CopyManager均依赖于copy语法,详细语法可以参考《开发指南》中的“DML 语法一览表”——“拷贝数据”。
n copy语句:通过各类客户端工具直接执行copy语句,可实现表和数据库服务器文件之间的拷贝数据。但目前行内高斯数据库基于华为云部署,规范限制不允许在数据库服务器上部署文件,直接执行copy语句会出现报错:
ERROR: COPY to or from a file is prohibited for security concerns
HINT: Anyone can COPY to stdout or from stdin. gsql's \copy command also works for anyone.
因此不应直接使用copy语句,而应该通过客户端工具对应的功能,如\copy、CopyManager或gs_loader,实现表和客户端所在服务器文件之间拷贝数据。
l \copy
\copy是gsql工具的元命令,需通过gsql工具执行。以\copy开头,具体使用copy语法,支持导入导出。
l CopyManager
CopyManager是JDBC驱动提供的一个API接口类。具体使用copy语法,支持导入导出。
l gs_loader
gs_loader是一个兼容Oracle sqlldr用法的兼容性工具,将控制文件支持的语法转换为\COPY语法,然后利用已有的\COPY功能导入数据,仅支持导入。
gs_loader仅精简模式支持使用。分布式不支持gs_loader、请直接使用\copy功能。




