南大通用数据迁移之GaussDB_To_GBase8a(四)数据迁移

原文链接:

https://www.gbase.cn/community/post/3870

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

GaussDB数据导出

导出方式对比介绍

导出工具导出步骤适用场景和说明
使用GDS工具将数据从数据库导出到普通文件系统中
注:数据文件导出的服务器上需要安装GDS工具

Remote导出模式:将集群中的业务数据导出到集群之外的主机上
第一步:规划导出路径,创建GDS操作用户,设置GDS用户对导出路径的写权限
第二步:在导出数据的服务器上安装配置和启动GDS
第三步:集群中创建外表,location路径格式如“gsfs:// 
192.168.0.90:5000/”

Local导出模式:将集群中的业务数据导出到集群节点所在主机上。一种专门为大量小文件而定制的一种策略。
第一步:规划导出路径,在集群的每个DN上创建导出数据文件存放目录,如“/output_data”,并修改该路径属主为omm
第二步:在导出数据的服务器上安装配置和启动GDS
第三步:集群中创建外表,location路径格式如“file:///output_data/”

GDS工具适用于高并发、大量数据导出的场景,利用多DN并行的方式,将数据从数据库导出到数据文件中,从而提高整体导出性能。不支持直接导出文件到HDFS文件系统。

Remote导出注意事项:
支持多个GDS服务并发导出,但1个GDS在同一时刻,只能为1个集群提供导出服务;配置与集群节点处于统一内网的GDS服务,导出速率受网络带宽影响,推荐的网络配置为10GE;支持数据文件格式:TEXT、CSV和FIXED。单行数据大小需<1GB。

Local导出注意事项
数据将均匀切割并生成到集群节点上指定的文件夹下,需占用集群节点的磁盘空间;支持数据文件格式:TEXT、CSV和FIXED。单行数据大小需<1GB。

gs_dump和gs_dumpall工具
gs_dump支持导出单个数据库或其内的对象,gs_dumpall支持导出集 
群中所有数据库或各库的公共全局对象。
工具支持导出内容分库级、模式级、秒级,每个级可以分别单独定义导出全量、仅对象定义、仅数据文件

第一步:操作系统用户omm登录安装有MPPDB服务的任一主机,执行source $ {BIGDATA_HOME}/mppdb/.mppdb

gs_profile命令启动环境变量
第二步:使用gs_dump导出postgres数据库

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技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值