本記事では、データ移行タスクの作成時に移行対象を選択した後、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')。
設定完了後、構文の検証 をクリックします。
構文検証に合格したら、フィルタ・プッシュダウン エリアで、フィルタ条件のプッシュダウンを有効または無効に設定できます。
列を表示 セクションで、列名と型が正しいことを確認したら、わかりました をクリックします。
プロンプトに従って、後続のタスク設定を完了します。