暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB A copy/GDS数据导入导出

原创 章芋文 2019-10-01
3167

一:导入导出简介   

1、数据导入导出方式   

数据导入导出含有2个方式;copy/GDS(GDS:GAUSSDB DATA SERVER)

2、应用场景:   

   gds是主要应用于本地以及跨服务的大数据量导入导出,适用于windows环境的数据导入导出。 copy则用于小数据本地导入导出,不能实现跨服务的导入导出。

3、gds的安装包   

目前已封装到gaussdb数据库。     注:HDFS的集群环境,启动前需要source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile环境变量。

4、目标   

    均实现数据的快速方便导入(代替批量insert功能),导出数据库中表数据存为数据文件。

二:COPY导入导出2.1 数据导入copy..from。   


Eg:copy table_name from '/home/xuman/test' with (delimiter '|',FORMAT 'TEXT');实现了数据文件test的将导入至表中。

2.2 数据copy。。to导出   


Eg:copy table_name to '/home/xuman/test1' with (delimiter '|',FORMAT 'TEXT');copy (SELECT * FROM TABLE_NAME) to '/home/xuman/test2' with (delimiter '|',FORMAT 'TEXT');

实现了将表中数据或查询结果导出至指定目录下的数据文件test2。

三:gds数据导入导出  

3.1导入导出流程图 

导入:gds(启动,导入数据文件目录)----> read外表foreign table (gds)---->insert into table select * from foreign_table--->数据文件存入数据库;

导出:gds(启动,导出数据文件目录)---->write外表foreign table(gds)---->insert into foreign_table select * from table--->表中数据导出为文件

 3.2 gds工具启动基本参数        gds        –h查看       -d dir                       Set data directory.(指定到数据文件所在的目录)

         -p port                    Set GDS listening port.

         ip:port                     Set GDS listening ip address and port.

         1024~65535,正整数。port监听端口的默认值:8098

         -l log_file                 Set log file.

         -t worker_num        Set number of worker thread in multi-thread mode, the upper limit is 32. If without setting, the default value is 1.

         -D                            Run the GDS as a daemon process.

         -r                             Read the working directory recursively. 

 注:gds数据文件存放的服务器启动

示例:

gds -p 11000 -d /data/xm_mpp/mpp_test/Testcase/data -l /data/xm_mpp/mpp_test/Testcase/output/gds_test.log –t 3 –D

3.3 数据文件导入过程   


--创建外表

create foreign table f_gds_test

(

C_INT INT,

c_char char(10)

)

server gsmpp_server

options (location 'gsfs://10.185.178.243:11000/gds_test', mode 'normal',format 'text', delimiter ',',encoding 'UTF8',null '')

log into err_ f_gds_test

per node reject limit '1000';

--普通表

create table gds_test

(

C_INT INT,

c_char char(10)

);

--数据导入过程

insert into gds_test select * from f_gds_test;

--查询错误表及导入数据

select * from err_ f_gds_test;

select * from gds_test;

--外表是不存储数据的


3.4 表数据导出至数据文件

--创建write外表

create foreign table w_gds_test

(

C_INT INT,

c_char char(10)

)

server gsmpp_server

options (location 'gsfs://10.185.178.243:11000/',format 'text',delimiter ',',encoding 'UTF8',null '') write only;

--数据导出

INSERT INTO w_gds_test SELECT * FROM gds_test;

cat /data/xm_mpp/mpp_test/Testcase/data/w_gds_test.dat.0

3,4        

5,6        

1,2

--write外表不支持查询

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论