在配置資料移轉任務的遷移對象時,您可以設定過濾條件,過濾待遷移資料。只有滿足過濾條件的資料才會被遷移到目標資料庫。該功能可應用於資料的定期遷移、拆分資料表等多種應用情境。
注意事項
不支援複雜的過濾語句,例如
COLUMN1 IN (SELECT id FROM table1)
。若源表或集合中存在兩個列名僅大小寫不同的列,則可能會導致過濾任務無法達到預期結果。
來源資料庫類型為Tair/Redis時,僅支援通過Key的首碼過濾資料。
來源資料庫類型為MongoDB時,僅全量同步或遷移任務支援過條件過濾,增量同步處理或遷移階段不支援。
來源資料庫類型為除Tair/Redis和MongoDB外的資料庫時,如果過濾條件需要使用引號時,請使用單引號(')。
請勿在過濾條件的末尾輸入分號(;),否則可能會導致任務失敗。
操作步驟
新版控制台的操作步驟,請參見設定過濾條件。
配置資料移轉任務的設定遷移類型及列表環節中,將要遷移的對象移動到已選擇地區框中後,把滑鼠指標放置在要修改的資料表上,並單擊資料表後出現的編輯。
在彈出的對話方塊中,填入過濾條件。
關係型資料庫,例如MySQL、SQL Server。
說明過濾條件支援標準的SQL WHERE語句(僅支援
=
、!=
、<
和>
操作符),只有滿足WHERE條件的資料才會被遷移到目標資料庫中。本案例填入orderid>100
。過濾條件支援按時間條件過濾,但SQL WHERE語句中時間的格式有一定要求,例如過濾2020年之後建立的增量資料,您需要填入
create_time>'2020-01-01'
或create_time>'2020-01-01 00:00:00'
,不支援填入create_time>'2020'
。過濾條件中如需使用引號,請使用英文單引號('),例如
address in('hangzhou','shanghai')
。如源庫中同一張表記憶體在兩個列A和a,由於過濾條件忽略列名的英文大小寫,則SQL WHERE語句僅支援過濾列A,不支援過濾列a,例如支援
WHERE A=10
,不支援WHERE a=10
。
非關係型資料庫,例如MongoDB。
說明支援JSON格式的查詢條件,只有滿足JSON條件的資料才會被遷移到目標庫中。本案例填入
{"id":{$gt:"52b64e55dc4449b7ba3d1183a0ea171b"}}
,即ID大於該值的資料才會被遷移。
單擊驗證文法,確認文法正確性。
說明如果文法正確,則彈出提示對話方塊,並顯示驗證通過。
如果語法錯誤,則彈出錯誤對話方塊,您需要根據對話方塊中的提示,對過濾條件進行調整。
單擊確定。
根據提示,完成後續的資料移轉任務配置。