SQL 條件過濾數(shù)據(jù)
本文為您介紹創(chuàng)建數(shù)據(jù)遷移或數(shù)據(jù)同步任務(wù)時(shí),選擇遷移或同步對(duì)象后通過 SQL 條件過濾數(shù)據(jù)的適用場(chǎng)景、使用限制和操作步驟。
適用場(chǎng)景
創(chuàng)建數(shù)據(jù)遷移或數(shù)據(jù)同步任務(wù)時(shí),您可以設(shè)置 SQL 過濾條件來過濾數(shù)據(jù)。完成設(shè)置后,只有滿足過濾條件的數(shù)據(jù)才會(huì)被遷移或同步至目標(biāo)數(shù)據(jù)庫。該功能適用于數(shù)據(jù)的定期同步或遷移、拆分?jǐn)?shù)據(jù)表、過濾歷史數(shù)據(jù)和臟數(shù)據(jù)等多種應(yīng)用場(chǎng)景。
數(shù)據(jù)傳輸同樣支持在數(shù)據(jù)遷移或數(shù)據(jù)同步任務(wù)運(yùn)行過程中修改遷移對(duì)象或同步對(duì)象的 SQL 過濾條件,詳情請(qǐng)參見 查看和修改遷移對(duì)象及其過濾條件 或 查看和修改同步對(duì)象及其過濾條件。
使用限制
通過 SQL 條件過濾數(shù)據(jù)時(shí),僅支持過濾當(dāng)前表的字段,不支持跨表過濾。
SQL 條件過濾數(shù)據(jù)的作用范圍為全量遷移/全量同步和增量同步。
SQL 條件過濾數(shù)據(jù)使用的列請(qǐng)勿執(zhí)行 DDL 變更,否則可能導(dǎo)致數(shù)據(jù)遷移或數(shù)據(jù)同步異常。
操作步驟
將數(shù)據(jù)遷移或數(shù)據(jù)同步任務(wù)配置至 選擇遷移對(duì)象 或 選擇同步對(duì)象 步驟。
詳情請(qǐng)參見相應(yīng)類型的 數(shù)據(jù)遷移 或 數(shù)據(jù)同步 任務(wù)文檔。
選擇遷移對(duì)象后,在 選擇遷移/同步范圍 區(qū)域右側(cè)的 目標(biāo)端對(duì)象 列表中,鼠標(biāo)懸停至目標(biāo)表對(duì)象,單擊顯示的 設(shè)置。
在 設(shè)置 對(duì)話框中,輸入標(biāo)準(zhǔn)的 SQL 語句中的 WHERE 子句,來配置行過濾。
SQL WHERE 語句的語法說明如下:
列名不會(huì)進(jìn)行大小寫轉(zhuǎn)換,請(qǐng)輸入正確的列名,并對(duì)列名添加轉(zhuǎn)義符(`)。例如,
`col`
。過濾條件支持標(biāo)準(zhǔn)的 SQL WHERE 語句(僅支持
=
、!=
、<
和>
操作符),只有滿足 WHERE 條件的數(shù)據(jù)才會(huì)被同步至目標(biāo)數(shù)據(jù)庫。例如,`id`
> 200。過濾條件支持根據(jù)時(shí)間條件進(jìn)行過濾,但請(qǐng)注意 SQL WHERE 語句中對(duì)時(shí)間的格式要求(
yyyy-MM-dd HH:mm:ss
或yyyy-MM-dd
)。例如,您需要過濾 2022 年 12 月 31 日之后的增量數(shù)據(jù),請(qǐng)輸入
`date_now` > '2022-12-31'
或`date_now` > '2022-12-31 00:00:00'
。如果您需要過濾某個(gè)時(shí)間段內(nèi)的數(shù)據(jù),請(qǐng)使用 and 或 or 語句。例如,您需要過濾 2021 年 12 月 31 日至 2022 年 4 月 1 日之間的數(shù)據(jù),請(qǐng)輸入
`init_date`>'20211231' and `init_date`<'20220401'
。過濾條件中需要使用英文單引號(hào)(')。例如
`address` in ('BEIJING','HANGZHOU')
。
配置完成后,單擊 驗(yàn)證語法。
單擊 確定。
根據(jù)提示完成后續(xù)的任務(wù)配置。