Data Transmission Service (DTS) permet de synchroniser des données en temps réel d'une instance PolarDB-X 2.0 vers une instance Tablestore. DTS prend en charge la synchronisation du schéma, la synchronisation complète des données et la synchronisation incrémentielle des données (INSERT, UPDATE, DELETE), ce qui vous offre une copie continuellement mise à jour de vos données source dans Tablestore.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Une instance Tablestore. Pour obtenir des instructions, consultez Activer Tablestore et créer une instance.
L'ID AccessKey et le secret AccessKey du compte Alibaba Cloud propriétaire de l'instance Tablestore. Pour obtenir des instructions, consultez Créer une paire AccessKey pour un compte Alibaba Cloud.
Facturation
| Type de synchronisation | Tarification |
|---|---|
| Synchronisation du schéma et synchronisation complète des données | Gratuit |
| Synchronisation incrémentielle des données | Facturé. Pour plus de détails, consultez Présentation de la facturation. |
Opérations SQL pouvant être synchronisées de manière incrémentielle
| Type d'opération | Instruction SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
Limites
Vérifiez ces limites avant de créer une tâche de synchronisation.
Limites de la base de données source
Les tables doivent disposer d'une clé primaire ou d'une contrainte d'unicité avec des champs uniques. Dans le cas contraire, la base de données de destination peut contenir des doublons.
Les instances en lecture seule de PolarDB-X 2.0 Enterprise Edition ne sont pas prises en charge en tant que source.
Si vous synchronisez au niveau de la table avec édition d'objets (comme le mappage des noms de colonnes) et qu'une seule tâche inclut plus de 5 000 tables, divisez la tâche ou configurez-la pour synchroniser la base de données entière.
Si un nom de table source contient des majuscules, seule la synchronisation du schéma est prise en charge pour cette table.
Binlog est activé par défaut dans PolarDB-X 2.0. Assurez-vous que le paramètre
binlog_row_imageest défini surfull. Pour obtenir des instructions, consultez Paramètres. Si ce paramètre n'est pas correctement défini, la prévérification échoue et la tâche ne peut pas démarrer.Les groupes de tables et les bases de données ou tables avec la propriété Locality ne sont pas pris en charge.
Les tables dont les noms sont des mots réservés (par exemple
select) ne sont pas prises en charge.-
N'exécutez pas d'opérations DDL modifiant les schémas de base de données ou de tables pendant la synchronisation du schéma ou la synchronisation complète des données. Cela entraînerait l'échec de la tâche de synchronisation.
Remarque
Pendant la synchronisation complète des données, DTS interroge la base de données source, ce qui crée des verrous de métadonnées susceptibles de bloquer les opérations DDL sur la base de données source.
Les partitions de base de données en mode DRDS dans PolarDB-X 2.0 ne peuvent pas être synchronisées.
Autres limites
Évaluez les performances de vos bases de données source et de destination avant de démarrer la synchronisation. Exécutez les tâches de synchronisation pendant les heures creuses. La synchronisation initiale complète des données consomme des ressources de lecture et d'écriture sur les deux bases de données, ce qui augmente leur charge.
La synchronisation initiale complète des données exécute des opérations INSERT concurrentes, ce qui provoque une fragmentation des tables dans Tablestore. Par conséquent, l'espace disque de l'instance Tablestore sera plus grand que celui de l'instance source une fois la synchronisation initiale complète terminée.
N'écrivez pas de données dans la base de données de destination depuis des sources autres que DTS pendant la synchronisation. Cela pourrait entraîner une incohérence des données entre la source et la destination.
Le nombre de tables à synchroniser ne doit pas dépasser la limite de 64 imposée par l'instance Tablestore. Pour synchroniser plus de 64 tables, contactez le support Tablestore pour augmenter cette limite.
-
Les noms de tables et de colonnes doivent respecter les conventions de nommage de Tablestore :
Les noms peuvent contenir des lettres majuscules, des lettres minuscules, des chiffres et des traits de soulignement (
_), et doivent commencer par une lettre ou un trait de soulignement.Les noms doivent comporter entre 1 et 255 caractères.
En cas d'échec d'une tâche, l'équipe d'assistance DTS tentera de la restaurer dans un délai de 8 heures. Pendant la restauration, elle peut redémarrer la tâche ou ajuster les paramètres de la tâche DTS, et non les paramètres de la base de données. Pour connaître les paramètres susceptibles d'être ajustés, consultez Modifier les paramètres de l'instance.
Créer une tâche de synchronisation
Le processus de configuration complet comprend les étapes suivantes :
Accédez à la liste des tâches Data Synchronization.
Configurez les bases de données source et de destination.
Configurez les objets de synchronisation et les paramètres d'écriture Tablestore.
Configurez les paramètres avancés.
Configurez les colonnes de clé primaire.
Exécutez la prévérification et achetez l'instance.
Étape 1 : Accéder à la liste des tâches Data Synchronization
Ouvrez la liste des tâches via la console DTS ou la console DMS.
Console DTS
Connectez-vous à la console DTS.Console DTS
Dans le volet de navigation de gauche, cliquez sur Data Synchronization.
Dans le coin supérieur gauche, sélectionnez la région où l'instance de synchronisation sera située.
Console DMS
Remarque
Les étapes exactes peuvent varier selon le mode et la disposition de la console DMS. Pour plus de détails, consultez Console en mode simple et Personnaliser la disposition et le style de la console DMS.
Connectez-vous à la console DMS.Console DMS
Dans la barre de menu supérieure, choisissez Data + AI > DTS (DTS) > Data Synchronization.
À droite de Data Synchronization Tasks, sélectionnez la région de l'instance de synchronisation.
Étape 2 : Configurer les bases de données source et de destination
Cliquez sur Create Task.
Saisissez un Task Name. DTS en génère un automatiquement, mais un nom descriptif facilite l'identification. Le nom n'a pas besoin d'être unique.
-
Configurez la base de données source.
Paramètre Description Select Existing Connection Sélectionnez une instance de base de données enregistrée dans la liste déroulante pour remplir automatiquement les paramètres ci-dessous. Si vous n'avez pas enregistré l'instance ou préférez la configurer manuellement, ignorez ce champ. RemarqueDans la console DMS, ce champ est libellé Select a DMS database instance.
Database Type Sélectionnez PolarDB-X 2.0. Access Method Sélectionnez Alibaba Cloud Instance. Instance Region Sélectionnez la région où se trouve l'instance PolarDB-X 2.0 source. Replicate Data Across Alibaba Cloud Accounts Sélectionnez No (cet exemple utilise le même compte Alibaba Cloud). Instance ID Sélectionnez l'ID de l'instance PolarDB-X 2.0 source. Database Account Saisissez le compte de base de données pour l'instance source. Le compte doit disposer des autorisations REPLICATION SLAVE, REPLICATION CLIENT et SELECT sur les objets à synchroniser. Pour obtenir des instructions sur l'attribution des autorisations, consultez Gérer les comptes de base de données et Autorisations de compte requises pour la synchronisation des données. Database Password Saisissez le mot de passe du compte de base de données. -
Configurez la base de données de destination.
Paramètre Description Select Existing Connection Sélectionnez une instance de base de données enregistrée dans la liste déroulante pour remplir automatiquement les paramètres ci-dessous. Si vous n'avez pas enregistré l'instance ou préférez la configurer manuellement, ignorez ce champ. RemarqueDans la console DMS, ce champ est libellé Select a DMS database instance.
Database Type Sélectionnez Tablestore. Access Method Sélectionnez Alibaba Cloud Instance. Instance Region Sélectionnez la région où se trouve l'instance Tablestore de destination. Instance ID Sélectionnez le nom de l'instance Tablestore de destination. AccessKey ID of Alibaba Cloud Account Saisissez l'ID AccessKey du compte Alibaba Cloud propriétaire de l'instance Tablestore. Ceci est utilisé pour la vérification d'identité. ImportantSi vous saisissez l'ID AccessKey d'un utilisateur RAM, la tâche peut échouer en raison d'autorisations insuffisantes.
AccessKey Secret of Alibaba Cloud Account Saisissez le secret AccessKey du compte Alibaba Cloud. -
Cliquez sur Test Connectivity and Proceed en bas de la page.
Remarque
Assurez-vous que les blocs d'adresses IP du serveur DTS sont ajoutés aux paramètres de sécurité de vos bases de données source et de destination, soit automatiquement, soit manuellement, avant de tester la connectivité. Pour obtenir des instructions, consultez Ajouter la liste blanche d'adresses IP des serveurs DTS.
Étape 3 : Configurer les objets de synchronisation et les paramètres d'écriture
Sur la page Configure Objects, configurez les paramètres suivants.
Synchronization scope
| Paramètre | Description |
|---|---|
| Synchronization Types | DTS active toujours la Incremental Data Synchronization, qui applique continuellement les modifications en cours de la source vers la destination. Par défaut, la Schema Synchronization et la Full Data Synchronization sont également sélectionnées : DTS copie d'abord toutes les données des objets sélectionnés pour initialiser la destination, puis passe à la synchronisation incrémentielle. |
| Operation Types | Sélectionnez les types d'opérations DML à synchroniser. INSERT, UPDATE et DELETE sont tous sélectionnés par défaut. |
Gestion des conflits
| Paramètre | Description |
|---|---|
| Processing Mode of Conflicting Tables | Contrôle la manière dont DTS gère les conflits de noms entre les tables source et de destination. Precheck and Report Errors : DTS vérifie les conflits de noms avant le démarrage de la tâche. Si des conflits sont détectés, une erreur est signalée et la tâche ne démarre pas. Pour résoudre les conflits sans renommer les tables de destination, vous pouvez les mapper vers des noms différents ; consultez Mappage des noms de colonnes de table de base de données. Ignore Errors and Proceed : DTS ignore la vérification des conflits. Avertissement
Cela peut provoquer une incohérence des données. Pendant la synchronisation complète des données, DTS ignore les enregistrements source qui entrent en conflit avec les enregistrements de destination existants (même clé primaire ou unique). Pendant la synchronisation incrémentielle, DTS écrase les enregistrements de destination avec les enregistrements source. Si les schémas de table sont incohérents, l'initialisation peut échouer ou entraîner une synchronisation partielle. Utilisez cette option avec prudence. |
| Processing Policy of Dirty Data | Contrôle la manière dont DTS gère les erreurs d'écriture de données. Skip : Ignore les enregistrements dont l'écriture échoue. Block : Arrête la tâche lorsqu'une erreur d'écriture se produit. |
Paramètres d'écriture Tablestore
| Paramètre | Description |
|---|---|
| Data Write Mode | Contrôle la manière dont DTS écrit les lignes dans Tablestore. Overwrite Row : Utilise UpdateRowChange pour les écrasements au niveau des lignes. Update Row : Utilise PutRowChange pour les mises à jour au niveau des lignes. |
| Batch Write Mode | API utilisée pour les écritures par lot. BulkImportRequest (recommandé) : Mode d'écriture hors ligne offrant une efficacité de lecture et d'écriture plus élevée et des coûts de facturation Tablestore inférieurs. BatchWriteRowRequest : Mode d'écriture par lot standard. |
| More (facultatif) | Développez pour configurer les paramètres avancés de performance d'écriture : Queue Size (longueur de la file d'attente d'écriture), Thread Quantity (threads de gestionnaire de rappel), Concurrency (limite de demandes concurrentes) et Buckets (buckets concurrents pour l'écriture séquentielle des données incrémentielles — l'augmentation de cette valeur améliore les performances d'écriture concurrentes, mais elle ne doit pas dépasser Concurrency). |
Sélection et mappage d'objets
| Paramètre | Description |
|---|---|
| Capitalization of Object Names in Destination Instance | Politique de casse pour les noms de bases de données, de tables et de colonnes dans la destination. La DTS default policy est sélectionnée par défaut. Pour plus de détails, consultez Politique de casse pour les noms d'objets de destination. |
| Source Objects | Dans la zone Source Objects, cliquez sur les objets à synchroniser, puis cliquez sur l'icône de flèche pour les déplacer vers la zone Selected Objects. Vous pouvez sélectionner des bases de données entières ou des tables individuelles. La sélection de tables ne synchronise pas les vues, les déclencheurs ni les procédures stockées. Vous ne pouvez synchroniser les tables que d'une seule base de données par tâche. |
| Selected Objects | Pour renommer un objet dans la destination, faites un clic droit dessus dans la zone Selected Objects. Pour plus de détails sur le renommage unique ou groupé, consultez Mapper les noms d'objets. Lorsque vous utilisez le mappage des noms de colonnes, vous pouvez également modifier le type de données de la colonne correspondante dans l'instance Tablestore de destination. Pour filtrer les lignes, faites un clic droit sur une table et définissez une clause WHERE. Pour plus de détails, consultez Définir des conditions de filtrage. Remarque
Le mappage des noms de bases de données n'est pas pris en charge. Le mappage des tables et des colonnes n'est disponible que lorsque vous sélectionnez des tables (et non des bases de données entières) comme objets de synchronisation. |
Étape 4 : Configurer les paramètres avancés
Cliquez sur Next: Advanced Settings et configurez les paramètres suivants.
| Paramètre | Description |
|---|---|
| Dedicated Cluster for Task Scheduling | Par défaut, DTS utilise un cluster partagé. Pour améliorer la stabilité des tâches, achetez un cluster dédié. Pour plus de détails, consultez Qu'est-ce qu'un cluster dédié DTS ? |
| Retry Time for Failed Connections | Durée pendant laquelle DTS réessaie après l'échec d'une connexion à la source ou à la destination. Valeur par défaut : 720 minutes. Plage : 10–1 440 minutes. Définissez cette valeur sur 30 minutes ou plus. Si la connexion est rétablie durant cette période, la tâche reprend automatiquement. Remarque
Si plusieurs instances DTS partagent une source ou une destination, DTS applique la durée de nouvelle tentative la plus courte configurée parmi elles toutes. DTS facture le temps d'exécution de la tâche pendant les nouvelles tentatives de connexion. |
| Retry Time for Other Issues | Durée pendant laquelle DTS réessaie après une erreur autre qu'une erreur de connexion (comme une erreur d'exécution DDL ou DML). Valeur par défaut : 10 minutes. Plage : 1–1 440 minutes. Définissez cette valeur sur 10 minutes ou plus. Important
Cette valeur doit être inférieure à Retry Time for Failed Connections. |
| Enable Throttling for Full Data Synchronization | Limitez le taux de synchronisation complète des données pour réduire la charge sur vos bases de données. Configurez Queries per second (QPS) to the source database, RPS of Full Data Migration et Data migration speed for full migration (MB/s). Ce paramètre n'est disponible que lorsque Full Data Synchronization est sélectionné. Vous pouvez également ajuster le débit après le démarrage de la tâche. |
| Enable Throttling for Incremental Data Synchronization | Limitez le taux de synchronisation incrémentielle en configurant RPS of Incremental Data Synchronization et Data synchronization speed for incremental synchronization (MB/s). |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Contrôle si DTS écrit du SQL de pulsation (heartbeat) dans la base de données source. Yesalert notifications : N'écrit pas de SQL de pulsation. L'instance DTS peut afficher une latence plus élevée. No : Écrit du SQL de pulsation dans la base de données source. Cela peut interférer avec des opérations telles que les sauvegardes physiques et le clonage de base de données. |
| Environment Tag | Sélectionnez éventuellement un tag pour identifier cette instance. |
| Configure ETL | ETL n'est pas pris en charge pour ce chemin de synchronisation. Sélectionnez No. |
| Monitoring and Alerting | Configurez des alertes en cas d'échec de la tâche ou de latence dépassant un seuil. No : Pas d'alertes. Yes : Configurez les seuils d'alerte et les destinataires. Pour plus de détails, consultez Configurer la surveillance et les alertes. |
Étape 5 : Configurer les colonnes de clé primaire
Cliquez sur Next: Configure Database and Table Fields, puis cliquez sur OK dans la boîte de dialogue qui s'affiche.
DTS définit la clé primaire de chaque table source comme Primary Key Column par défaut. Pour modifier cela, définissez Definition Status sur All.
Vous pouvez sélectionner plusieurs colonnes pour former une clé primaire composite.
Étape 6 : Exécuter la prévérification et acheter l'instance
Pour afficher un aperçu des paramètres API pour cette configuration, placez le curseur sur Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters dans l'infobulle.
-
Cliquez sur Next: Save Task Settings and Precheck. DTS exécute une prévérification avant de démarrer la tâche. La tâche ne peut démarrer qu'après la réussite de la prévérification.
Si la prévérification échoue, cliquez sur View Details à côté de l'élément ayant échoué, corrigez le problème selon les instructions et relancez la prévérification.
-
Si la prévérification génère des avertissements :
Pour les avertissements non ignorables, cliquez sur View Details, corrigez le problème et relancez la prévérification.
Pour les avertissements ignorables, cliquez sur Confirm Alert Details > Ignore > OK, puis cliquez sur Precheck Again. Ignorer les avertissements de prévérification peut entraîner une incohérence des données. Procédez avec prudence.
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 de l'instance.
Paramètre Description Billing Method Subscription : Payez à l'avance pour une durée fixe. Idéal pour les tâches de synchronisation continues à long terme. Pay-as-you-go : Facturation horaire basée sur l'utilisation réelle. Idéal pour les tâches à court terme ou de test — libérez l'instance à tout moment pour arrêter la facturation. Resource Group Settings Groupe de ressources pour cette instance. Par défaut, default resource group. Pour plus de détails, consultez Qu'est-ce que Resource Management ? Instance Class Différentes spécifications offrent différents niveaux de débit de synchronisation. Sélectionnez en fonction des exigences de votre charge de travail. Pour plus de détails, consultez Spécifications des canaux de synchronisation de données. Subscription Duration Disponible uniquement pour la facturation Subscription. Options mensuelles : 1 à 9 mois. Options annuelles : 1, 2, 3 ou 5 ans. Lisez et cochez la case pour les Data Transmission Service (Pay-as-you-go) Service Terms.
Cliquez sur Buy and Start, puis cliquez sur OK dans la boîte de dialogue de confirmation.
Surveillez la progression de la tâche sur la page Data Synchronization.