PolarDB支持创建全球数据库网络(GDN),实现多个地域的PolarDB集群之间的数据同步。GDN网络中的每个PolarDB集群都可以创建对应的PolarSearch节点,提供跨地域的检索服务。本文介绍如何通过AutoETL将数据同步到其他地域集群的PolarSearch节点。
背景信息
在GDN网络中,数据通过主集群同步到各从集群,每个集群可以独立提供读服务。当您需要在从集群上使用PolarSearch进行搜索和分析时,可以通过AutoETL创建跨地域的数据同步链路,将数据同步到指定从集群的PolarSearch节点。
AutoETL的跨地域同步链路均由主集群创建和管理。您可以通过esl_link_options会话变量中的gdn-cluster参数指定同步链路所属的从集群。
同步到主集群的PolarSearch节点
默认不配置gdn-cluster参数时,AutoETL自动将数据同步到主集群的PolarSearch节点。
示例:创建搜索视图,将db1.t1表的数据同步到主集群的PolarSearch节点。
CREATE SEARCH VIEW view_cluster_master AS SELECT * FROM db1.t1;同步到指定从集群的PolarSearch节点
配置gdn-cluster参数后,AutoETL将从指定的从集群同步数据到对应的PolarSearch节点。
通过搜索视图同步
创建搜索视图,将数据同步到从集群instance-1的PolarSearch节点。
SET esl_link_options="'gdn-cluster'= 'instance-1'";
CREATE SEARCH VIEW view_cluster_slave AS SELECT * FROM db1.t1;通过ETL存储过程同步
创建ETL存储过程,将数据同步到从集群instance-1的PolarSearch节点。
SET esl_link_options="'gdn-cluster'= 'instance-1'";
CALL dbms_etl.sync_by_sql("search", "CREATE TEMPORARY TABLE `db1`.`t1` (
`id` BIGINT,
`c1` STRING,
PRIMARY KEY (`id`) NOT ENFORCED
) WITH (
'connector' = 'mysql',
'database-name' = 'db1',
'table-name' = 't1'
);
CREATE TEMPORARY TABLE `dest` (
`id` BIGINT,
`c1` STRING,
PRIMARY KEY (`id`) NOT ENFORCED
) WITH (
'connector' = 'opensearch',
'index' = 'dest'
);
INSERT INTO `dest` SELECT * FROM `db1`.`t1`;
");查看链路所属集群
通过查看搜索视图的创建语句,确认链路所属的集群。
SHOW CREATE SEARCH VIEW view_cluster_slave;返回结果示例如下,Options字段中显示了链路所属的集群。
+-----------------------+--------------------------------------------------------------------+---------------------------------+
| View Name | Create view | Options |
+-----------------------+--------------------------------------------------------------------+---------------------------------+
| view_cluster_slave | create search view `view_cluster_slave` as select * from `db1`.`t1`| 'gdn-cluster'='instance-1' |
+-----------------------+--------------------------------------------------------------------+---------------------------------+监控同步链路
跨地域同步链路的AutoETL监控需要在从集群的控制台中查看。
登录PolarDB控制台,在左侧导航栏单击集群列表,选择集群所在地域,并单击目标集群ID进入集群详情页。
在左侧导航栏,选择性能监控 > 搜索集群 > 同步链路,查看同步链路的运行状态。
使用限制
同一个搜索视图只能同步到一个从集群的PolarSearch节点。
gdn-cluster参数指定的集群必须已创建并加入GDN网络。esl_link_options是连接级的会话变量,设置的gdn-cluster会持续生效直到断开连接。