數據復制服務支持對同步的對象進行加工,即可以為選擇的對象添加規則。各鏈路支持的加工規則不一樣,具體操作方法可參考對應的內容。
添加附加列
步驟 1 在“數據加工”頁面選擇“附加列”,對于需要加工的表對象,單擊“操作”列的添加。
步驟 2 在彈出的“添加”對話框中,填選列名、操作類型、字段類型等信息,選擇的操作類型不同,需要填寫的信息也不同。完成后單擊“確定”。
說明
多對一映射場景下,需要使用數據加工的附加列操作來避免數據沖突。
支持的操作類型有以下幾種
“默認值”:使用輸入的默認值填充新加的列。
“以create_time為列”和“以update_time為列”操作會分別使用數據產生時間和修改時間填充新加的列。
“表達式”:需手動輸入的表達式,使用表達式填充新加的列。
“以serverName@database@table為列”:使用@符號分別拼接serverName、源庫的庫名、表名填充新加的列,其中serverName為手動輸入。
“填充值”:選擇填充值為新加的列,比如同步時間戳。
支持“批量設置”,將第一個可編輯表的附加列信息應用到此任務中所有可編輯的表。
MySQL->GaussDB(for MySQL)主備版同步,單表的列數超過500時, 對該表添加附加列可能會超過列數上限,會導致任務失敗
步驟 3 檢查無誤后,單擊“下一步”,進入下一步操作。
數據過濾
數據過濾規則添加后,在源庫執行更新操作的處理原則,以數據一致為首要目標。即:
- 更新前不符合過濾條件,更新后符合。繼續同步,在目標庫執行相同的更新操作,如果匹配不到數據,則會忽略,會導致數據不一致。
- 更新前符合過濾條件,更新后不符合。繼續同步,在目標庫執行相同的更新操作。
步驟 1 在“數據加工”頁面選擇“數據過濾”。
步驟 2 在“對象選擇”區域選擇需要加工的表對象。
步驟 3 在過濾條件區域,填寫過濾條件(只需填寫SQL語句的WHERE之后部分,例如id=1)后,單擊“校驗”。
說明
?每張表僅支持添加一個校驗規則。
數據過濾每次最多支持500張表。
?過濾表達式不支持使用某種數據庫引擎特有的package、函數、變量、常量等寫法,須使用通用SQL標準。請直接輸入SQL語句中WHERE之后的部分(不包含WHERE和分號,例如:sid? 3 and sname like "G %"),最多支持輸入512個字符。
不支持對LOB字段設置過濾條件,如CLOB、BLOB、BYTEA等大字段類型。
?建議不要對非精確類型字段設置過濾條件,如FLOAT、DECIMAL、DOUBLE等。
?建議不要對帶有特殊字符的字段設置過濾條件。
?不建議使用非冪等表達式或函數作為數據加工條件,如SYSTIMESTAMP,SYSDATE等,因其每次調用返回的結果可能會有差異,導致達不到預期。
步驟 4 校驗通過后,單擊“生成加工規則”,即可在加工規則表格中看到該規則。
步驟 5 檢查無誤后,單擊“下一步”,進入下一步操作。
數據過濾高級設置
如果需要使用關聯表查詢,可以使用數據加工的高級設置功能。
步驟 1 在“數據加工”頁面選擇“數據過濾”。
步驟 2 在“對象選擇”區域選擇需要加工的表對象。
步驟 3 在過濾條件區域,填寫聯表查詢過濾條件,例如:id1 in (select id from db1.tab1 where id >=3 and id <10),單擊“校驗”。
說明
每張表僅支持添加一個校驗規則。
數據過濾每次最多支持500張表。
過濾表達式不支持使用某種數據庫引擎特有的package、函數、變量、常量等寫法,須使用通用SQL標準。請直接輸入SQL語句中WHERE之后的部分(不包含WHERE和分號,例如:sid? 3 and sname like "G %"),最多支持輸入512個字符。
不支持對LOB字段設置過濾條件,如CLOB、BLOB、BYTEA等大字段類型。
建議不要對非精確類型字段設置過濾條件,如FLOAT、DECIMAL、DOUBLE等。
?建議不要對帶有特殊字符的字段設置過濾條件。
?不建議使用非冪等表達式或函數作為數據加工條件,如SYSTIMESTAMP,SYSDATE等,因其每次調用返回的結果可能會有差異,導致達不到預期。
步驟 4 校驗通過后,單擊“生成加工規則”,即可在加工規則表格中看到該規則。
步驟 5 在“高級設置”中設置關聯表的“配置條件”和“配置規則”,輔助您進行數據過濾。
- 在“配置條件”中,根據在[步驟3]( " ")輸入的過濾條件,填寫關聯表的相關信息。
“庫名”、“表名”、“列名”、“主鍵”、“索引”和“過濾條件”均為必填項。如果該表沒有索引,則填寫主鍵。
“過濾條件”即在[步驟3]( " ")輸入的該關聯表的過濾條件。
- 填寫完成,單擊“校驗規則”。
- 校驗成功后,單擊“生成配置規則”。即可在配置規則表格中看到該規則。
如果需要進行多張關聯表的數據過濾,重復執行[步驟5]( " ")即可。
說明配置規則支持刪除操作。
步驟 6 檢查無誤后,單擊“下一步”,進入下一步操作。
列加工
步驟 1 在“數據加工”頁面選擇“列加工”。
步驟 2 在“對象選擇”區域選擇需要加工的對象。
步驟 3 單擊右側已選對象的“編輯”。
步驟 4 在“編輯列”中,勾選需要映射的列,填寫映射后的“新列名”。
說明
?列加工提供列級的查詢、映射和過濾能力。
編輯列名后,目標數據庫的列名為修改后的名稱。
列映射名不能和原列名或已存在的映射名相同。
任務再編輯時,已經同步的表不支持修改列信息。
只有勾選的列才會被同步。
MySQL->MySQL不支持分區表的分區字段進行列映射。
步驟 5 填寫完成后單擊“確定”。
步驟 6 檢查無誤后,單擊“下一步”,進入下一步操作。
查看數據過濾
步驟 1 在“管理”頁面任務列表中,選擇需要查看數據加工的任務,單擊任務名稱。
步驟 2 選擇“數據加工”頁簽,查看數據過濾記錄。單擊右上角的
,可刷新數據。
查看列加工
步驟 1 在“管理”頁面任務列表中,選擇需要查看的任務,單擊任務名稱。
步驟 2 選擇“同步映射”頁簽,單擊右上角選擇列映射,查看列映射記錄。單擊右上角的
,可刷新數據。