Cette rubrique décrit comment synchroniser les données d'un locataire MySQL d'OceanBase Database vers une base de données AnalyticDB for MySQL, un entrepôt de données cloud-native.
Contexte
Pour obtenir des informations de base sur AnalyticDB for MySQL, consultez la rubrique Types de données de base.
Pour en savoir plus sur la création de tables, les tables partitionnées et les tables distribuées dans AnalyticDB for MySQL, consultez la rubrique CREATE TABLE.
Prérequis
Le service de transmission de données dispose des privilèges nécessaires pour accéder aux ressources cloud. Pour plus d'informations, consultez la rubrique Accorder des privilèges aux rôles pour la transmission de données.
Vous avez créé un utilisateur de base de données dédié à la synchronisation des données dans la base de données OceanBase source et lui avez accordé les privilèges correspondants. Pour plus d'informations, consultez la rubrique Créer un utilisateur de base de données.
Limites
Le service de transmission de données prend en charge AnalyticDB for MySQL V3.0.
Le service de transmission de données ne prend en charge la synchronisation d'un objet que si les conditions suivantes sont remplies : le nom de la base de données, le nom de la table et le nom de la colonne de l'objet sont encodés en ASCII et ne contiennent aucun caractère spécial. Les caractères spéciaux incluent les sauts de ligne, les espaces ainsi que les caractères suivants : . | " ' ` ( ) = ; / & \.
Considérations
Si la source est OceanBase Database dans une version comprise entre V4.0.0 et V4.3.x (à l'exception de V4.2.5 BP1) et que vous avez sélectionné la synchronisation incrémentielle, vous devez spécifier l'attribut STORED pour une colonne générée. Si vous ne spécifiez pas cet attribut, aucune information concernant la colonne générée n'est stockée dans les journaux incrémentiels, ce qui peut entraîner des erreurs de données lors de la synchronisation incrémentielle.
-
Si les horloges des nœuds ou celles du client et du serveur ne sont pas synchronisées, la latence peut être inexacte pendant la synchronisation incrémentielle.
Par exemple, si l'horloge avance par rapport à l'heure standard, la latence peut être négative. Si elle retarde par rapport à l'heure standard, la latence peut être positive.
-
Lorsque vous synchronisez les données d'un locataire MySQL d'OceanBase Database vers une base de données AnalyticDB for MySQL, les index sont gérés comme suit :
Lorsqu'une table avec une clé primaire est synchronisée, supprimez tous les index à l'exception de l'index de clé primaire.
Lorsqu'une table sans clé primaire mais avec des index uniques non null est synchronisée, utilisez le premier index unique non null comme clé primaire et supprimez tous les autres index.
Les tables dépourvues de clés primaires ou d'index uniques non null ne peuvent pas être synchronisées.
-
Si le type TIMESTAMP est utilisé dans la source ou la destination et que l'heure se situe dans la plage de l'heure d'été (DST), les données de la source et de la destination peuvent être incohérentes avec un écart d'une heure, en raison des différences de traitement des formats horaires entre la source et la destination.
Par exemple, si TIMEZONE est défini sur +8:00 pour la source ou la destination, les résultats de requête dans le locataire MySQL d'OceanBase Database ne tiennent pas compte de l'heure d'été, tandis que ceux d'AnalyticDB for MySQL en tiennent compte. Les données d'AnalyticDB for MySQL ont alors une heure d'avance sur celles du locataire MySQL d'OceanBase Database.
-
Si vous ne sélectionnez que Incremental Synchronization lors de la création de la tâche de synchronisation des données, le service de transmission de données exige que les journaux incrémentiels locaux de la base de données source soient conservés pendant au moins 48 heures.
Si vous sélectionnez Full Synchronization et Incremental Synchronization lors de la création de la tâche de synchronisation des données, le service de transmission de données exige que les journaux incrémentiels locaux de la base de données source soient conservés pendant au moins sept jours. Sinon, la tâche de synchronisation des données risque d'échouer ou les données des bases de données source et cible peuvent devenir incohérentes, car le service de transmission de données ne peut pas récupérer les journaux incrémentiels.
Si la base de données source ou cible contient des objets de table qui ne diffèrent que par la casse, les résultats de la migration des données peuvent ne pas être conformes aux attentes en raison de l'insensibilité à la casse dans la base de données source ou cible.
Types d'instances source et cible pris en charge
Dans le tableau suivant, OB_MySQL désigne le locataire MySQL d'OceanBase Database.
|
Source |
Cible |
|
OB_MySQL (instance de cluster OceanBase) |
AnalyticDB MySQL |
|
OB_MySQL (instance serverless) |
AnalyticDB MySQL |
Mappages de types de données
|
Type de données dans un locataire MySQL d'OceanBase Database |
Type de données dans AnalyticDB for MySQL V3.0 |
|
BIGINT |
BIGINT |
|
BINARY |
VARBINARY |
|
BIT |
VARBINARY |
|
BLOB |
VARBINARY |
|
CHAR |
VARCHAR |
|
DATE |
DATE |
|
DATETIME |
DATETIME |
|
DECIMAL |
DECIMAL(p,s) p : 1 à 1000, s <= p |
|
DOUBLE |
DOUBLE |
|
ENUM |
VARCHAR |
|
FLOAT |
FLOAT |
|
INT |
INT |
|
INTEGER |
INT |
|
LONGBLOB |
VARBINARY |
|
LONGTEXT |
VARCHAR |
|
MEDIUMBLOB |
VARBINARY |
|
MEDIUMTEXT |
VARCHAR |
|
NUMERIC |
DECIMAL |
|
SET |
VARCHAR |
|
SMALLINT |
SMALLINT |
|
TEXT |
VARCHAR |
|
TIME |
TIME |
|
TIMESTAMP |
TIMESTAMP |
|
TINYBLOB |
VARBINARY |
|
TINYINT |
TINYINT |
|
TINYTEXT |
VARCHAR |
|
VARBINARY |
VARBINARY |
|
VARCHAR |
VARCHAR |
|
YEAR |
BIGINT |
Procédure
-
Connectez-vous à la console de gestion OceanBase et achetez une tâche de synchronisation des données.
Pour plus d'informations, consultez la rubrique Acheter une tâche de synchronisation des données.
-
Dans la console Data Transmission Service, accédez à la page Data Synchronization, localisez la nouvelle tâche de synchronisation, puis cliquez sur Configure.

Si vous souhaitez réutiliser les configurations d'une tâche existante, cliquez sur Reuse Configuration. Pour plus d'informations, consultez la rubrique Réutiliser et effacer les configurations d'une tâche de synchronisation des données.
-
Sur la page Select Source and Target, configurez les paramètres.
Paramètre
Description
Nom de la tâche de synchronisation
Nous vous recommandons de définir une combinaison de chiffres et de lettres. Le nom ne doit contenir aucun espace et ne peut pas dépasser 64 caractères.
Source
Si vous avez déjà créé une source de données OceanBase, sélectionnez-la dans la liste déroulante. Sinon, cliquez sur New Data Source dans la liste déroulante et créez-en une dans la boîte de dialogue qui s'affiche à droite. Pour plus d'informations sur les paramètres, consultez la rubrique Créer une source de données OceanBase.
Cible
Si vous avez déjà créé une source de données AnalyticDB for MySQL, sélectionnez-la dans la liste déroulante. Sinon, cliquez sur New Data Source dans la liste déroulante et créez-en une dans la boîte de dialogue qui s'affiche à droite. Pour plus d'informations, consultez la rubrique Créer une source de données ADB.
Tag (facultatif)
Sélectionnez un tag cible dans la liste déroulante. Vous pouvez également cliquer sur Manage Tags pour créer, modifier et supprimer des tags. Pour plus d'informations, consultez la rubrique Utiliser des tags pour gérer les tâches de synchronisation des données.
-
Cliquez sur Next. Sur la page Select Synchronization Type, spécifiez les types de synchronisation pour la tâche de synchronisation des données actuelle.

Les types de synchronisation pris en charge sont Schema Synchronization, Full Synchronization et Incremental Synchronization. L'option Incremental Synchronization prend en charge les options DML Synchronization et DDL Synchronization. Les opérations DML prises en charge sont INSERT, DELETE et UPDATE. Sélectionnez les options selon vos besoins. Pour plus d'informations, consultez la rubrique Configurer la synchronisation DDL/DML. Pour connaître les opérations DDL prises en charge, consultez la rubrique Opérations DDL prises en charge pour la synchronisation.
-
Cliquez sur Next. Sur la page Select Synchronization Objects, sélectionnez les objets à synchroniser dans la tâche de synchronisation des données actuelle.
Vous pouvez utiliser l'option Specify Objects ou Match Rules pour spécifier les objets de synchronisation. Cette rubrique explique comment spécifier les objets de synchronisation à l'aide de l'option Specify Objects. Pour savoir comment configurer les règles de correspondance, consultez la section « Modèles génériques pour la migration/synchronisation de données entre bases de données » de la rubrique Configurer et modifier les règles de correspondance.
ImportantLe nom d'une table à synchroniser, ainsi que les noms des colonnes de cette table, ne doivent pas contenir de caractères chinois.
Si un nom de base de données ou de table contient un double signe dollar ($$), vous ne pouvez pas créer la tâche de synchronisation.
Si vous avez sélectionné DDL Synchronization à l'étape Select Synchronization Type, nous vous recommandons de sélectionner les objets de synchronisation à l'aide de l'option Match Rules. Cela garantit que tous les nouveaux objets répondant aux règles de correspondance sont synchronisés. Si vous avez sélectionné les objets de synchronisation à l'aide de l'option Specify Objects, les objets nouveaux ou renommés ne seront pas synchronisés.

Dans la section Select Synchronization Objects, sélectionnez Specify Objects.
Dans la section Select Synchronization Scope, sélectionnez les objets à synchroniser dans la liste Source Object(s). Vous pouvez sélectionner les tables d'une ou plusieurs bases de données comme objets de synchronisation.
Cliquez sur > pour les ajouter à la liste Target Object(s).
Le service de transmission de données vous permet d'importer des objets via du texte. Il vous permet également de renommer des objets, de définir des filtres de lignes et de supprimer un objet unique ou tous les objets.
RemarqueLorsque vous sélectionnez Match Rules pour spécifier les objets de synchronisation, le renommage des objets est effectué selon la syntaxe des règles de correspondance spécifiées. Dans la zone d'opération, vous pouvez uniquement définir des conditions de filtrage et sélectionner les colonnes de fragmentation ainsi que les colonnes à synchroniser. Pour plus d'informations, consultez la rubrique Configurer et modifier les règles de correspondance.
Opération
Description
Importer des objets
Dans la liste de droite, cliquez sur Import Objects dans le coin supérieur droit.
Dans la boîte de dialogue qui s'affiche, cliquez sur OK.
ImportantCette opération écrasera les sélections précédentes. Agissez avec prudence.
Dans la boîte de dialogue Import Synchronization Objects, importez les objets à synchroniser.
Vous pouvez importer des fichiers CSV pour renommer des bases de données ou des tables et définir des conditions de filtrage de lignes. Pour plus d'informations, consultez la rubrique Télécharger et importer les paramètres des objets de synchronisation.
Cliquez sur Validate.
Après avoir importé les objets de synchronisation, vérifiez leur validité. Le mappage des champs de colonnes n'est pas pris en charge.
Une fois la validation réussie, cliquez sur OK.
Renommer des objets
Le service de transmission de données vous permet de renommer les objets de synchronisation. Pour plus d'informations, consultez la rubrique Renommer une table de base de données.
Configurer les paramètres
Vous pouvez utiliser la clause
WHEREpour filtrer et sélectionner les colonnes à synchroniser, ainsi que pour définir les colonnes de clé primaire, les clés de distribution et les clés de partitionnement.Dans la liste de droite, survolez l'objet que vous souhaitez configurer.
Cliquez sur Settings.
Dans la boîte de dialogue Settings, vous pouvez effectuer les opérations suivantes :
Spécifiez une clause
WHERESQL standard pour filtrer les données par ligne. Pour plus d'informations, consultez la rubrique Utiliser des conditions SQL pour filtrer les données.Définissez la colonne de clé primaire.
Par défaut, la colonne de clé primaire de la table actuelle s'affiche. Plusieurs colonnes de clé primaire sont prises en charge. Vous pouvez supprimer la colonne de clé primaire actuelle et en définir une nouvelle en sélectionnant la colonne dans la liste déroulante ou en la recherchant dans la zone de recherche. Plusieurs colonnes de clé primaire sont prises en charge.
(Facultatif) Définissez les clés de distribution.
Définissez les clés de partitionnement. Pour définir une clé de partitionnement, procédez comme suit :
Saisissez une expression dans le champ Partition Key Expression, par exemple
PARTITION BY VALUE('id').Définissez le cycle de vie de la table, utilisé pour gérer les partitions. Une fois le cycle de vie de la table défini, les partitions sont triées et seules les N premières partitions sont conservées.
Cliquez sur OK.
Supprimer un ou tous les objets
Le service de transmission de données vous permet de supprimer un ou tous les objets de synchronisation ajoutés à la liste de droite lors du mappage des données.
Supprimer un seul objet de synchronisation
Dans la liste de droite, survolez l'objet que vous souhaitez supprimer, puis cliquez sur Remove pour supprimer l'objet de synchronisation.
Supprimer tous les objets de synchronisation
Dans la liste de droite, cliquez sur Remove All dans le coin supérieur droit. Dans la boîte de dialogue qui s'affiche, cliquez sur OK pour supprimer tous les objets de synchronisation.
-
Cliquez sur Next. Sur la page Synchronization Options, configurez les paramètres.
-
Synchronisation complète
Les paramètres suivants s'affichent uniquement si vous sélectionnez Full Synchronization sur la page Choose Sync Type.

Paramètre
Description
Concurrence en lecture
Ce paramètre spécifie le nombre de threads simultanés pour la lecture des données depuis la source pendant la synchronisation complète. La valeur maximale est 512. Une concurrence élevée peut augmenter la charge sur la base de données source et affecter votre activité.
Concurrence en écriture
Ce paramètre spécifie le nombre de threads simultanés pour l'écriture des données dans la destination pendant la synchronisation complète. La valeur maximale est 512. Une concurrence élevée peut augmenter la charge sur la base de données de destination et affecter votre activité.
Limite de débit de synchronisation complète
Vous pouvez activer la limite de débit de synchronisation complète selon vos besoins. Si vous l'activez, définissez les valeurs RPS et BPS. RPS correspond au nombre maximal de lignes de données pouvant être synchronisées vers la destination par seconde pendant la synchronisation complète. BPS correspond au volume maximal de données pouvant être synchronisé vers la destination par seconde pendant la synchronisation complète.
RemarqueLes paramètres RPS et BPS servent uniquement de capacité de limitation de débit. Les performances réelles de la synchronisation complète dépendent de facteurs tels que la source, la destination et les spécifications de l'instance.
Politique pour les enregistrements existants dans la table de destination
Sélectionnez Ignore : si des données existent dans la table de destination et qu'un conflit survient entre les données existantes et les données en cours d'écriture, Data Transmission Service consigne le conflit et conserve les données existantes.
ImportantSi vous sélectionnez Ignore, la validation complète extrait les données en mode IN. Ce mode ne permet pas de valider les scénarios où des données supplémentaires existent dans la destination, et les performances de validation sont quelque peu dégradées.
Sélectionnez la valeur par défaut Stop Migration : si des données existent dans la table de destination, une erreur est signalée pour la migration complète. Vous devez traiter les données dans la destination avant de pouvoir poursuivre la migration.
ImportantSi une erreur se produit et que vous cliquez sur Resume, Data Transmission Service ignore ce paramètre et continue à migrer les données de la table. Agissez avec prudence.
-
Synchronisation incrémentielle
Les paramètres suivants s'affichent uniquement si vous sélectionnez Incremental Synchronization sur la page Choose Synchronization Types.

Paramètre
Description
Concurrence en écriture
Ce paramètre spécifie le nombre de threads simultanés pour l'écriture des données dans la destination pendant la synchronisation incrémentielle. La valeur maximale est 512. Une concurrence élevée peut exercer une pression excessive sur la destination et affecter votre activité.
Limite de débit de synchronisation incrémentielle
Vous pouvez décider d'activer ou non la limite de débit de synchronisation incrémentielle selon vos besoins. Si vous l'activez, définissez les valeurs RPS (nombre maximal de lignes de données pouvant être synchronisées vers la destination par seconde pendant la synchronisation incrémentielle) et BPS (volume maximal de données pouvant être synchronisé vers la destination par seconde pendant la synchronisation incrémentielle).
RemarqueLes valeurs RPS et BPS définies ici servent uniquement à la limitation de débit. Les performances réelles de la synchronisation incrémentielle dépendent de facteurs tels que la source, la destination et les spécifications de l'instance.
Décalage de début de synchronisation incrémentielle
Si vous sélectionnez Full Synchronization lors du choix du type de synchronisation, vous ne pouvez pas modifier ce paramètre.
Si vous ne sélectionnez pas Full Synchronization mais que vous sélectionnez Incremental Synchronization lors du choix du type de synchronisation, spécifiez un point dans le temps à partir duquel vous souhaitez synchroniser les données. La valeur par défaut est l'heure système actuelle. Pour plus d'informations, consultez la rubrique Définir le décalage de début pour la synchronisation incrémentielle.
-
-
Cliquez sur Precheck.
À l'étape Precheck, Data Transmission Service vérifie la connectivité entre la source et la destination. Si la prévérification échoue :
Résolvez les problèmes, puis exécutez à nouveau la prévérification.
Vous pouvez également cliquer sur Skip dans la colonne Actions pour un élément de prévérification ayant échoué. Une boîte de dialogue s'affiche et explique l'impact spécifique du fait d'ignorer cette opération. Pour confirmer l'ignorance de l'élément, cliquez sur OK dans la boîte de dialogue.
-
Une fois la prévérification réussie, cliquez sur Start Task.
Si vous n'avez pas besoin de démarrer la tâche immédiatement, cliquez sur Save. Vous pourrez ensuite démarrer la tâche manuellement sur la page Sync Task List ou l'inclure dans une opération par lot. Pour plus d'informations sur les opérations par lot, consultez la rubrique Effectuer des opérations par lot sur les tâches de synchronisation des données.
DTS vous permet de modifier les objets de synchronisation pendant l'exécution d'une tâche de synchronisation des données. Pour plus d'informations, consultez la rubrique Afficher et modifier les objets de synchronisation et leurs conditions de filtrage. Une fois la tâche de synchronisation des données démarrée, elle s'exécute selon les types de synchronisation sélectionnés. Pour plus d'informations, consultez la rubrique Afficher les détails de la synchronisation.
Si une tâche de synchronisation des données échoue, généralement en raison de problèmes de connexion réseau ou d'un démarrage lent du processus, vous pouvez cliquer sur Resume dans la liste des tâches ou sur la page du produit.