日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

設置過濾條件

在配置同步或遷移任務對象時,您可以通過設置過濾條件,將源數據庫中滿足您需求的數據同步或遷移到目標數據庫。該功能常應用于分庫分表、同步或遷移部分數據等場景。

前提條件

當前任務處于配置任務對象及高級配置階段。進入此階段的方法,請參見同步方案概覽遷移方案概覽中的相關配置文檔。

注意事項

  • 不支持復雜的過濾語句,例如COLUMN1 IN (SELECT id FROM table1)。

  • 若源表或集合中存在兩個列名僅大小寫不同的列,則可能會導致過濾任務無法達到預期結果。

  • 源數據庫類型為Tair/Redis時,僅支持通過Key的前綴過濾數據。

  • 源數據庫類型為MongoDB時,僅全量同步或遷移任務支持過條件過濾,增量同步或遷移階段不支持。

  • 源數據庫類型為除Tair/RedisMongoDB外的數據庫時,如果過濾條件需要使用引號時,請使用單引號(')。

  • 請勿在過濾條件的末尾輸入分號(;),否則可能會導致任務失敗。

  • 若在源庫執行UPDATE操作,且該操作滿足特定的條件(前鏡像值滿足過濾條件,但后鏡像值不滿足過濾條件),DTS默認會將UPDATE語句轉換為DELETE語句,然后在目標庫中執行。

    重要

    在源庫為SQL Server的DTS實例中,如果過濾的字段不是聚集索引列,則該過濾邏輯將無法生效。

操作步驟

  1. 配置任務對象及高級配置階段,將任務對象移動到已選擇對象區域框中后,右鍵單擊目標對象。

    說明

    源數據庫類型為MongoDB時,任務對象的選擇粒度需為集合;源數據庫類型為Tair/Redis時,任務對象的選擇粒度需為Redis DB;源數據庫為其他類型的數據庫時,任務對象的選擇粒度需為表。

  2. 在彈出的對話框中,填入過濾條件

    過濾條件的語法與源數據庫的類型有關,分為Tair/Redis、MongoDB和其他類型的數據庫三種。

    • 源數據庫類型為Tair/Redis時:

      在彈出的編輯Schema對話框中,填入需要同步的前綴(白名單)或需要過濾的前綴(黑名單)。

      image.png

      示例語句

      過濾類型

      示例語句

      說明

      同步單個前綴

      dtsnew

      只將待同步對象中Key以dtsnew開始的數據同步至目標端。

      過濾單個前綴

      dtstest

      將待同步對象中Key以dtstest開始的數據進行過濾,將其余數據同步至目標端。

      同步多個前綴

      dtsnew,dtsold

      只將待同步對象中Key以dtsnewdtsold開始的數據同步至目標端。

      同步和過濾混用

      需要同步的前綴填入:dts

      需要過濾的前綴填入:dtstest

      只將待同步對象中Key以dts開始,且不以dtstest開始的數據同步至目標端。

    • 源數據庫類型為MongoDB時:

      在彈出的編輯表對話框中,填入過濾條件

      image.png

      示例語句

      過濾類型

      示例語句

      說明

      其他

      {"_id":{$gt:"user100844658590795****",$lte:"user101674868045948****"}}

      以用戶ID進行過濾,其中$gt表示大于,$lte表示小于等于。MongoDB過濾條件支持的語句與標準的SQL WHERE語句不同,更多信息,請參見運算符SQL語句與MongoDB語句的映射。

    • 源數據庫為其他類型的數據庫時:

      在彈出的編輯表對話框中,填入過濾條件

      說明
      • 過濾條件支持的操作符有:英文字符=!=<、>、in。

      • 若您填寫過濾條件時有疑問,可以先查看常見問題。

      image.png

      示例語句

      過濾類型

      示例語句

      說明

      數值

      id > 100 and id <= 200 or id in (1, 2, 3)

      過濾id字段大于100且小于等于200,或id字段為1、2或3的數據。

      字符串

      address in('hangzhou','shanghai')

      過濾address字段是hangzhoushanghai的數據。

      時間

      create_time>'2020-01-01'create_time>'2020-01-01 00:00:00'

      過濾2020年之后創建的數據。

      重要
      • 不支持填入create_time>'2020'。

      • DTS對時間類型的數據進行過濾時,使用的是GMT+8時區。若您的時間數據包含時區信息,需要先將過濾條件的時間轉換為對應GMT+8時區的時間,然后再填入過濾條件。

  3. 單擊確定。

  4. 根據提示完成后續的任務配置。

后續操作

  • 查看過濾語句

    • 當前任務未完成配置:返回到配置任務對象及高級配置階段,在已選擇對象區域框中展開任務同步或遷移的對象,然后右鍵單擊目標對象,查看過濾條件。

    • 當前任務已完成配置并運行:可以使用創建類似任務或修改同步對象功能,進入配置任務對象及高級配置階段,在已選擇對象區域框中展開任務同步或遷移的對象,然后右鍵單擊目標對象,查看過濾條件(查看完成后取消任務即可,無需繼續往后執行)。更多信息,請參見創建類似任務修改同步對象。

  • 修改過濾語句

    • 當前任務未完成配置:返回到配置任務對象及高級配置階段,在已選擇對象區域框中展開任務同步或遷移的對象,然后右鍵單擊目標對象,修改過濾條件

    • 當前任務已完成配置并運行:

      • 遷移任務:遷移任務不支持修改過濾條件,您需要重新配置任務。

      • 同步任務:使用修改同步對象功能進入配置任務對象及高級配置階段,在已選擇對象區域框中展開任務同步的對象,然后右鍵單擊目標對象,修改過濾條件并根據提示完成后續的任務配置。更多信息,請參見修改同步對象。

常見報錯

若您填寫的過濾條件不正確,任務可能會出現如下報錯,請結合具體報錯信息和后續操作進行修復。

說明

報錯信息中的正則表達式((.*)?)表示變量。

錯誤碼

報錯信息

說明

DTS-RETRY-ERR-0070

In process of processing data (.*)? failed (.*)? Syntax error in SQL statement

配置同步對象的過濾字段格式不正確。

DTS-RETRY-ERR-0145

Unknown column (.*)? in

當前任務配置的過濾條件中的字段,在源庫中不存在。

DTS-RETRY-ERR-0147

You have an error in your SQL syntax

當前任務配置的過濾條件中的字段,在源庫中不存在。

DTS-RETRY-ERR-0188

null value in column (.*)? violates not-null constraint

目標端有非空約束的列被過濾,或在源端沒有相應列的值。

DTS-RETRY-ERR-0276

if (.*)? is specified it must not be empty

映射到Elasticsearch中_id列的值為空,需要過濾掉值為空的數據。

常見問題

  • 為什么填寫了過濾條件沒有生效?

    過濾條件的語句填寫有誤,或者當前任務是源數據庫為MongoDB的增量任務(不支持設置過濾條件)。

  • 修改過濾條件后,生效范圍是哪些?

    • 當前任務未完成配置:源數據庫為MongoDB時,僅在全量任務階段生效;源數據庫為其他類型的數據庫時,全量任務和增量任務階段均生效。

    • 當前任務已完成配置并運行:源數據庫為MongoDB時,不會生效(不支持);源數據庫為其他類型的數據庫時,僅對增量數據生效。

  • 是否支持批量設置過濾條件?

    不支持,您可以在多個目標對象中分別填寫過濾條件。

  • 是否支持將滿足條件的數據過濾,將其余數據同步或遷移到目標庫?

    • 源數據庫類型為Tair/Redis時:支持,您可以填寫需要過濾的前綴,將滿足條件的Key過濾。

    • 源數據庫為其他類型的數據庫時:不支持,您可以嘗試設置相反的過濾條件以滿足您的過濾需求。例如:您需過濾掉age字段為25數據,您可以在過濾條件中填入age > 25 or age < 25。

  • 若需要過濾的Key有多個,如何填寫過濾條件?

    您可以使用逗號(,)進行分隔。

  • 是否可以同時填寫需要同步的前綴需要過濾的前綴?

    可以,填寫的同步和過濾Key的規則均會生效。

  • 過濾條件是否支持調用接口?

    不支持。

相關API

API接口

說明

ConfigureDtsJob

配置DTS遷移或同步任務,在Dblist中配置filter參數設置過濾條件。