DataHub est une plateforme de traitement de données en continu qui vous permet de publier, de vous abonner et de distribuer des flux de données, facilitant ainsi la création d'applications et d'analyses. Utilisez DTS pour synchroniser les données depuis ApsaraDB RDS for MySQL vers DataHub afin d'activer rapidement l'analyse en temps réel à l'aide de services Big Data tels que le calcul de flux.
Prérequis
-
Vous avez créé une instance source ApsaraDB RDS for MySQL.
RemarquePour créer une instance ApsaraDB RDS for MySQL, consultez la rubrique Créer une instance ApsaraDB RDS for MySQL.
Pour obtenir la liste des versions prises en charge, consultez la rubrique Présentation des scénarios de synchronisation des données.
Vous avez activé le service DataHub et créé un projet pour recevoir les données synchronisées. Pour plus d'informations, consultez les rubriques Premiers pas avec DataHub et Gérer les projets.
Notes d'utilisation
DTS ne synchronise pas les clés étrangères de la base de données source vers la base de données de destination. Par conséquent, les opérations en cascade et de suppression effectuées sur la base de données source ne sont pas répliquées vers la destination.
|
Type |
Description |
|
Limites de la base de données source |
|
|
Autres limites |
|
|
Cas particuliers |
|
Topologies de synchronisation prises en charge
Synchronisation unidirectionnelle un-à-un.
Synchronisation unidirectionnelle un-à-plusieurs.
Synchronisation unidirectionnelle plusieurs-à-un.
Pour en savoir plus sur chaque topologie de synchronisation et ses considérations, consultez la rubrique Topologies de synchronisation.
Opérations SQL prises en charge
Type d'opération | Instruction SQL |
DML | INSERT, UPDATE, DELETE |
DDL | ADD COLUMN Important Si vous modifiez manuellement la structure de la table dans la base de données cible, redémarrez la tâche : mettez-la en pause puis démarrez-la. |
Procédure
-
Accédez à la page de liste des tâches de synchronisation de la région de destination. Vous pouvez utiliser l'une des deux méthodes suivantes :
Depuis la console DTS
Connectez-vous à la console Data Transmission Service (DTS).
Dans le volet de navigation de gauche, cliquez sur Data Synchronization.
Dans le coin supérieur gauche de la page, sélectionnez la région où se trouve l'instance de synchronisation.
Depuis la console DMS
RemarqueLes opérations réelles peuvent varier en fonction du mode et de la disposition de la console DMS. Pour plus d'informations, consultez les rubriques Mode simple et Personnaliser la disposition et le style de l'interface DMS.
Connectez-vous à Data Management (DMS).
Dans la barre de menus supérieure, choisissez .
À droite de Data Synchronization Tasks, sélectionnez la région où se trouve l'instance de synchronisation.
Cliquez sur Create Task pour ouvrir la page de configuration de la tâche.
-
Configurez les bases de données source et de destination.
AvertissementAprès avoir sélectionné les instances source et de destination, lisez attentivement les limites affichées en haut de la page. Le non-respect de ces limites peut entraîner l'échec de la tâche ou une incohérence des données.
Catégorie
Paramètre
Description
N/A
Task Name
DTS génère automatiquement un nom de tâche. Nous vous recommandons de spécifier un nom descriptif pour faciliter l'identification. Le nom n'a pas besoin d'être unique.
Source Database
Select DMS Database Instance
Sélectionnez une instance existante si nécessaire.
-
Si vous utilisez une instance existante, les informations de la base de données sont renseignées automatiquement. Vous n'avez pas besoin de les saisir à nouveau.
-
Si vous n'utilisez pas d'instance existante, saisissez les informations de base de données suivantes.
Database Type
Sélectionnez MySQL.
Connection Type
Sélectionnez Alibaba Cloud Instance.
Instance Region
Sélectionnez la région où réside l'instance ApsaraDB RDS for MySQL source.
Cross-account
Sélectionnez No. Ce tutoriel concerne la synchronisation des données au sein d'un même compte Alibaba Cloud.
RDS Instance ID
Sélectionnez l'ID de l'instance ApsaraDB RDS for MySQL source.
Database Account
Saisissez le compte de base de données pour l'instance ApsaraDB RDS for MySQL source. Le compte doit disposer d'autorisations de lecture sur les objets de synchronisation.
Database Password
Saisissez le mot de passe correspondant au compte de base de données.
Connection Method
Sélectionnez Non-encrypted ou SSL-encrypted selon vos besoins. Si vous sélectionnez SSL-encrypted, vous devez activer le chiffrement SSL pour l'instance RDS for MySQL au préalable. Pour plus d'informations, consultez la rubrique Utiliser un certificat cloud pour activer rapidement le chiffrement SSL.
Destination Database
Select DMS Database Instance
Sélectionnez une instance existante si nécessaire.
-
Si vous utilisez une instance existante, les informations de la base de données sont renseignées automatiquement. Vous n'avez pas besoin de les saisir à nouveau.
-
Si vous n'utilisez pas d'instance existante, saisissez les informations de base de données suivantes.
Database Type
Sélectionnez DataHub.
Connection Type
Sélectionnez Alibaba Cloud Instance.
Instance Region
Sélectionnez la région où réside l'instance DataHub de destination.
Project
Sélectionnez le Project DataHub de destination.
-
-
Une fois la configuration terminée, cliquez sur Test Connectivity and Proceed en bas de la page.
RemarqueAssurez-vous que les blocs CIDR des adresses IP des serveurs DTS sont ajoutés aux paramètres de sécurité des bases de données source et de destination pour autoriser l'accès depuis les serveurs DTS. Cette opération peut être effectuée automatiquement ou manuellement. Pour plus d'informations, consultez la rubrique Ajouter les blocs CIDR des adresses IP des serveurs DTS à une liste d'autorisation.
Si la base de données source ou de destination est une base de données auto-gérée (où la Access Method n'est pas Alibaba Cloud Instance), vous devez également cliquer sur Test Connectivity dans la boîte de dialogue CIDR Blocks of DTS Servers.
-
Configurez les objets de la tâche.
-
Sur la page Configure Objects, configurez les objets à synchroniser.
Paramètre
Description
Synchronization Types
Incremental Data Synchronization est sélectionné. Par défaut, vous devez également sélectionner Schema Synchronization et Full Data Synchronization. Une fois la pré-vérification terminée, DTS effectue une synchronisation complète des données des objets sélectionnés depuis l'instance source vers le cluster de destination. Cela sert de données de base pour la synchronisation incrémentielle des données ultérieure.
Naming Rules of Additional Columns
Lorsque DTS synchronise les données vers DataHub, il ajoute des colonnes supplémentaires à la table de destination. En cas de conflit de nom entre une colonne supplémentaire et une colonne existante dans la table de destination, la tâche de synchronisation échoue. Sélectionnez New Rule ou Previous Rule en fonction de vos besoins métier.
AvertissementAvant de sélectionner une règle, évaluez si les colonnes supplémentaires entrent en conflit avec les colonnes existantes dans la table de destination. Les conflits de noms peuvent entraîner une perte de données ou des échecs de tâche. Pour plus d'informations sur les règles et les définitions des colonnes supplémentaires, consultez Noms et définitions des colonnes supplémentaires.
Processing Mode of Conflicting Tables
-
Precheck and Report Errors : vérifie si une table portant le même nom existe dans la base de données de destination. Si aucune table portant le même nom n'existe, la pré-vérification réussit. Si une table portant le même nom existe, la pré-vérification échoue et la tâche de synchronisation des données ne démarre pas.
RemarqueSi vous ne pouvez pas supprimer ou renommer la table portant le même nom dans la base de données de destination, vous pouvez la mapper vers un nom de table différent. Pour plus d'informations, consultez Mapper les noms de tables et de colonnes.
-
Ignore Errors and Proceed : ignore la vérification des noms de tables en double dans la base de données de destination.
AvertissementLa sélection de l'option Ignore Errors and Proceed peut provoquer une incohérence des données et mettre votre activité à risque. Par exemple :
-
Si les schémas de table sont identiques et qu'un enregistrement dans la base de données de destination possède la même valeur de clé primaire ou de clé unique qu'un enregistrement dans la base de données source :
-
Lors de la synchronisation complète, DTS conserve l'enregistrement dans le cluster de destination. L'enregistrement correspondant de la base de données source n'est pas synchronisé.
-
Lors de la synchronisation incrémentielle, l'enregistrement de la base de données source écrase l'enregistrement dans la base de données de destination.
-
-
Si les schémas de table sont différents, la synchronisation initiale des données peut échouer. Cela peut entraîner la synchronisation uniquement d'une partie des données de colonne ou un échec complet de la synchronisation. Procédez avec prudence.
-
Case Sensitivity Policy for Destination Object Names
Vous pouvez configurer la politique de sensibilité à la casse pour les noms d'objets de base de données, de tables et de colonnes qui sont synchronisés vers l'instance de destination. Par défaut, la politique DTS default policy est sélectionnée. Vous pouvez également choisir d'utiliser les politiques par défaut des bases de données source et de destination. Pour plus d'informations, consultez Politique de sensibilité à la casse pour les noms d'objets de destination.
Source Objects
Dans la zone Source Objects, cliquez sur un objet à synchroniser, puis cliquez sur
pour le déplacer vers la zone Selected Objects.RemarqueLes objets de synchronisation sont sélectionnés au niveau de la table.
Selected Objects
-
Pour renommer un seul objet de synchronisation dans l'instance de destination, faites un clic droit sur l'objet dans la zone Selected Objects. Pour plus d'informations sur le renommage des objets, consultez Mapper une seule base de données, table ou colonne.
-
Pour modifier les noms de plusieurs objets de synchronisation dans l'instance de destination en lot, cliquez sur Batch Edit dans le coin supérieur droit de la zone Selected Objects. Pour plus d'informations, consultez Mapper les bases de données, tables et colonnes en lot.
RemarquePour définir une clause WHERE afin de filtrer les données, faites un clic droit sur la table dans la zone Selected Objects et spécifiez la condition de filtre dans la boîte de dialogue qui s'affiche. Pour plus d'informations, consultez Définir des conditions de filtre.
Faites un clic droit sur la table dans la zone Selected Objects, décochez la case Sync All Columns dans la boîte de dialogue qui s'affiche, puis définissez la clé de sharding. La clé de sharding est utilisée pour le partitionnement des données.
-
-
Cliquez sur Next: Advanced Settings pour configurer les paramètres avancés.
Paramètre
Description
Dedicated Cluster for Task Scheduling
Par défaut, DTS planifie les tâches sur un cluster partagé et vous n'avez pas besoin de sélectionner un cluster. Pour des performances plus stables, vous pouvez acheter un cluster dédié pour exécuter les tâches de synchronisation DTS. Pour plus d'informations, consultez Qu'est-ce qu'un cluster dédié DTS ?.
Set Alerts
Spécifiez s'il faut configurer des alertes. Si la synchronisation échoue ou si la latence dépasse le seuil spécifié, une notification est envoyée à un contact d'alerte.
-
No : aucune alerte n'est configurée.
-
Yes : configurez les alertes en définissant un seuil d'alerte et en spécifiant un notification d'alerte. Pour plus d'informations, consultez Configurer la surveillance et les alertes lors de la configuration de la tâche.
Retry Time for Failed Connections
Après le démarrage d'une tâche de synchronisation, si la connexion à la base de données source ou de destination échoue, DTS signale une erreur et commence immédiatement à retenter la connexion. La durée de nouvelle tentative par défaut est de 720 minutes. Vous pouvez également spécifier une durée de nouvelle tentative personnalisée comprise entre 10 et 1 440 minutes. Nous vous recommandons de définir la durée à 30 minutes ou plus. Si DTS se reconnecte avec succès à la base de données dans le délai spécifié, la tâche de synchronisation reprend automatiquement. Sinon, la tâche échoue.
Remarque-
Si vous disposez de plusieurs instances DTS (par exemple, l'instance A et l'instance B) qui partagent la même source ou la même destination, et que vous définissez le délai de nouvelle tentative réseau à 30 minutes pour l'instance A et à 60 minutes pour l'instance B, la durée la plus courte de 30 minutes est utilisée pour les deux.
-
Étant donné que DTS facture l'exécution de la tâche pendant la période de nouvelle tentative de connexion, nous vous recommandons de personnaliser la durée de nouvelle tentative en fonction de vos besoins métier ou de libérer l'instance DTS dès que possible après la libération des instances de base de données source et de destination.
Retry Time for Other Issues
Après le démarrage de la tâche de synchronisation, si d'autres problèmes non liés à la connectivité surviennent avec la base de données source ou de destination (tels que des exceptions d'exécution DDL ou DML), DTS signale une erreur et lance immédiatement des opérations de nouvelle tentative continues. La durée de nouvelle tentative par défaut est de 10 minutes. Vous pouvez également personnaliser la durée de nouvelle tentative dans la plage de 1 à 1 440 minutes. Nous vous recommandons de la définir à 10 minutes ou plus. Si les opérations pertinentes aboutissent dans le délai de nouvelle tentative défini, la tâche de synchronisation reprend automatiquement. Sinon, la tâche échoue.
ImportantLa valeur de Retry Time for Other Issues doit être inférieure à celle de Retry Time for Failed Connections.
Enable Throttling for Full Data Synchronization
Pendant la phase de synchronisation complète, DTS consomme des ressources de lecture et d'écriture des bases de données source et de destination, ce qui peut augmenter la charge de la base de données. Pour réduire la charge sur les bases de données source et de destination, vous pouvez définir une limite de débit pour la tâche de synchronisation complète en configurant les paramètres Queries per second (QPS) to the source database, RPS of Full Data Migration et Data migration speed for full migration (MB/s).
Remarque-
Cet élément de configuration est disponible uniquement lorsque Synchronization Types est défini sur Full Data Synchronization.
-
Vous pouvez également ajuster le taux de synchronisation complète après le démarrage de l'instance de synchronisation.
Enable Throttling for Incremental Data Synchronization
Vous pouvez également définir une limite de débit pour la tâche de synchronisation incrémentielle. Pour soulager la pression sur la base de données de destination, définissez les paramètres RPS of Incremental Data Synchronization et Data synchronization speed for incremental synchronization (MB/s).
Environment Tag
Vous pouvez sélectionner un tag d'environnement pour identifier l'instance en fonction de vos besoins métier. Pour cet exemple, vous n'avez pas besoin de sélectionner un tag.
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks
Choisissez s'il faut écrire les informations SQL de heartbeat dans la base de données source lorsque l'instance DTS est en cours d'exécution.
-
Yes : les informations SQL de heartbeat ne sont pas écrites dans la base de données source. Cela peut amener l'instance DTS à signaler un retard.
-
No : écrit les informations SQL de heartbeat dans la base de données source. Cela peut interférer avec des fonctionnalités telles que la sauvegarde physique et le clonage de la base de données source.
Configure ETL
Choisissez s'il faut activer la fonctionnalité extract, transform, and load (ETL). Pour plus d'informations, consultez Qu'est-ce que l'ETL ? Valeurs valides :
-
Yes : active la fonctionnalité ETL. Saisissez les instructions de traitement des données dans l'éditeur de code. Pour plus d'informations, consultez Configurer ETL dans une tâche de migration ou de synchronisation de données.
-
No : désactive la fonctionnalité ETL.
Monitoring and Alerting
Spécifiez s'il faut configurer des alertes. Si la synchronisation échoue ou si la latence dépasse le seuil spécifié, une notification est envoyée à un contact d'alerte.
-
No : aucune alerte n'est configurée.
-
Yes : configurez les alertes en définissant un seuil d'alerte et en spécifiant un notification d'alerte. Pour plus d'informations, consultez Configurer la surveillance et les alertes lors de la configuration de la tâche.
-
-
-
Enregistrez la tâche et exécutez une pré-vérification.
Pour afficher les paramètres API pour configurer cette instance, placez le curseur sur le bouton Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters dans la bulle.
Une fois que vous avez consulté les paramètres API, cliquez sur Next: Save Task Settings and Precheck en bas de la page.
RemarqueAvant le démarrage de la tâche de synchronisation, DTS exécute une pré-vérification. La tâche ne peut démarrer qu'après la réussite de tous les éléments de pré-vérification.
Si la pré-vérification échoue, cliquez sur View Details pour l'élément ayant échoué. Corrigez le problème comme indiqué, puis relancez la pré-vérification.
-
Si la pré-vérification renvoie un avertissement :
Si un élément de vérification échoue et ne peut pas être ignoré, cliquez sur View Details à côté de l'élément. Suivez les instructions pour corriger le problème, puis relancez la pré-vérification.
Pour les éléments de vérification qui peuvent être ignorés, vous pouvez cliquer successivement sur Confirm Alert Details, Ignore, OK et Precheck Again pour ignorer l'avertissement et relancer la pré-vérification. Si vous choisissez de masquer l'élément d'avertissement, cela peut entraîner des problèmes tels qu'une incohérence des données et présenter des risques pour votre activité.
-
Achetez l'instance.
Lorsque le Success Rate atteint 100 %, cliquez sur Next: Purchase Instance.
-
Sur la page Purchase, sélectionnez la méthode de facturation et les spécifications du lien pour l'instance de synchronisation des données. Le tableau suivant décrit ces paramètres en détail.
Catégorie
Paramètre
Description
New Instance Class
Billing Method
-
Abonnement : vous réglez le paiement lors de la création de l'instance. Cette option convient aux besoins à long terme et s'avère plus économique que le paiement à l'utilisation. Plus la durée d'abonnement est longue, plus la remise est importante.
-
Paiement à l'utilisation : la facturation est effectuée à l'heure. Cette option est adaptée aux besoins à court terme. Vous pouvez libérer l'instance immédiatement après utilisation pour réduire les coûts.
Resource Group Configuration
Groupe de ressources auquel l'instance appartient. La valeur par défaut est le groupe de ressources par défaut. Pour plus d'informations, consultez Qu'est-ce que Resource Management ?.
Link Specification
DTS propose des spécifications de synchronisation avec différents niveaux de performance. Les spécifications du lien de synchronisation influent sur le débit de synchronisation. Choisissez une spécification adaptée à votre scénario métier. Pour plus d'informations, consultez Spécifications des liens de synchronisation des données.
Subscription Duration
En mode abonnement, sélectionnez la durée et la quantité pour l'instance d'abonnement. Vous pouvez opter pour un abonnement mensuel de 1 à 9 mois, ou un abonnement annuel de 1, 2, 3 ou 5 ans.
RemarqueCette option n'est disponible que lorsque la méthode de facturation est définie sur Subscription.
-
Une fois la configuration terminée, lisez et acceptez les Data Transmission Service (Pay-as-you-go) Service Terms.
-
Cliquez sur Buy and Start. Dans la boîte de dialogue OK, cliquez sur OK.
Vous pouvez consulter la progression de la tâche sur la page Data Synchronization.
Normalement, l'ID est globalement unique et s'incrémente automatiquement. Toutefois, dans les scénarios de reprise après sinistre, des restaurations peuvent se produire, de sorte que ces propriétés ne sont pas garanties.
Pour une opération UPDATE, DTS divise la mise à jour en deux enregistrements : l'un contenant les valeurs avant la mise à jour et l'autre contenant les valeurs après la mise à jour. Les deux enregistrements partagent la même valeur
dts_record_id.I : opération INSERT.
D : opération DELETE.
U : opération UPDATE.
F : synchronisation complète des données.
-
INSERT
Pour une opération INSERT, toutes les valeurs de colonne représentent les données nouvellement insérées, c'est-à-dire la valeur après la mise à jour. Par conséquent,
dts_before_flagest défini sur N etdts_after_flagest défini sur Y. -
UPDATE
Pour une opération UPDATE, DTS divise l'opération en deux entrées de journal incrémentiel. Ces deux entrées partagent les mêmes valeurs pour
dts_record_id,dts_operation_flagetdts_utc_timestamp.La première entrée de journal enregistre la valeur avant la mise à jour, où
dts_before_flagest défini sur Y etdts_after_flagest défini sur N. La seconde entrée enregistre la valeur après la mise à jour, oùdts_before_flagest défini sur N etdts_after_flagest défini sur Y. -
DELETE
Pour une opération DELETE, toutes les valeurs de colonne dans le journal incrémentiel représentent les données supprimées, c'est-à-dire la valeur avant la mise à jour. Par conséquent,
dts_before_flagest défini sur Y etdts_after_flagest défini sur N.
Schéma du topic
Lorsque DTS synchronise les modifications de données vers un topic dans une instance DataHub, il ajoute plusieurs colonnes supplémentaires au schéma du topic. Ces colonnes stockent des métadonnées relatives aux modifications de données, comme l'illustre l'exemple suivant.
Dans cet exemple, les champs de données sont id, name et address. Étant donné que vous avez sélectionné les règles de colonnes supplémentaires héritées lors de la configuration de la synchronisation des données, DTS ajoute le préfixe dts_ à ces champs de données.

Le tableau suivant décrit les colonnes supplémentaires.
Nom hérité | Nouveau nom | Type | Description |
|
| String | ID unique de l'enregistrement de journal incrémentiel. Remarque |
|
| String | Type d'opération. Valeurs possibles : |
|
| String | ID du serveur de la base de données. |
|
| String | Nom de la base de données. |
|
| String | Nom de la table. |
|
| String | Horodatage UTC de l'opération, issu du binlog. |
|
| String | Indique si l'enregistrement contient les valeurs avant la mise à jour. Valeurs possibles : Y et N. |
|
| String | Indique si l'enregistrement contient les valeurs après la mise à jour. Valeurs possibles : Y et N. |
dts_before_flag et dts_after_flag
Les valeurs des champs dts_before_flag et dts_after_flag dans un journal incrémentiel dépendent du type d'opération :