すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:SQL条件を使用したデータのフィルタリング

最終更新日:Nov 04, 2024

Data Transmission Service (DTS) タスクのオブジェクトを選択するときに、SQL条件を指定してデータをフィルタリングできます。 指定された条件を満たすデータのみが、同期先データベースに同期または移行されます。 この機能は、定期的な間隔でのデータの同期や移行、テーブルの分割などのシナリオに適用できます。

前提条件

タスクは設定中です。 現在の手順は [オブジェクトの設定と詳細設定] です。 DTSタスクを作成および構成する方法の詳細については、「新しいDTSコンソールを使用したデータ同期タスクの構成」をご参照ください。

制限事項

現在のテーブルでのみフィールドをフィルタリングできます。 テーブル間フィルタリングはサポートされていません。 必要に応じて、テーブルごとにフィルター条件を指定できます。

手順

  1. [オブジェクトと詳細設定] ステップで、テーブルを [選択したオブジェクト] セクションに移動し、テーブルを右クリックします。

  2. [テーブル名の編集] ダイアログボックスで、[フィルター条件] フィールドに1つ以上のSQL条件を入力します。 Enter a SQL condition

    説明
    • 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はより小さいか等しいことを示します。

  3. [OK] をクリックします。

  4. DTSタスクに必要なその他のパラメーターを設定します。