一、前言
在数据库的导入导出方面,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数据库和梧桐数据库都提供了丰富的数据导入导出工具和参数,以满足不同场景下的需求。用户可以根据自己的具体需求选择合适的工具和参数进行数据迁移。