Tous les produits
Search
Centre de documentation

Data Transmission Service:Filtrer les données des tâches avec une condition SQL

Dernière mise à jour :Aug 25, 2026

Spécifiez une condition SQL lors de la configuration des objets de tâche pour synchroniser ou migrer uniquement les données qui répondent à cette condition. Cette fonctionnalité s'applique aux scénarios de synchronisation périodique des données, de migration et de partitionnement de tables.

Prérequis

Vous avez démarré la configuration d'une tâche et atteint l'étape Configure Objects and Advanced Settings. Pour démarrer la configuration d'une tâche, suivez les instructions de la rubrique Configurer une tâche de synchronisation des données (nouvelle console).

Limites

  • Les instructions de filtrage complexes ne sont pas prises en charge. Par exemple, COLUMN1 IN (SELECT id FROM table1).

  • Si la table ou la collection source contient deux colonnes dont les noms ne diffèrent que par la casse, la tâche de filtrage peut ne pas produire le résultat attendu.

  • Lorsque le type de base de données source est Tair/Redis, seul le filtrage des clés basé sur un préfixe est pris en charge.

  • Lorsque le type de base de données source est MongoDB, seules les tâches de synchronisation ou de migration complètes prennent en charge le filtrage conditionnel. La synchronisation ou la migration incrémentielle n'est pas prise en charge.

  • Lorsque le type de base de données source est différent de Tair/Redis et de MongoDB, si la condition de filtre nécessite des guillemets, utilisez des guillemets simples (').

  • N'ajoutez pas de point-virgule (;) à la fin d'une condition de filtre. Sinon, la tâche risque d'échouer.

  • Si une opération UPDATE est effectuée sur la base de données source et remplit certaines conditions (la valeur de l'image avant modification répond à la condition de filtre, mais pas celle de l'image après modification), DTS convertit par défaut l'instruction UPDATE en une instruction DELETE et l'exécute dans la base de données de destination.

    Important

    Dans une instance DTS dont la base de données source est SQL Server, si le champ de filtre n'est pas une colonne d'index cluster, la logique de filtrage ne s'applique pas.

  • Le mécanisme de filtrage de DTS est un pré-filtrage. Si la valeur du champ de filtre configuré est modifiée, le filtrage est effectué sur la base de la valeur antérieure à la modification.

    Exemple : supposons que vous ayez configuré la condition de filtre enabled = 1. DTS synchronisera uniquement les données qui répondent à cette condition. Si le champ de données enabled = 1 est modifié en enabled = 0, le système considère qu'il faut d'abord supprimer les données enabled = 1, puis écrire les données enabled = 0. Comme l'opération précédente répond à la condition de filtre, les données seront supprimées ; toutefois, les données suivantes ne seront pas synchronisées car elles ne remplissent pas la condition de filtre. Si vous devez synchroniser à la fois les données enabled = 0 et enabled = 1, supprimez la condition de filtre et relancez la synchronisation.

Procédure

Remarque

La méthode de configuration des conditions de filtre dépend du type de base de données source. Elle se divise en trois catégories : Tair/Redis, MongoDB et les autres types de bases de données.

Configurer les conditions de filtre pour des objets individuels

  1. À l'étape Configure Objects, déplacez les objets de tâche vers la zone Selected Objects.

    Remarque

    Lorsque le type de base de données source est MongoDB, la granularité des objets de tâche doit être au niveau de la collection. Lorsque le type de base de données source est Tair/Redis, la granularité doit être au niveau de la base de données Redis. Pour les autres types de bases de données source, la granularité doit être au niveau de la table.

  2. Cliquez avec le bouton droit sur l'objet cible.

  3. Dans la boîte de dialogue qui s'affiche, saisissez la condition de filtre.

    • Lorsque le type de base de données source est Tair/Redis : dans la boîte de dialogue Edit Schema qui s'affiche, saisissez les Prefixes of Keys to Be Synchronized (liste d'autorisation) ou les Prefixes of Keys to Be Filtered Out (liste de blocage).

    • Lorsque le type de base de données source est MongoDB : dans la boîte de dialogue Edit Table qui s'affiche, saisissez les Filter Conditions.

    • Pour les autres types de bases de données source : dans la boîte de dialogue Edit Table qui s'affiche, saisissez les Filter Conditions.

    Remarque

    Pour plus d'informations sur la syntaxe des conditions de filtre, consultez la section Exemples d'instructions.

  4. Une fois les paramètres configurés, cliquez sur OK.

  5. Suivez les instructions pour terminer la configuration ultérieure de la tâche.

Configurer les conditions de filtre par lot

  1. À l'étape Configure Objects, déplacez les objets de tâche vers la zone Selected Objects.

  2. Dans le coin supérieur droit de la zone Selected Objects, cliquez sur Batch Edit.

  3. Dans la zone Select Objects, sélectionnez les objets à modifier (pour définir les conditions de filtre par préfixe).

    Remarque

    Conservez la valeur par défaut pour Select Type.

  4. Dans la zone Select Editing Type, cliquez sur l'onglet Filter Conditions.

    Remarque

    Si le type de base de données source est Tair/Redis, cliquez sur l'onglet Prefixes of Keys to Be Synchronized/Filtered Out.

  5. Sélectionnez le Select Edit Mode.

    • Add : conserve les conditions de filtre existantes de la tâche actuelle et ajoute de nouvelles conditions de filtre.

    • Overwrite : efface les conditions de filtre existantes de la tâche actuelle et utilise les nouvelles conditions de filtre.

  6. Configurez les conditions de filtre.

    • Lorsque le type de base de données source est Tair/Redis : selon le scénario réel, sélectionnez Prefixes of Keys to Be Synchronized ou Prefixes of Keys to Be Filtered Out, puis saisissez le préfixe correspondant.

    • Lorsque le type de base de données source est MongoDB : saisissez la condition de filtre dans la zone de texte.

    • Pour les autres types de bases de données source : saisissez la condition de filtre dans la zone de texte.

    Remarque

    Pour plus d'informations sur la syntaxe des conditions de filtre, consultez la section Exemples d'instructions.

  7. Une fois les paramètres configurés, cliquez sur OK.

  8. Suivez les instructions pour terminer la configuration ultérieure de la tâche.

Exemples d'instructions

Le type de base de données source est Tair/Redis

Type de filtre

Exemple d'instruction

Description

Synchroniser un seul préfixe

Saisissez Prefixes of Keys to Be Synchronized : dtsnew

Seules les données dont les clés commencent par dtsnew parmi les objets à synchroniser sont envoyées vers la destination.

Exclure un seul préfixe

Saisissez Prefixes of Keys to Be Filtered Out : dtstest

Les données dont les clés commencent par dtstest sont exclues des objets à synchroniser ; le reste est envoyé vers la destination.

Synchroniser plusieurs préfixes

Saisissez Prefixes of Keys to Be Synchronized : dtsnew,dtsold

Seules les données dont les clés commencent par dtsnew ou dtsold parmi les objets à synchroniser sont envoyées vers la destination.

Combiner synchronisation et filtrage

Saisissez Prefixes of Keys to Be Synchronized : dts

Saisissez Prefixes of Keys to Be Filtered Out : dtstest

Seules les données dont les clés commencent par dts mais pas par dtstest parmi les objets à synchroniser sont envoyées vers la destination.

Le type de base de données source est MongoDB

Type de filtre

Exemple d'instruction

Description

Autre

{"_id":{$gt:"user100844658590795****",$lte:"user101674868045948****"}}

Filtrage par ID utilisateur, où $gt signifie « supérieur à » et $lte signifie « inférieur ou égal à ». Les instructions prises en charge pour les conditions de filtre MongoDB diffèrent des instructions WHERE SQL standard. Pour plus d'informations, consultez Mappage SQL vers MongoDB.

La base de données source est d'un autre type

Remarque
  • Filter Conditions prend en charge les opérateurs suivants : =, !=, <, > et in.

  • En cas de doute lors de la saisie des conditions de filtre, consultez d'abord la FAQ.

Exemples d'instructions

Type de filtre

Exemple d'instruction

Description

Numérique

id > 100 and id <= 200 or id in (1, 2, 3)

Seules les données dont le champ id est supérieur à 100 et inférieur ou égal à 200, ou dont le champ id vaut 1, 2 ou 3, sont synchronisées ou migrées.

Chaîne

address in('hangzhou','shanghai')

Seules les données dont le champ address est hangzhou ou shanghai sont synchronisées ou migrées.

Heure

create_time>'2020-01-01' ou create_time>'2020-01-01 00:00:00'

Seules les données créées après 2020 sont synchronisées ou migrées.

Important
  • La saisie de create_time&gt;'2020' n'est pas prise en charge.

  • Lorsque DTS filtre des données de type heure, il utilise le fuseau horaire GMT+8. Si vos données horaires contiennent des informations de fuseau horaire, convertissez l'heure dans la condition de filtre au fuseau horaire GMT+8 correspondant, puis saisissez-la dans Filter Conditions.

Types pris en charge

Base de données

Types de données pris en charge

PostgreSQL

CHAR,BIGINT,SMALLINT,INTEGER,FLOAT4,FLOAT8,VARCHAR,DATE,TIMESTAMP,NUMERIC

Oracle

VARCHAR2,NVARCHAR2,NUMBER,DATE,ROWID,CHAR,BINARY_FLOAT,BINARY_DOUBLE,CLOB,NCLOB,TIMESTAMP,TIMESTAMP WITH TIME ZONE,UROWID

MySQL

DECIMAL,INTEGER,BIGINT,FLOAT4,DOUBLE,DATE,TIME,DATETIME,YEAR,VARCHAR

SQL Server

NCHAR,DATE,TIME,DATETIME2,TINYINT,SMALLINT,INT,SMALLDATETIME,REAL,DECIMAL,DATETIME,FLOAT,BIT,NUMERIC,BIGINT,VARCHAR,CHAR,TIMESTAMP,NVARCHAR,MONEY,SMALLMONEY,UNIQUEIDENTIFIER

DB2 LUW

SMALLINT,INTEGER,BIGINT,DECIMAL,NUMERIC,REAL,FLOAT,DOUBLE,DECFLOAT,CHAR,CHARACTER,VARCHAR,GRAPHIC,NCHAR,VARGRAPHIC,NVARCHAR,DATE,TIME,TIMESTAMP,BLOB,CLOB,DBCLOB,LONG VARG,LONG VARCHAR,LONG VARGRAPHIC,BINARY,VARBINARY,XML

DB2 AS400

BIGINT,INTEGER,SMALLINT,DECIMAL,NUMERIC,FLOAT,DECFLOAT,CHAR,VARCHAR,NCHAR,BINARY,DATE,TIME,TIMESTAMP,XML

Opérations de suivi

  • Afficher les instructions de filtrage

    • La tâche actuelle n'est pas configurée : revenez à l'étape Configure Objects and Advanced Settings. Dans la zone Selected Objects, développez les objets à synchroniser ou à migrer, puis cliquez avec le bouton droit sur l'objet cible pour afficher les Filter Conditions.

    • La tâche actuelle est configurée et en cours d'exécution : utilisez la fonctionnalité Create Similar Task ou Modify Sync Objects pour accéder à l'étape Configure Objects and Advanced Settings. Dans la zone Selected Objects, développez les objets à synchroniser ou à migrer, puis cliquez avec le bouton droit sur l'objet cible pour afficher les Filter Conditions (après consultation, annulez la tâche ; il n'est pas nécessaire d'aller plus loin). Pour plus d'informations, consultez les rubriques Créer une tâche similaire et Modifier les objets de synchronisation.

  • Modifier les instructions de filtrage

    • La tâche actuelle n'est pas configurée : revenez à l'étape Configure Objects and Advanced Settings. Dans la zone Selected Objects, développez les objets à synchroniser ou à migrer, puis cliquez avec le bouton droit sur l'objet cible pour modifier les Filter Conditions.

    • La tâche actuelle est configurée et en cours d'exécution :

      • Tâche de migration : les tâches de migration ne permettent pas de modifier les conditions de filtrage. Vous devez reconfigurer la tâche.

      • Tâche de synchronisation : utilisez la fonctionnalité Modify Sync Objects pour accéder à l'étape Configure Objects and Advanced Settings. Dans la zone Selected Objects, développez les objets à synchroniser, puis cliquez avec le bouton droit sur l'objet cible pour modifier les Filter Conditions : oui. Vous pouvez saisir les Tair/Redis pour filtrer les clés répondant aux conditions.

      • Lorsque la base de données source est d'un autre type : non. Vous pouvez définir la condition de filtrage opposée pour répondre à vos besoins. Par exemple, si vous devez filtrer les données dont le champ age est 25, vous pouvez saisir age > 25 or age < 25 dans les Prefixes of Keys to Be Filtered Out.

    • Comment saisir une condition de filtrage s'il y a plusieurs clés à filtrer ?

      Utilisez des virgules (,) comme séparateurs.

    • Puis-je saisir à la fois les Filter Conditions et les Prefixes of Keys to Be Synchronized ?

      Oui. Les règles de synchronisation et de filtrage des clés sont toutes deux appliquées.

    • Les conditions de filtrage prennent-elles en charge les appels API ?

      Non.

    API associées

    API

    Description

    ConfigureDtsJob

    Configurez une tâche de migration ou de synchronisation DTS et définissez le paramètre filter dans Dblist pour configurer les conditions de filtrage.