Flink CDC支持數據的實時同步和表結構變更的自動同步。您可以使用數據同步模板幫您快速生成數據同步的Flink SQL作業代碼。本文為您介紹如何使用多庫多表同步或者分庫分表合并模板實現數據同步。
背景信息
實時計算Flink版支持多庫多表同步和分庫分表合并兩種數據同步方式,二者的區別請參見下表。
同步方式 | 詳情 |
多庫多表同步 | 如果您需要將一個或多個數據庫中的一張或多張業務數據表實時復制到另一個數據庫時,則可以使用多庫多表同步模板。Flink CDC可以自動同步整庫的全量和增量數據,同時還能實時將每張源表的表結構變更(加列等)實時同步到對應的目標表中。多庫多表同步模板會將您的參數翻譯成CDAS語句,有關CDAS語句的更多能力,詳情請參見CREATE DATABASE AS(CDAS)語句。 |
分庫分表合并 | 當同一份業務數據分散在不同的數據庫或者業務表時,我們往往需要用到分庫分表合并的能力,將表結構相似的分庫分表的數據同步到一張目標表中。Flink CDC可以自動同步源中所有分庫分表的全量和增量數據(包括新增的符合正則表達式的新表),同時還能實時將每張源表的表結構變更(加列等)實時同步到對應的目標表中。分庫分表合并同步模板會將您的參數翻譯成CTAS語句,有關CTAS語句的更多能力,詳情請參見CREATE TABLE AS(CTAS)語句。 |
使用限制
目前僅支持從MySQL到Hologres的數據同步。
注意事項
在同步MySQL到Hologres的數據時,會同步表結構變更,詳情請參見CREATE TABLE AS(CTAS)語句。同步時需要注意以下幾點:
無需您手動在Hologres上創建表。
Flink會自動在Hologres上創建表,但如果Hologres已經存在對應的表,Flink會根據您創建計劃中選擇的目標庫和表信息來映射。
Hologres不支持更改列的類型。
如果當前字段的類型和Hologres下游表中對應的字段類型不同,則會寫入失敗,您需重修改列類型并重新同步。
關于Hologres結果表詳情請參見實時數倉Hologres結果表。
操作步驟
登錄實時計算控制臺。
單擊對應工作空間操作列下的控制臺。
在 頁面,單擊新建。
在新建作業草稿頁面,單擊數據同步模板。
雙擊MySQL到Hologres數據同步模板名稱,或者單擊選中模板后,在右下角單擊下一步。
配置數據同步信息。
選擇源和目標后,單擊下一步。
類別
配置項
詳情
源
MySQL Catalog
您可以直接選擇已創建好的MySQL Catalog。如果您沒有提前創建好源MySQL Catalog,則請單擊創建Catalog進行創建。創建詳情請參見管理MySQL Catalog。
MySQL server-id
每個MySQL數據庫客戶端的唯一ID。取值范圍為5400~6400。該參數也支持ID范圍的格式,例如5400-5408。推薦在開啟增量讀取模式多并發讀取數據時,設置該參數為ID范圍,因為這樣可以使得每個并發使用不同的ID。
重要不要和其他訪問數據庫的作業或者服務使用同一個Server ID。
目標
Hologres Catalog
您可以直接選擇已創建好的目標Hologres Catalog。如果您沒有提前創建好目標Hologres Catalog,則請單擊創建Catalog進行創建。詳情請參見管理Hologres Catalog。
創建計劃。
多庫多表同步
在多庫多表同步頁簽下,選中目標的源庫和表名稱。
單擊保存計劃,查看計劃列表。
說明在進行多庫多表數據同步時,該模板會在目標Catalog中創建與源Catalog同名的數據庫和表,且默認同步到Public Schema下。如果您需要修改數據庫名稱、表名稱以及指定Schema,建議通過編寫SQL的方式進行修改。修改名稱詳情請參見CREATE TABLE AS(CTAS)語句和CREATE DATABASE AS(CDAS)語句,指定Schema詳情請參見作為CDAS的目標端Catalog,指定后使用Catalog時的表名格式也會發生變化,詳情請參見管理Hologres Catalog。
單擊下一步。
查看系統根據您選擇的目標庫和表生成對應的SQL代碼。
您可以根據需要修改文件名稱、存儲位置或引擎版本等信息。
分庫分表合并
在分庫分表合并頁簽下,選中目標的源庫和表名稱,或者直接輸入您創建的目標庫和表名稱。
說明推薦您使用正則表達式填寫源庫和源表信息。
單擊保存計劃,查看計劃列表。
在一個作業中,可以同時創建多個多庫多表同步和分庫分表合并的計劃,示例如下圖所示。
單擊下一步。
查看系統根據您選擇的目標庫和表生成對應的SQL代碼。
您可以根據需要修改文件名稱、存儲位置或引擎版本等信息。
單擊創建。