本記事では、データ移行タスクの新規作成時に移行オブジェクトを選択した後、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`>'2021-12-31' and `init_date`<'2022-04-01' と入力してください。
フィルター条件では英字のシングルクォート(')を使用する必要があります。例:`address` in ('BEIJING','HANGZHOU')。
設定完了後、構文チェック をクリックします。

列を確認し、問題がなければ、OK をクリックします。
プロンプトに従って、その後のタスク設定を完了します。