本文為您介紹建立資料移轉或資料同步任務時,選擇遷移或同步對象後通過 SQL 條件過濾資料的適用情境、使用限制和操作步驟。
適用情境
建立資料移轉或資料同步任務時,您可以設定 SQL 過濾條件來過濾資料。完成設定後,只有滿足過濾條件的資料才會被遷移或同步至目標資料庫。該功能適用於資料的定期同步或遷移、拆分資料表、過濾歷史資料和髒資料等多種應用情境。
資料轉送同樣支援在資料移轉或資料同步任務運行過程中修改遷移對象或同步對象的 SQL 過濾條件,詳情請參見 查看和修改遷移對象及其過濾條件 或 查看和修改同步對象及其過濾條件。
使用限制
通過 SQL 條件過濾資料時,僅支援過濾當前表的欄位,不支援跨表過濾。
SQL 條件過濾資料的作用範圍為全量遷移/全量同步和增量同步處理。
SQL 條件過濾資料使用的列請勿執行 DDL 變更,否則可能導致資料移轉或資料同步異常。
操作步驟
將資料移轉或資料同步任務配置至 選擇遷移對象 或 選擇同步對象 步驟。
選擇遷移對象後,在 選擇遷移/同步範圍 地區右側的 目標端對象 列表中,滑鼠移至上方至目標表對象,單擊顯示的 設定。
在 設定 對話方塊中,輸入標準的 SQL 陳述式中的 WHERE 子句,來配置行過濾。
SQL WHERE 語句的文法說明如下:
列名不會進行大小寫轉換,請輸入正確的列名,並對列名添加轉義符(`)。例如,
`col`
。過濾條件支援標準的 SQL WHERE 語句(僅支援
=
、!=
、<
和>
操作符),只有滿足 WHERE 條件的資料才會被同步至目標資料庫。例如,`id`
> 200。過濾條件支援根據時間條件進行過濾,但請注意 SQL WHERE 語句中對時間的格式要求(
yyyy-MM-dd HH:mm:ss
或yyyy-MM-dd
)。例如,您需要過濾 2022 年 12 月 31 日之後的增量資料,請輸入
`date_now` > '2022-12-31'
或`date_now` > '2022-12-31 00:00:00'
。如果您需要過濾某個時間段內的資料,請使用 and 或 or 語句。例如,您需要過濾 2021 年 12 月 31 日至 2022 年 4 月 1 日之間的資料,請輸入
`init_date`>'20211231' and `init_date`<'20220401'
。過濾條件中需要使用英文單引號(')。例如
`address` in ('BEIJING','HANGZHOU')
。
配置完成後,單擊 驗證文法。
單擊 確定。
根據提示完成後續的任務配置。