原文链接:
https://www.gbase.cn/community/post/3870
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。
GaussDB数据导出
导出方式对比介绍
导出工具 | 导出步骤 | 适用场景和说明 |
使用GDS工具将数据从数据库导出到普通文件系统中 注:数据文件导出的服务器上需要安装GDS工具 | Remote导出模式:将集群中的业务数据导出到集群之外的主机上 Local导出模式:将集群中的业务数据导出到集群节点所在主机上。一种专门为大量小文件而定制的一种策略。 | GDS工具适用于高并发、大量数据导出的场景,利用多DN并行的方式,将数据从数据库导出到数据文件中,从而提高整体导出性能。不支持直接导出文件到HDFS文件系统。 Remote导出注意事项: Local导出注意事项 |
gs_dump和gs_dumpall工具 gs_dump支持导出单个数据库或其内的对象,gs_dumpall支持导出集 群中所有数据库或各库的公共全局对象。 工具支持导出内容分库级、模式级、秒级,每个级可以分别单独定义导出全量、仅对象定义、仅数据文件 | 第一步:操作系统用户omm登录安装有MPPDB服务的任一主机,执行source $ {BIGDATA_HOME}/mppdb/.mppdb gs_profile命令启动环境变量 gs_dump -W Bigdata@123 -U jack -f /home/omm/backup/postgres_backup.tar -p 25308 postgres -F t | 导出数据库全量信息,包含数据和所有对象定义;导出所有数据库全量信息,包含集群中每个数据库信息和公共的全局对象信息 仅导出所有对象定义,包括:表空间、库定义、函数定义、模式定义、表定义、索引定义和存储过程定义等。 仅导出数据,不包含所有对象定义。 |
GDS外表Rmote导出示例:
mkdir -p /output_data
groupadd gdsgrp
useradd -g gdsgrp gds_user
chown -R gds_user:gdsgrp /output_data
/opt/bin/gds/gds -d /output_data -p 192.168.0.90:5000 -H 10.10.0.1/24 -D
CREATE FOREIGN TABLE foreign_tpcds_reasons
(
r_reason_sk integer not null,
r_reason_id char(16) not null,
r_reason_desc char(100)
) SERVER gsmpp_server OPTIONS (LOCATION 'gsfs://192.168.0.90:5000/', FORMAT 'CSV',ENCODING
'utf8',DELIMITER E'\x08', QUOTE E'\x1b', NULL '') WRITE ONLY;
INSERT INTO foreign_tpcds_reasons SELECT * FROM reasons;
ps -ef|grep gds
gds_user 128954 1 0 15:03 ? 00:00:00 gds -d /output_data -p 192.168.0.90:5000 -D
gds_user 129003 118723 0 15:04 pts/0 00:00:00 grep gds
kill -9 128954
GDS外表local导出示例:
mkdir -p /output_data
chown -R omm:wheel /output_data
CREATE FOREIGN TABLE foreign_tpcds_reasons
(
r_reason_sk integer not null,
r_reason_id char(16) not null,
r_reason_desc char(100)
) SERVER gsmpp_server OPTIONS (LOCATION 'file:///output_data/', FORMAT 'CSV',ENCODING
'utf8', DELIMITER E'\x08', QUOTE E'\x1b', NULL '') WRITE ONLY;
INSERT INTO foreign_tpcds_reasons SELECT * FROM reasons;
gs_dumpall导出示例
导出所有数据库的公共全局表空间信息和用户信息(omm用户为管理员用户),导出文件为文本格式。
gs_dumpall -W Bigdata@123 -U omm -f /home/omm/backup/MPPDB_globals.sql -p 25308 -g
gs_dumpall[port='25308'][2018-11-14 19:06:24]: dumpall operation successful
gs_dumpall[port='25308'][2018-11-14 19:06:24]: total time: 1150 ms
导出所有数据库全量信息(omm用户为管理员用户),导出文件为文本格式。执行命令后,会有很长的打印信息,最终出现total time即代表执行成功。
gs_dumpall -W Bigdata@123 -U omm -f /home/omm/backup/MPPDB_backup.sql -p 25308
gs_dumpall[port='25308'][2017-07-21 15:57:31]: dumpall operation successful
gs_dumpall[port='25308'][2017-07-21 15:57:31]: total time: 9627 ms
导出所有数据库定义(omm用户为管理员用户),导出文件为文本格式。
gs_dumpall -W Bigdata@123 -U omm -f /home/omm/backup/MPPDB_backup.sql -p 25308 -s
gs_dumpall[port='25308'][2018-11-14 11:28:14]: dumpall operation successful
gs_dumpall[port='25308'][2018-11-14 11:28:14]: total time: 4147 ms
4.2GBase 8a MPP数据导入
执行sql文件导入数据库定义
gccli -ugbase -pgbase20110531 -Dtestdb -vvv -f <guessdb_out.sql >>guessdb_out.result 2>guessdb_out.err
注:-D参数后必须跟gbase集群内已经存在的库,执行的guessdb_out.sql文件将按照文件中sql指定的库操作,跟-D参数后面的库无关。
GBase 8a MPP导入文本数据
第一步:GaussDB导出的数据所在的数据服务器,需要配置ftp服务,并保证GBase 8a MPP集群各节点可以ftp访问数据服务器数据文件。
第二步:整理GuessDB导出的数据文件的特征
编码格式、 字段分隔符(delimiter)、 引号字符(quote)、数据文件中空值(null)、逃逸字符(escape)默认值双引号、数据文件是否包含标题行(header)、 导出数据文件换行符样式、日期列的数据格式等
第三步:根据第二步整理出来的特征,在GBase 8a MPP中编写导入数据的sql并执行。
语法格式:
LOAD DATA INFILE 'file_list'
INTO TABLE [dbname.]tbl_name
[options]
options:
[CHARACTER SET charset_name]
[DATA_FORMAT number [HAVING LINES SEPARATOR]]
[NULL_VALUE 'string']
[FIELDS
[TERMINATED BY 'string']
[ENCLOSED BY 'string']
[PRESERVE BLANKS]
[AUTOFILL]
[LENGTH 'string']
[TABLE_FIELDS 'string']
]
[LINES
[TERMINATED BY 'string']
]
[MAX_BAD_RECORDS number]
[DATETIME FORMAT format]
[DATE FORMAT format]
[TIMESTAMP FORMAT format]
[TIME FORMAT format]
[TRACE number]
[TRACE_PATH 'string']
[NOSPLIT]
[PARALLEL number]
[MAX_DATA_PROCESSORS number]
[MIN_CHUNK_SIZE number]
[SKIP_BAD_FILE number]
[SET col_name = value[,...]]
[IGNORE NUM LINES]
[FILE_FORMAT format]
加载示例:
多数据文件加载
gbase> LOAD DATA INFILE 'ftp://192.168.0.1/pub/lineitem.tbl,
http://192.168.0.2/lineitem.tbl' INTO TABLE test.lineitem FIELDS
TERMINATED BY '|' ENCLOSED BY '"' LINES TERMINATED BY '\n';
带通配符多文件导入语句
gbase> LOAD DATA INFILE 'ftp://192.168.10.114/data/*' INTO TABLE test.t;
带列、行分隔符和包围符的导入语句
gbase> LOAD DATA INFILE 'ftp://192.168.0.1/pub/lineitem.tbl' INTO TABLE test.lineitem FIELDS TERMINATED BY '|' ENCLOSED BY '"' LINES TERMINATED BY '\n'
带日期格式导入语句
load data infile
'ftp://192.168.88.141/load_data/table_fields.tbl' into table test.t
fields terminated by ',' table_fields 'i, vc, dt date "%H:%i:%s %Y-%m-%d", dt1 date "%Y-%m-%d %H:%i:%s"';
带自动填充导入语句
load data infile 'ftp://192.168.88.141/load_data/autofill.tbl' into table test.t fields terminated by '|' autofill;
带常量值导入语句
gbase> Load data infile 'data.tbl' into table t fields terminated by '|' set c='2016-06-06 18:08:08',d='default',e=20.6;
忽略表头导入语句
gbase>load data infile ‘http://192.168.6.39/test.tbl’ into table data_test fields terminated by ‘|’ ignore 3 lines;
带Blob数据导入
gbase>load data infile ‘http://192.168.6.39/test.tbl’ into table
data_test fields terminated by ‘|’ table_fields ‘a,b,c type_text,d’;
gbase>load data infile ‘http://192.168.6.39/test.tbl’ into table
data_test fields terminated by ‘|’ table_fields ‘a,b,c type_base64,d’;
gbase>Load data infile ‘http://192.168.6.39/test.tbl’ into table
data_test fields terminated by ‘|’ table_fields ‘a,b,c type_url,d’;
原文链接:
https://www.gbase.cn/community/post/3870
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。