openGauss数据导入与导出

举报
宁静的夏天 发表于 2026/09/17 16:44:52 2026/09/17
【摘要】 openGauss提供了两种主要的数据导入导出工具: • gsql 的 \copy 元命令:它可以在客户端和服务端之间传输数据,非常灵活。普通用户即可使用,是日常导出的首选方式。 • COPY 命令:是openGauss中最高效的数据导入导出方式,直接在数据库服务端读写文件,需要超级用户权限或调整安全参数,通常用于自动化脚本。 本文分别介绍其用法。

openGauss提供了两种主要的数据导入导出工具:

• gsql 的 \copy 元命令:它可以在客户端和服务端之间传输数据,非常灵活。普通用户即可使用,是日常导出的首选方式。

• COPY 命令:是openGauss中最高效的数据导入导出方式,直接在数据库服务端读写文件,需要超级用户权限或调整安全参数,通常用于自动化脚本。

1. 使用\copy元命令导出与导入

\copy 是 gsql 客户端的元命令,它会在客户端本地读写文件,不受服务端COPY安全限制。普通用户即可使用,是日常数据导出导入的首选方式。

例如:导出数据到客户端本地CSV文件

在gsql客户端中,使用\copy命令将数据导出到客户端本地:

db_bike=> \copy db_username.table_name from '/export/table_info.csv' WITH (FORMAT CSV, HEADER true, DELIMITER ',');

/export/是客户端上的路径,若该目录不存在,需要在客户端机器上手动创建目录并授予写权限(以 root 用户执行):

#1. 创建目录

[root@gauss ~]# mkdir -p /export

#2. 查看 omm 用户所属的用户组(用于 chown)

[root@gauss ~]# id omm

# 输出示例:uid=1001(omm) gid=1001(dbgrp) groups=1001(dbgrp)

#3. 将目录所有者改为 omm,组改为 omm 的主用户组(根据 id 输出确定,本例为 dbgrp)

[root@gauss ~]# chown omm:dbgrp /export

若导出带条件的数据,可执行如下语句:

db_bike=>\copy (SELECT * FROM db_username.t_user WHERE balance > 30) TO '/export/user_balance_gt30.csv' WITH (FORMAT CSV, HEADER true, DELIMITER ',');

从客户端本地文件导入数据:

db_bike=> \copy db_username.table_name FROM '/local_path/table_info_import.csv' WITH (FORMAT CSV, HEADER true, DELIMITER ',');

\copy实际上是在客户端执行COPY命令,但文件保存在客户端本地,更方便普通用户使用。

2. 使用COPY命令导出与导入

COPY 命令是openGauss提供的高效数据导入导出方式,直接在数据库服务端读写文件。但注意: 出于安全考虑,openGauss默认禁止普通用户执行 COPY 操作。可使用超级用户(如omm)来操作。

例如:导出到服务器端文件

[omm@gauss ~]$ gsql -d db_bike -p 15400 -r

db_bike=# copy db_username.table_name to '/export/table_info_new .csv' WITH (FORMAT CSV, HEADER true, DELIMITER ',');

从服务器端文件导入:

db_bike=# copy db_username.table_name from '/export/table_info_new .csv' WITH (FORMAT CSV, HEADER true, DELIMITER ',');

建议仅在自动化脚本或可信环境中使用 COPY,日常交互式操作请使用 \copy。

\copy与COPY的区别:

· COPY是服务端命令,文件路径必须在数据库服务器上,且数据库用户需要有访问该文件的权限。

· \copy是gsql客户端的元命令,文件路径位于客户端机器上。它在内部会通过COPY命令在客户端和服务端之间传输数据。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。