データ移行タスクで移行するオブジェクトを設定する際、データをフィルタリングするための条件を指定できます。指定された条件を満たすデータのみをターゲットデータベースに移行します。この機能は、定期的なデータ移行やテーブルパーティショニングなどのシナリオに適用できます。
制限事項
フィルタリングは現在のテーブルの列にのみ適用されます。テーブル間のフィルタリングはサポートされていません。複数のテーブルをフィルタリングするには、テーブルごとに個別の条件を指定してください。
手順
新しいコンソールでの手順については、「フィルター条件の設定」をご参照ください。
-
データ移行タスクの設定における[移行タイプとオブジェクト]ステップで、移行するオブジェクトを[選択済み]ボックスに移動した後、変更するテーブルにマウスカーソルを合わせ、表示される編集ボタンをクリックします。[移行タイプとオブジェクト]設定ページの[選択されたオブジェクト]エリアで、ターゲットテーブル (注文テーブルなど) にマウスカーソルを合わせ、右側に表示される[編集]ボタンをクリックします。
-
表示されるダイアログボックスで、フィルタリング条件 フィールドにフィルター条件を入力します。
-
MySQL や SQL Server などのリレーショナルデータベースの場合:
説明-
フィルター条件は、標準の SQL WHERE 句である必要があります。サポートされている演算子は、
=、!=、<、>のみです。タスクは、この条件を満たすデータのみをターゲットデータベースに移行します。この例では、orderid>100と入力します。 -
時間によるフィルタリングも可能ですが、SQL WHERE 句の時間形式は正確である必要があります。たとえば、2020 年以降に作成された増分データをフィルタリングするには、
create_time>'2020-01-01'またはcreate_time>'2020-01-01 00:00:00'と入力します。create_time>'2020'は使用できません。 -
フィルター条件で引用符を使用する必要がある場合は、一重引用符 (') を使用してください。例:
address in('hangzhou','shanghai')。 -
フィルター条件の列名の大文字と小文字の区別は、ソースデータベースの仕様に依存します。ソースデータベースのテーブルに大文字と小文字が異なる列名 (たとえば、A と a) が含まれている場合、問題が発生する可能性があります。このような場合、SQL WHERE 句は、そのうちの 1 つにしか適用されないことがあります。たとえば、
WHERE A=10はサポートされていても、WHERE a=10はサポートされていない場合があります。
-
-
MongoDB などの非リレーショナルデータベースの場合: [コレクションの編集] ダイアログボックスで、[コレクション名] を
customerに設定し、[フィルター条件] テキストエリアに JSON クエリ条件を入力します。[構文の検証] ボタンをクリックして、条件の構文を検証できます。説明JSON 形式のクエリ条件を使用できます。タスクは、指定された条件を満たすデータのみをターゲットデータベースに移行します。たとえば、
{"id":{$gt:"52b64e55dc4449b7ba3d1183a0ea171b"}}と入力すると、指定された値より大きい ID を持つデータのみが移行されます。
-
-
[構文の検証] をクリックして、条件を検証します。
説明-
構文が有効な場合、ヒント ダイアログボックスに[検証に合格しました] というメッセージが表示されます。
-
構文が不正な場合は、エラー ダイアログボックスが表示されます。ダイアログボックスの情報に基づいて、フィルター条件を修正する必要があります。
-
-
確かですか をクリックします。
-
画面の指示に従い、データ移行タスクの設定を完了してください。