ApsaraDB for SelectDB prend en charge des temps de réponse inférieurs à la seconde sur des jeux de données massifs, des dizaines de milliers de requêtes ponctuelles simultanées et des analyses complexes à haut débit. Le service Data Transmission Service (DTS) synchronise les données provenant de sources MySQL, telles qu'une base de données MySQL auto-gérée ou une instance ApsaraDB RDS for MySQL, vers une instance ApsaraDB for SelectDB pour l'analyse de données à grande échelle. Cette rubrique illustre la procédure en prenant comme exemple une instance ApsaraDB RDS for MySQL.
Prérequis
Vous avez créé une instance cible ApsaraDB for SelectDB dont l'espace de stockage dépasse celui utilisé par l'instance ApsaraDB RDS for MySQL source. Pour plus d'informations, consultez la page Créer une instance.
Points à prendre en compte
|
Type |
Description |
|
Limitations de la base de données source |
|
|
Autres limites |
|
|
Cas particuliers |
|
Facturation
||
Type de synchronisation |
Tarification |
|
Synchronisation du schéma et des données complètes |
Gratuit. |
|
Synchronisation incrémentielle des données |
Payant. Pour plus d'informations, consultez la rubrique Présentation de la facturation. |
Instructions SQL pour la synchronisation incrémentielle
|
Type d'opération |
Instruction SQL |
|
DML |
INSERT, UPDATE et DELETE |
|
DDL |
|
Autorisations du compte de base de données
||
Base de données |
Autorisations requises |
Actions |
|
Source ApsaraDB RDS for MySQL |
Autorisations de lecture et d'écriture sur les objets à synchroniser |
|
|
Instance ApsaraDB for SelectDB de destination |
Autorisation d'accès au cluster (Usage_priv) et autorisations de lecture et d'écriture sur la base de données (Select_priv, Load_priv, Alter_priv, Create_priv et Drop_priv) |
Gérer les autorisations du cluster et Gérer les autorisations de base |
Si vous avez créé le compte de la base de données source en dehors de la console ApsaraDB RDS for MySQL, assurez-vous qu'il dispose des autorisations REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW et SELECT.
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.
Sélectionnez la région où se trouve l'instance de synchronisation dans le coin supérieur gauche de la page.
Depuis la console DMS
RemarqueLes opérations réelles peuvent varier selon le mode et 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 à la console Data Management (DMS).
Dans la barre de menu supérieure, accédez à .
À droite de Data Synchronization Tasks, sélectionnez la région où se trouve l'instance de synchronisation.
Cliquez sur Create Task pour accéder à la page de configuration de la tâche.
-
Configurez les bases de données source et de destination.
Section
Parameter
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 Existing Connection
-
Pour utiliser une instance de base de données ajoutée au système (nouvellement créée ou enregistrée), sélectionnez l'instance de base de données dans la liste déroulante. Les informations de la base de données sont configurées automatiquement.
RemarqueDans la console DMS, cet élément de configuration est nommé Select a DMS database instance..
-
Si vous n'avez pas ajouté l'instance de base de données au système, ou si vous n'avez pas besoin d'utiliser une instance déjà ajoutée, configurez manuellement les informations de base de données suivantes.
Database Type
Sélectionnez MySQL.
Access Method
Sélectionnez Alibaba Cloud Instance.
Instance Region
Sélectionnez la région de l'instance ApsaraDB RDS for MySQL source.
Replicate Data Across Alibaba Cloud Accounts
Dans cet exemple, les données sont synchronisées au sein du même compte Alibaba Cloud. Sélectionnez No.
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 de l'instance ApsaraDB RDS for MySQL source. Pour plus d'informations sur les autorisations requises, consultez la section Autorisations requises pour les comptes de base de données.
Database Password
Saisissez le mot de passe correspondant au compte de base de données.
Encryption
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 Existing Connection
-
Pour utiliser une instance de base de données ajoutée au système (nouvellement créée ou enregistrée), sélectionnez l'instance de base de données dans la liste déroulante. Les informations de la base de données sont configurées automatiquement.
RemarqueDans la console DMS, cet élément de configuration est nommé Select a DMS database instance..
-
Si vous n'avez pas ajouté l'instance de base de données au système, ou si vous n'avez pas besoin d'utiliser une instance déjà ajoutée, configurez manuellement les informations de base de données suivantes.
Database Type
Sélectionnez ApsaraDB for SelectDB.
Access Method
Sélectionnez Alibaba Cloud Instance.
Instance Region
Sélectionnez la région de l'instance ApsaraDB for SelectDB de destination.
Replicate Data Across Alibaba Cloud Accounts
Dans cet exemple, les données sont synchronisées au sein du même compte Alibaba Cloud. Sélectionnez No.
Instance ID
Sélectionnez l'ID de l'instance ApsaraDB for SelectDB de destination.
Database Account
Saisissez le compte de base de données de l'instance ApsaraDB for SelectDB de destination. Pour plus d'informations sur les permissions requises, consultez Permissions required for database accounts.
Database Password
Saisissez le mot de passe correspondant au compte de base de données.
-
-
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 Add the IP address CIDR blocks of DTS servers to a whitelist.
Si la base de données source ou de destination est une base de données autogérée (où la méthode 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 tâche.
-
Sur la page Configure Objects, configurez les objets à synchroniser.
Parameter
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 base de référence pour la synchronisation incrémentielle des données ultérieure.
ImportantLes types de données sont convertis lors de la synchronisation des données de MySQL vers ApsaraDB for SelectDB. Si vous ne sélectionnez pas Schema Synchronization, vous devez au préalable créer des tables utilisant le modèle Unique ou Duplicate avec le schéma approprié dans l'instance ApsaraDB for SelectDB de destination. Pour plus d'informations, consultez les rubriques Mappages de types de données, Colonnes supplémentaires et Modèles de données.
Processing Mode of Conflicting Tables
-
Precheck and Report Errors : DTS vérifie la présence de tables portant le même nom dans la base de données de destination. En cas de conflit, DTS signale une erreur lors de la pré-vérification et ne démarre pas la tâche.
RemarqueS'il n'est pas possible de supprimer ou de renommer la table en conflit, vous pouvez mapper cette table vers un nom différent. Pour plus d'informations, consultez la rubrique Mapper les noms d'objets.
-
Ignore Errors and Proceed : ignore la vérification des tables portant le même nom dans la base de données de destination.
AvertissementSi vous sélectionnez Ignore Errors and Proceed, des incohérences de données peuvent survenir. Par exemple :
-
Si les schémas de table sont identiques, les enregistrements de destination ayant la même clé primaire ou unique que les enregistrements source sont écrasés.
-
Si les schémas de table sont différents, la tâche peut échouer ou ne synchroniser que partiellement les données. Procédez avec prudence.
-
Capitalization of Object Names in Destination Instance
Vous pouvez configurer la politique de sensibilité à la casse pour les noms d'objets de base de données, de table et de colonne 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 la rubrique 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.RemarqueVous pouvez sélectionner des objets au niveau de la base de données ou de la table.
Selected Objects
-
Pour modifier le nom d'un objet de synchronisation dans l'instance de destination, faites un clic droit sur l'objet dans la zone Selected Objects. Pour plus d'informations, consultez la rubrique Mapper les noms d'objets.
-
Si vous sélectionnez Schema Synchronization pour Synchronization Types, que vous sélectionnez des tables comme objets de synchronisation et que vous devez définir le nombre de buckets (paramètre
bucket_count), faites un clic droit sur la table dans la zone Selected Objects. Dans la section Parameter Settings, définissez Enable Parameter Settings sur Yes, spécifiez une Value selon vos besoins, puis cliquez sur OK.
Remarque-
Pour sélectionner les opérations SQL incrémentielles à synchroniser au niveau de la base de données ou de la table, faites un clic droit sur l'objet dans la zone Selected Objects et sélectionnez les opérations SQL souhaitées dans la boîte de dialogue qui s'affiche.
-
Pour filtrer les données à l'aide d'une clause WHERE, faites un clic droit sur la table dans la zone Selected Objects et définissez les conditions de filtre dans la boîte de dialogue qui s'affiche. Pour plus d'informations, consultez la rubrique Configurer les conditions de filtre.
-
Si vous utilisez la fonctionnalité de mappage des noms d'objets, la synchronisation d'autres objets dépendant de l'objet renommé peut échouer.
-
-
Cliquez sur Next: Advanced Settings pour configurer les paramètres avancés.
Parameter
Description
Dedicated Cluster for Task Scheduling
Par défaut, DTS planifie les tâches sur un cluster partagé et aucune sélection de cluster n'est requise. Pour bénéficier d'une performance plus stable, 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 ?.
Retry Time for Failed Connections
Une fois la tâche de synchronisation lancée, si la connexion à la base de données source ou de destination échoue, DTS signale une erreur et tente immédiatement de rétablir la connexion. La durée de nouvelle tentative par défaut est de 720 minutes. Vous pouvez également spécifier une durée personnalisée comprise entre 10 et 1 440 minutes. Il est recommandé de définir une durée d'au moins 30 minutes. Si DTS parvient à se reconnecter à la base de données dans le délai imparti, la tâche de synchronisation reprend automatiquement. Dans le cas contraire, la tâche échoue.
Remarque-
Si plusieurs instances DTS (par exemple, l'instance A et l'instance B) partagent la même source ou la même destination, et que vous configurez une durée de nouvelle tentative réseau de 30 minutes pour l'instance A et de 60 minutes pour l'instance B, c'est la durée la plus courte (30 minutes) qui s'applique aux deux.
-
Étant donné que DTS facture le temps d'exécution des tâches pendant la période de nouvelle tentative de connexion, il est conseillé d'adapter la durée de nouvelle tentative à 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 lors de l'exécution de commandes DDL ou DML), DTS signale une erreur et lance immédiatement des tentatives continues. La durée de nouvelle tentative par défaut est de 10 minutes. Vous pouvez également personnaliser cette durée entre 1 et 1 440 minutes. Il est recommandé de la fixer à au moins 10 minutes. Si les opérations concernées aboutissent dans le délai de nouvelle tentative défini, la tâche de synchronisation reprend automatiquement. Sinon, la tâche échoue.
ImportantLa valeur définie pour Retry Time for Other Issues doit être inférieure à celle de Retry Time for Failed Connections.
Enable Throttling for Full Data Synchronization
Lors de la phase de synchronisation complète, DTS consomme des ressources en lecture et en écriture sur les bases de données source et de destination, ce qui peut augmenter leur charge. Pour réduire cette charge, vous pouvez limiter le débit de 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 débit de synchronisation complète une fois l'instance de synchronisation en cours d'exécution.
Enable Throttling for Incremental Data Synchronization
Il est également possible de limiter le débit de la tâche de synchronisation incrémentielle. Pour alléger la pression sur la base de données de destination, configurez les paramètres RPS of Incremental Data Synchronization et Data synchronization speed for incremental synchronization (MB/s).
Environment Tag
Sélectionnez un tag d'environnement pour identifier l'instance selon vos besoins. Aucun tag n'est requis dans cet exemple.
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks
Indiquez si les informations SQL de heartbeat doivent être écrites 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 entraîner un retard signalé par l'instance DTS.
-
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 d'activer ou non la fonctionnalité Extract, Transform, 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 l'ETL dans une tâche de migration ou de synchronisation des données.
-
No : Désactive la fonctionnalité ETL.
Monitoring and Alerting
Spécifiez si vous souhaitez configurer des alertes. En cas d'échec de la synchronisation ou si la latence dépasse le seuil défini, une notification est envoyée au 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.
-
-
Facultatif : Une fois les configurations précédentes terminées, cliquez sur Next: Configure Database and Table Fields pour définir la Primary Key Column, la Distribution Key et le Engine des tables de destination.
RemarqueCette étape est disponible uniquement si vous sélectionnez Schema Synchronization pour les Synchronization Types lors de la configuration des objets de synchronisation. Vous pouvez définir le paramètre Definition Status sur All pour modifier les paramètres.
Vous pouvez sélectionner plusieurs colonnes pour former une Primary Key Column composite. Vous devez également sélectionner une ou plusieurs colonnes issues de la Primary Key Column comme Distribution Key.
Pour une table sans clé primaire ni contrainte d'unicité, vous devez sélectionner duplicate pour le Engine. Sinon, la tâche peut échouer ou entraîner une perte de données.
-
-
Enregistrez la tâche et exécutez une vérification préalable.
Pour afficher les paramètres API de configuration de cette instance, placez le curseur sur le bouton Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters dans l'infobulle qui s'affiche.
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 effectue une vérification préalable. La tâche ne peut démarrer que si tous les éléments de vérification réussissent.
Si la vérification préalable échoue, cliquez sur View Details pour l'élément ayant échoué. Corrigez le problème selon les instructions, puis relancez la vérification préalable.
-
Si la vérification préalable 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 résoudre le problème, puis relancez la vérification préalable.
Pour les éléments de vérification pouvant être ignorés, vous pouvez cliquer successivement sur Confirm Alert Details, Ignore, OK et Precheck Again afin d'ignorer l'avertissement et de relancer la vérification préalable. Si vous choisissez de masquer l'élément d'avertissement, cela peut provoquer des problèmes tels qu'une incohérence des données et présenter des risques pour votre activité.
-
Achetez l'instance.
Lorsque le taux de réussite affiché dans Success Rate atteint 100 %, cliquez sur Next: Purchase Instance.
-
Sur la page Purchase, choisissez la méthode de facturation et les spécifications du lien pour l'instance de synchronisation des données. Le tableau ci-dessous détaille ces paramètres.
Catégorie
Paramètre
Description
New Instance Class
Méthode de facturation
-
Abonnement : le paiement s'effectue 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 horaire. Cette formule répond aux besoins ponctuels. Vous pouvez libérer l'instance dès la fin de son utilisation afin de maîtriser les coûts.
Configuration du groupe de ressources
Groupe de ressources auquel l'instance est associée. La valeur par défaut est « default resource group ». Pour en savoir plus, consultez Qu'est-ce que Resource Management ?.
Spécification du lien
DTS propose plusieurs niveaux de performance pour les liens de synchronisation. Les spécifications choisies influent directement sur le débit de synchronisation. Adaptez votre sélection à vos besoins métier. Consultez la rubrique Spécifications des liens de synchronisation des données pour plus de détails.
Durée de l'abonnement
En mode abonnement, indiquez la durée et le nombre d'instances souhaités. Vous pouvez opter pour un engagement mensuel (de 1 à 9 mois) ou annuel (1, 2, 3 ou 5 ans).
RemarqueCette option n'apparaît que si la méthode de facturation définie est Subscription.
-
Une fois la configuration terminée, prenez connaissance des conditions d'utilisation et cochez la case Data Transmission Service (Pay-as-you-go) Service Terms.
-
Cliquez sur Buy and Start. Dans la boîte de dialogue OK, sélectionnez OK.
Vous pouvez suivre l'avancement de la tâche depuis la page Data Synchronization.
Mappage des types de données
|
Catégorie |
Type MySQL |
Type SelectDB |
|
NUMÉRIQUE |
TINYINT |
TINYINT |
|
TINYINT UNSIGNED |
SMALLINT |
|
|
SMALLINT |
SMALLINT |
|
|
SMALLINT UNSIGNED |
INT |
|
|
MEDIUMINT |
INT |
|
|
MEDIUMINT UNSIGNED |
BIGINT |
|
|
INT |
INT |
|
|
INT UNSIGNED |
BIGINT |
|
|
BIGINT |
BIGINT |
|
|
BIGINT UNSIGNED |
LARGEINT |
|
|
BIT(M) |
INT |
|
|
DECIMAL |
DECIMAL Remarque
ZEROFILL n'est pas pris en charge. |
|
|
NUMERIC |
Decimal |
|
|
FLOAT |
FLOAT |
|
|
DOUBLE |
DOUBLE |
|
|
BOOLEAN |
|
|
DATE ET HEURE |
DATE |
DATEV2 |
|
DATETIME[(fsp)] |
DATETIMEV2 |
|
|
TIMESTAMP[(fsp)] |
DATETIMEV2 |
|
|
TIME[(fsp)] |
VARCHAR |
|
|
YEAR[(4)] |
INT |
|
|
CHAÎNE DE CARACTÈRES |
|
VARCHAR Important
Pour éviter toute perte de données, les données CHAR et VARCHAR(n) sont converties en VARCHAR(4*n) lors de la synchronisation vers l'instance ApsaraDB for SelectDB de destination.
|
|
STRING |
|
|
STRING |
|
|
STRING |
|
|
ENUM |
STRING |
|
|
SET |
STRING |
|
|
JSON |
STRING |
Colonnes supplémentaires
Ce tableau répertorie les colonnes supplémentaires que DTS ajoute automatiquement ou que vous devez ajouter manuellement à la table de modèle en double de destination.
|
Parameter |
Type |
Default |
Description |
|
_is_deleted |
Int |
0 |
Indique si la ligne est supprimée.
|
|
_version |
Bigint |
0 |
|
|
_record_id |
Bigint |
0 |
|