本記事では、データ移行タスクの新規作成時に移行対象オブジェクトを選択した後、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 をクリックします。
画面の案内に従って、その後のタスク設定を完了します。