通过在集群中创建Foreign Table的方式,实现在多个集群之间的关联查询和用来导入数据。
需要保证两个集群可以连通,连接配置步骤如下:
在需要接受远程服务的所有CN上(假设其中一个CN主机名为Linux-235,IP为10.11.12.16),将其对外提供服务的网卡IP或主机名(英文逗号分隔)添加到监听列表中去(一般为本机IP,如果列表中已有则可以不用设置),如
gs_guc reload -Z coordinator -N Linux-235 -I all -c "listen_addresses='localhost,10.11.12.16'"假定本地GaussDB 200集群的各节点IP地址为:10.11.12.13,10.11.12.14,10.11.12.15,如设置sha256连接认证方式,则可在远端GaussDB集群上每一个有CN的节点执行如下命令:
gs_guc reload -Z coordinator -N all -I all -h "host all all 10.11.12.13/32 sha256"
gs_guc reload -Z coordinator -N all -I all -h "host all all 10.11.12.14/32 sha256"
gs_guc reload -Z coordinator -N all -I all -h "host all all 10.11.12.15/32 sha256"
对于本地GaussDB 200集群有很多节点,且其IP连续、在一个网段时,可进行批量设置,如:
# 允许IP为10.11.12.x的任何主机进行连接访问
gs_guc reload -Z coordinator -N all -I all -h "host all all 10.11.12.0/24 sha256"
# 允许IP为10.11.x.x的任何主机进行连接访问
gs_guc reload -Z coordinator -N all -I all -h "host all all 10.11.0.0/16 sha256"对于本地GaussDB 200集群有很多节点时,且其IP不连续或不在同网段,则用户可用EC的remoteIP功能进行设置(将需要设置的IP放入文本文件中,例:/opt/host/hostfile(文件路径和文件名可变更,但需要确保有读取权限)),其中每行一个IP,然后再执行如下命令设置IP:
gs_om -t ec -m add -N /opt/host/hostfile -U username --type=remoteip
gs_om -t ec -m add -N /opt/host/hostfile -U username --type=remoteip -L # -L为本地模式,需要在全部节点完成上述步骤并执行该命令。
说明:gs_om -t stop
gs_om -t startCREATE SERVER server_remote FOREIGN DATA WRAPPER GC_FDW OPTIONS
(address '10.146.187.231:8000,10.180.157.130:8000' ,
dbname 'test',
username 'test',
password 'xxxxxxxx'
);
说明:CREATE FOREIGN TABLE region
(
R_REGIONKEY INT4,
R_NAME TEXT,
R_COMMENT TEXT
)
SERVER
server_remote
OPTIONS
(
schema_name 'test',
table_name 'region',
encoding 'gbk'
);
说明:\d+ region
Foreign table "public.region"
Column | Type | Modifiers | FDW Options | Storage | Stats target | Description
-------------+---------+-----------+-------------+----------+--------------+-------------
r_regionkey | integer | | | plain | |
r_name | text | | | extended | |
r_comment | text | | | extended | |
Server: server_remote
FDW Options: (schema_name 'test', table_name 'region', encoding 'gbk')
FDW permition: read only
Has OIDs: no
Distribute By: ROUND ROBIN
Location Nodes: ALL DATANODESCREATE TABLE local_region
(
R_REGIONKEY INT4,
R_NAME TEXT,
R_COMMENT TEXT
);
INSERT INTO local_region SELECT * FROM region;
说明:SELECT local_region * FROM region, local_region WHERE local_region.R_NAME = region.R_NAME;说明:
DROP FOREIGN TABLE region;
DROP FOREIGN TABLE来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3122496/ ,如需转载,请注明出处,否则将追究法律责任。