GBase与梧桐数据库数据加载与导出的差异

一、前言

  在数据库的导入导出方面,GBase数据库和梧桐数据库有着各自的特点和方法。以下就表数据的导入导出介绍下两个数据库这方面的差异并总结。

二、数据导入

1、GBase库数据导入

  GBase数据库在导入数据常使用 LOAD DATA INFILE 语句将数据从文件导入到表中,支持多种数据格式和字段分隔符,具体命令如下:

LOAD DATA INFILE 'file://主机地址/文件目录/文件名' INTO TABLE 目标表 data_format 3 fields terminated by '|' ;

参数解释:

  • data_format :指定解析数据文件并加载的方式,如文本方式加载(DATA_FORMAT 3)、定长方式加载(DATA_FORMAT 4)等,示例中指定的方式为 3 文本加载方式

  • fields : 段指示,包括分隔符、包围符、空格处理等。例如,TERMINATED BY用于指定字段分隔符,ENCLOSED BY用于指定字段包围符,示例中设定 TERMINATED BY '|',指定字段分割符为 ‘|’;

  • max_bad_records : 设定错误数据行数的上限,当错误数据行数超过此值时,加载任务回滚并报错退出,设置为0时不允许存在错误记录;

  • CHARACTER SET : 指定待加载数据文件的编码格式,支持GBK、UTF8等,如果省略,认为不需要转码。

  • 引号中为目标文件地址及文件名;

备注

目标文件地址可以是本地文件系统或远程数据源,可以是 FTP、SFTP、Hadoop

例:

sftp://主机账号:主机密码@主机地址//

hdp://主机账号:主机密码@主机地址//

2、梧桐数据库数据导入

  梧桐数据库可以使用COPY命令来进行本地文件系统的导入,也可通过外部表获取远程数据源的方式导入,具体命令如下:

使用COPY命令

\copy table_name from '文件名.csv' WITH FORMAT csv delimiter '|' null as '\\N';

参数解释

  • table_name 导入的目标表名

  • from 后接待导入的文件名

  • WITH 后接导入的限制条件,示例中未完全写出

    • FORMAT 导入文件格式,要与文件的格式保持一致

    • delimiter 指定文件分割符

    • null as 指定字段为空值

    • segment reject limit 允许的错误最大记录数

    • encoding 指定字符集,不指定则为默认

    • log errors into 表名,将错误记录数插入日志

  相比较于GBase库,COPY命令只能导入本地系统的文件数据,而GBase库可以通过命令导入其他远程数据源的文件,然而梧桐数据库可以通过外部表的方式导入数据,如下:

CREATE EXTERNAL TABLE test_table
    (column_1 int, column_2 text, column_3 text)
    LOCATION ('gpfdist://文件目录/*.csv')    FORMAT 'CSV' DELIMITER ',';
  • LOCATION:指定文件目录地址及文件名

  • 其他参数与上述COPY命令一致,可按照需求添加

备注

gpfdist 是梧桐数据库的并行文件分发程序,在执行创建外部表时文件所在主机必须要安装该程序。

创建外部表后可将外部表数据插入本地数据库表中,完成导入操作。

三、数据导出

1、GBase数据库数据导出

  GBase数据库在导入数据常使用 SELECT INTO OUTFILE 语句将数据从文件导入到表中,支持多种数据格式和字段分隔符,具体命令如下:

rmt:select * from 目标表名 into outfile '目标地址/文件名.txt' fields TERMINATED BY ',' enclosed by '"' lines TERMINATED BY '\n';

参数解释:

  • fields : 字段指示,包括分隔符、包围符、空格处理等。例如,TERMINATED BY用于指定字段分隔符,ENCLOSED BY用于指定字段包围符,示例中设定 TERMINATED BY '|',指定字段分割符为 ‘|’;enclosed by '"' 指定’ " '为字段包围符;

  • lines TERMINATED BY: 指定行分隔符,默认为换行符(\n)。

  • WRITEMODE BY:指定导出文件的写入模式。可以是NORMAL(如果文件已存在则报错)或OVERWRITES(覆盖已存在的文件)。

  • CHARACTER SET : 指定待加载数据文件的编码格式,支持GBK、UTF8等,如果省略,认为不需要转码。

  • rmt:使用rmt前缀可以将数据导出到执行命令的客户端机器上,而不是服务器上.

2、梧桐数据库数据导出

  梧桐数据库常使用COPY命令来进行数据的导出,具体命令如下:

\COPY select * from table_name TO '文件地址/文件名' WITH (FORMAT 'csv',DELIMITER '|', HEADER true);

参数解释:

  • TO 后接数据导出指定的目录及文件名

  • WITH 后接导入的限制条件,示例中未完全写出

    • FORMAT 导入文件格式,要与文件的格式保持一致

    • HEADER 指定输出文件是否包含列头。可以设置为true或false

    • delimiter 指定文件分隔符,示例使用 ’ | '作为分隔符

    • ESCAPE 指定转义字符,用于转义引号字符本身或其他特殊字符,默认为反斜杠\

    • QUOTE 指定引号字符,用于包围文本字段,默认为双引号"

    • encoding 指定字符集,支持GBK、UTF8等,不指定则为默认

  梧桐数据库的数据库可视化管理平台也提供了导入导出的功能,可以通过对数据表进行导入导出。

四、总结

  GBase数据库和梧桐数据库都提供了丰富的数据导入导出工具和参数,以满足不同场景下的需求。用户可以根据自己的具体需求选择合适的工具和参数进行数据迁移。

猜你喜欢

转载自blog.csdn.net/weixin_38597918/article/details/143489054