Data Transmission Service (DTS) タスクのオブジェクトを選択するときに、SQL条件を指定してデータをフィルタリングできます。 指定された条件を満たすデータのみが、同期先データベースに同期または移行されます。 この機能は、定期的な間隔でのデータの同期や移行、テーブルの分割などのシナリオに適用できます。
前提条件
タスクは設定中です。 現在の手順は [オブジェクトの設定と詳細設定] です。 DTSタスクを作成および構成する方法の詳細については、「新しいDTSコンソールを使用したデータ同期タスクの構成」をご参照ください。
制限事項
現在のテーブルでのみフィールドをフィルタリングできます。 テーブル間フィルタリングはサポートされていません。 必要に応じて、テーブルごとにフィルター条件を指定できます。
手順
[オブジェクトと詳細設定] ステップで、テーブルを [選択したオブジェクト] セクションに移動し、テーブルを右クリックします。
[テーブル名の編集] ダイアログボックスで、[フィルター条件] フィールドに1つ以上のSQL条件を入力します。
説明SQL条件は、標準のSQL WHEREステートメントです。 次の演算子がサポートされています。
=
,!=
,<
,>
、およびで
. WHERE条件を満たすデータのみが、ターゲットデータベースに同期または移行されます。 この例では、order>100
が使用されています。SQL WHEREステートメントで時間条件を指定できます。 ただし、指定された時間条件が有効であることを確認する必要があります。 たとえば、2020以降で生成された増分データを取得するには、
create_time>'2020-01-01 '
またはcreate_time>'2020-01-01 00:00:00'
を入力する必要があります。create_time>'2020'
は入力できません。必要に応じて、SQL条件で単一引用符 (') を使用できます。 たとえば、
address in('hangzhou','shanghai')
を入力できます。フィルタ条件は大文字と小文字を区別しません。 ソースデータベースのテーブルに列aと列Aが含まれている場合、SQL WHEREステートメントを使用して列aのデータのみをフィルタリングできます。この場合、
WHERE a=10
ではなくWHERE A=10
と入力します。ApsaraDB for MongoDBインスタンスでサポートされているフィルターステートメントは、標準のSQL WHEREステートメントとは異なります。 たとえば、フィルター条件としてユーザーIDを使用する場合は、
{"_id" :{$ gt:"user100844658590795 ****",$lte:"user101674868045948 ****"}
と入力します。 このステートメントでは、gt
はより大きいことを示し、lte
はより小さいか等しいことを示します。
[OK] をクリックします。
DTSタスクに必要なその他のパラメーターを設定します。