原文链接:www.gbase.cn/community/p…
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。
GBase 8a MPP Cluster根据不同场景需求提供多种便于用户操作的数据迁移工具。今天给大家介绍几个迁移的方法。
1 数据库对象结构导出
功能简介
gcdump工具可以导出数据库对象的结构:
- 导出表结构
- 导出存储过程
- 导出自定义函数
说明
gcdump工具位于$GCLUSTER_HOME/bin路径下。通过参数gbase_show_ident_case_sensitive可以控制导出的列名大小写,默认与源表结构中列名大小写一致。
语法
gcdump [OPTIONS] database [tables]
gcdump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
gcdump [OPTIONS] --all-databases [OPTIONS]
参数说明
| 参数名称 | 说 明 |
|---|---|
| -u | 登录集群用户名 |
| -p | 登录集群密码 |
| -R | 输出存储过程和函数 |
| -B | 可以输出多个数据库 |
| -W | 指定VC名称 |
示例
$ $GCLUSTER_BASE/server/bin/gcdump –uroot –p****** –B –R ssbm>/home/gbase/ssbm.sql
2 数据加载
功能简介
GBase 8a MPP Cluster提供了面向用户的SQL接口加载方式。支持如下功能:
- 支持本地文件加载
- 支持从通用数据服务器拉取数据加载;
- 支持FTP/HTTP/HDFS/SFTP等多种协议;
- 支持多加载机对单表的并行加载,最大化加载性能;
- 支持普通文本、gzip压缩、snappy压缩、lzo压缩等多种格式数据文件加载;
- 支持普通文本与定长文本的加载,并与V8.5.1.2和V86版本格式兼容;
- 支持加载状态和信息的实时查询
- 支持错误数据溯源功能,可以准确定位错误数据在源文件中的位置;
- 加载性能可以随着集群规模的扩展而持续提升。
语法
LOAD DATA INFILE 'file_list' INTO TABLE[vcname.] [dbname.]tbl_name [options]
说明
file_list说明
- 集群本地数据源加载:
1)支持指定一个或多个数据节点上的本地文件进行加载。使用file://host+abs_path,多个file://host+abs_path之间使用逗号分隔,支持采用直接读取模式加载指定集群数据节点的本地文件。
2)支持指定所有数据节点并发加载各自节点上的文件。使用file://+abs_path,多个file://+abs_path之间使用逗号分隔,支持采用直接读取模式加载集群所有数据节点的本地文件。
- 集群以外的通用文件服务器上的数据源加载:
1)通用文件服务器上需要搭建ftp/http/hdfs/sftp服务,并将数据文件拷贝到服务配置的路径下,保证集群节点能通过相应服务访问到数据。
2)加载时使用URL的方式指定通用文件服务器上的数据文件路径,以逗号(',')作为多个文件/目录 的分隔符,格式为“scheme://host:port/path, scheme://host:port/path”,
同时文件名、目录部分均支持使用通配符,默认对路径及文件进行匹配,如:“http://10.10.1.1/data/??????/*.tbl”。
示例:
LOAD DATA INFILE 'ftp://gbase:gbase@127.0.0.1/data/a.tbl' INTO TABLE test.t DATA_FORMAT 3;
LOAD DATA INFILE 'http://127.0.0.1/data/b.tbl.gz' INTO TABLE test.t DATA_FORMAT 3;
LOAD DATA INFILE 'hdp://gbase@127.0.0.1:50070/data/a.tbl.snappy' INTO TABLE test.t DATA_FORMAT 3;
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> use information_schema;
gbase> select * from load_status;
-显示task_id 100任务的从第1条开始的后面5条错误数据信息
gbase> show load logs 100 limit 1,5;
显示所有coordinator节点上task_id 101任务的前10条错误数据信息
gbase> show gcluster load logs 101;
查询所有coordinator节点,select查询形式,查询加载信息,表名为:CLUSTER_LOAD_RESULT
gbase> select * from information_schema.cluster_load_result;
3 数据导出
功能简介
GBase 8a MPP Cluster提供数据导出功能,使用SELECT ... INTO OUTFILE ...的SQL语法形式导出,支持:
- 把数据导出到集群的服务器端、指定的ftp/sftp的服务器或Hadoop集群上,可导出为文本文件或gz/snappy/lzo格式的压缩文件;
- 提供数据远程导出功能,即把数据从集群服务器导出到集群客户端所在的机器,导出后的数据为文本文件。
语法
SELECT ... INTO OUTFILE 'file_name' [OPTION] FROM ...;
SELECT... FROM... INTO OUTFILE 'file_name' [OPTION];
rmt:SELECT... FROM...INTO OUTFILE 'file_path' [OUTFILE_OPTION];
示例
gbase> select * from aa into outfile '/home/davies/out.txt' fields escaped by '' terminated by '|' double_enclosed by '"' null_value 'null';
4 数据迁移
4.1orato8a数据抽取工具简介
orato8a简介
orato8a是一个可以快速、高效地从oracle数据库系统中抽取数据,并将数据保存到指定文件或直接迁移到GBase 8a MPP Cluster中的专用工具。orato8a还提供查询语句导出和全表导出两种方式,其中全表导出的登录用户需要对oracle数据库中的dba_extents、dba_objects和dba_tables这三张表有select权限。
orato8a部署
orato8a是一个独立运行的数据抽取工具,需要将此工具部署在可以访问到oracle的机器上(即需要与oracle客户端部署在一起),或者直接与oralce server部署在一台服务器上。
orato8a安装包以tar.bz2的压缩格式提供。例如:orato8a_26794_Redhat6.2_x86_64.tar.bz2。
解压后,将会在解压目录下产生一个orato8a的可执行程序文件。
# tar xfj orato8a_26794_Redhat6.2_x86_64.tar.bz2
$ ll
总用量 2068
……
-rw-r--r-- 1 root root 1380535 8月 23 01:08 orato8a
orato8a语法
./orato8a parameter_1 parameter_2 …… parameter_n
说明
执行orato8a的用户,必须是有权限访问oracle数据库的用户。orato8a导出oracle中blob或clob类型数据列时不同的orato8a版本有不同的参数控制,需要根据具体版本参考手册处理。
orato8a示例
$ ./orato8a --user='ct1/ct1ct1@orcl' --query="select LO_ORDERKEY, LO_LINENUMBER FROM lineorder_test" --file='/opt/orato8a_output/lineorder.txt ' --field=";" --format=3
export columns: 2
export rows: 10
export time: 0 sec
process ok!
4.2 db2to8a 数据抽取工具简介
db2to8a简介
db2to8a是一个可以快速、高效地从db2数据库系统中抽取出数据的专用工具,抽取出来的数据可以保存到指定的文件中。
db2to8a部署
db2to8a是一个独立运行的数据抽取工具,需要将此工具部署在可以访问到db2的客户机上,或者直接与db2 server部署在同一台服务器上。
db2to8a安装包以tar.bz2的压缩格式提供。例如:db2to8a_24816_Redhat6.2_x86_64.tar.bz2。
解压后,将会在解压目录下直接生成一个名为db2to8a的可执行程序。
# tar xfj db2to8a_24816_Redhat6.2_x86_64.tar.bz2
$ ll
总用量 2068
……
-rw-r--r-- 1 root root 1380535 8月 23 01:08 db2to8a
-rw-r--r-- 1 root root 663929 8月 22 17:13
db2to8a语法
./db2to8a parameter_1 parameter_2 …… parameter_n
说明
执行db2to8a的用户,必须是可以访问db2数据库的用户。
db2to8a示例
$ ./db2to8a -D'test' -u'db2inst1' -p'db2inst1' -q"select * from t" -f'data1.txt' -m'3' -e'|' -l'\n' -s'h'
you machine is Little endian!
Connecting to test...
Connected to test.
--- unload [text file] mode ---
--- field="|" ---
0 rows exported at 2013-08-30 13:33:29
7 rows exported at 2013-08-30 13:33:29
output file data1.txt closed
export: 7 rows.
export: 5 columns.
export time: 0.00 sec
Disconnecting from test...
Disconnected from test.
以上就是今天的内容,感谢阅读!
原文链接:www.gbase.cn/community/p…
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。