介绍使用greenplum-loader 中的 gpfdist
目的:为了高效数据迁移
情景:1.unload
gp数据库master 在ip为192.168.12.127服务器,greenplum-loader 在ip为192.168.12.94服务器,将数据文件写到ip为192.168.12.94服务器。再将数据
2.再将ip为192.168.12.94服务器上的数据文件 load 到 gp数据库master 在ip为192.168.12.128服务器
一.unload 数据到94
1.启动 gpfdist
在linux 中启动 命令为
[root@server-94 bin]# gpfdist -p 8899
gpfdist: error while loading shared libraries: libssl.so.0.9.8: cannot open shared object file: No such file or directory
[root@server-94 bin]# source ~/.bashrc
[root@server-94 bin]# gpfdist -p 8899
启动时报错是因为环境变量没有生效,一定要使其生效否则无法启动啊(坑了我一小天),血的教训
有的博客上说要在gpfdist -p 8899+& 格式为gpfdist -p 8899 &(然并卵啊)
2.在一个会话中创建外部表,此处有一个坑外部文件默认放在/usr/local/bin下(greenplum-loader默认安装路径)
先创建外部表
CREATE WRITABLE EXTERNAL TABLE unload_zxs_test2 ( LIKE zxs_test2 )
LOCATION ('gpfdist://192.168.12.94:8899/zxs_test2.txt') FORMAT 'TEXT' (DELIMITER '|');
再写数据到外部表
INSERT INTO unload_zxs_test2 SELECT * FROM zxs_test2
以上过程执行结束后将在94服务器生成数据文件
二.load 数据到128
1.启动 指定数据文件路径
gpfdist -p 8899 -d /shsnc/dmp/software
2.加载数据
CREATE EXTERNAL TABLE load_zxs_test2 (
e_id INTEGER,
e_name CHARACTER VARYING(30),
e_date DATE,
e_address CHARACTER VARYING(100),
e_tel CHARACTER VARYING(11),
e_id_1 INTEGER,
e_name_1 CHARACTER VARYING(30),
e_date_1 DATE,
e_address_1 CHARACTER VARYING(100),
e_tel_1 CHARACTER VARYING(11)
)
LOCATION ('gpfdist://192.168.12.94:8899/zxs_test2.txt') FORMAT 'TEXT' ( DELIMITER '|' NULL ' ')
LOG ERRORS SEGMENT REJECT LIMIT 5;
INSERT INTO zxs_test0 SELECT * FROM load_zxs_test2