目录
12.3 dblink 命令同步数据
12.3.1 dblink使用说明
Dblink 可以实现同数据库之间同步数据,也可不同数据库之间同步数据,甚至不同集群之间同步数据,只需要连接远程数据库即可
12.3.2 dblink 同步相同集群不同数据库的数据
12.3.2.1 同步数据语句
drop table if exists dim.test1;
create table dim.test1 with (appendonly = true, compresstype = zlib, compresslevel = 5
,orientation=column, checksum = false,blocksize = 2097152) as
select * from dblink(‘hostaddr=192.168.***.** port=5432 dbname=chin*** password=*****’,
‘SELECT zspid,encode_v1,encode_v2 FROM dim.dim_cif_indmap_xiaoxu’)
AS dbltab(zspid character varying(500),encode_v1 character varying(500),encode_v2 character varying(500))
DISTRIBUTED BY (zspid);
时间: 1631.477s
受影响的行: 0
受影响的行: 182683056
在以上可以看出用时1631.477s,大约需要27m,简直太慢,扣鸡腿,扣鸡腿……
12.3.2.2 查看Master 节点的详细信息
12.3.2.3 查看数据节点的详细信息
数据节点一的详细信息
数据节点二的详细信息
数据节点三的详细信息
12.3.3 验证数据的准确性
select count(*) from dim.test1;
— 182683056
select pg_size_pretty(pg_relation_size(‘dim.test1’));
— 27 GB
数据的准确性没问题
12.3.4 dblink 使用总结
dblink 因为中间需要映射一张临时表dbltab,在以上的截图中可以看出, master主节点的cpu比较高,数据节点还可以,可以用于比较小的表同步。