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會持續生效直到中斷連線。