Tous les produits
Search
Centre de documentation

Data Transmission Service:Activer la fusion de plusieurs tables

Dernière mise à jour :Aug 20, 2026

Lorsque vous utilisez Data Transmission Service (DTS) pour synchroniser ou migrer des données, DTS propose une fonctionnalité de fusion de plusieurs tables si la base de données cible est AnalyticDB for MySQL 3,0 . Cette fonctionnalité vous permet de regrouper plusieurs tables de structure identique dans la base de données source et de les fusionner en une seule table dans la base de données cible, ce qui rend la migration et l'intégration des données plus efficaces et pratiques.

Prérequis

Vous avez créé une tâche de migration ou de synchronisation ciblant AnalyticDB for MySQL 3,0 , et vous êtes parvenu à l'étape Configure Objects and Advanced Settings. Vous trouverez les documents de configuration pertinents dans la Vue d'ensemble de la solution de synchronisation ou la Vue d'ensemble de la solution de migration.

Notes d'utilisation

  • Vous ne pouvez pas activer la fusion de plusieurs tables pour les tâches dont la vérification des données est activée.

  • Les tâches incrémentielles avec fusion de plusieurs tables activée ne prennent pas en charge les opérations DDL. Toute opération DDL effectuée sur la base de données source peut entraîner une perte de données ou un échec de la tâche.

Procédure

Cette section explique comment activer la fusion de plusieurs tables pour une instance de synchronisation de données DTS.

  1. Accédez à l'étape Configure Objects and Advanced Settings et configurez tous les paramètres précédant la section Merge Tables.

  2. Dans la section Merge Tables, sélectionnez Yes.

  3. Facultatif : Pour l'option Set the value of __dts_data_source, sélectionnez No.

    Remarque

    La personnalisation du nom de la colonne de tag et de ses valeurs n'est prise en charge que pour les instances par abonnement.

  4. Dans le volet Source Objects, sélectionnez les tables à synchroniser, puis cliquez sur l'icône 向右小箭头 pour les déplacer vers le volet Selected Objects.

  5. Dans le volet Selected Objects, faites un clic droit sur une table à synchroniser. Dans la boîte de dialogue Edit Table, modifiez le Table Name.

    Remarque

    Le Table Name correspond au nom de la table dans la base de données de destination.

    La procédure est similaire à la modification du Table Name. Dans la boîte de dialogue Edit Table, vous pouvez remplacer le nom de la table par un nom cible (par exemple person_new), définir une condition de filtre (qui prend en charge les clauses WHERE SQL standard et s'applique à la synchronisation complète et incrémentielle), sélectionner les opérations DML à synchroniser (insertion, mise à jour ou suppression) et choisir les colonnes à synchroniser (telles que p_name et p_id). Une fois terminé, cliquez sur OK.

  6. Répétez l'étape précédente pour modifier le Table Name de toutes les tables sélectionnées.

    Important

    Vous devez spécifier le même Table Name pour toutes les tables à fusionner.

  7. Suivez les instructions à l'écran et consultez les documents de référence pour terminer la configuration de la tâche.

    Si vous avez sélectionné Yes pour l'option Set the value of __dts_data_source à l'étape 3, vous devez également définir la valeur de Value of __dts_data_source lors de l'étape Configure Database and Table Fields.

    Remarque

    La valeur de la colonne Value of __dts_data_source doit être unique pour chaque table.

    Sur la page Configure Database and Table Fields, localisez la colonne Value of __dts_data_source et saisissez une valeur unique pour chaque table source. Les autres colonnes de cette page incluent Schema Name, Table Name, Type (par exemple, table partitionnée), Primary Key Column et Distribution Key.

FAQ

Comment interroger la colonne __dts_data_source ?

Après avoir activé la fusion de plusieurs tables, DTS ajoute automatiquement une colonne __dts_data_source (de type texte) à la table de destination pour enregistrer la source des données. Utilisez la syntaxe suivante pour interroger la colonne :

SELECT __dts_data_source FROM <destination_table_name>;

La valeur renvoyée utilise le format DTS instance ID:database name:schema name:table name, par exemple dts:dtstestdata:testschema:customer1.

L'interrogation échoue avec le message d'erreur « Column cannot be resolved »

Si vous rencontrez cette erreur, vérifiez les points suivants :

  1. Vérifiez si la fusion de plusieurs tables est activée pour la tâche DTS. Si la fusion de plusieurs tables n'est pas activée, la table de destination ne contient pas la colonne __dts_data_source.

  2. Assurez-vous que vous interrogez la base de données de destination et non la base de données source.

  3. Vérifiez que le nom de la colonne utilise un préfixe à double trait de soulignement (__dts_data_source), et non un seul trait de soulignement.