Data Transmission Service (DTS) migre les données d'un cluster PolarDB for MySQL vers une base de données Doris auto-gérée, permettant ainsi d'exécuter des charges de travail analytiques à grande échelle sur Doris. Cette rubrique détaille la configuration en utilisant une base de données Doris déployée sur une instance ECS comme destination.
Pour effectuer cette migration :
Accordez les autorisations requises aux comptes de base de données.
Créez une tâche DTS et connectez les bases de données source et de destination.
Sélectionnez les types de migration et les objets.
Exécutez une pré-vérification, achetez une instance DTS et démarrez la migration.
Prérequis
Une base de données Doris de destination est créée. L'espace de stockage disponible de cette base de données doit être supérieur à l'espace de stockage utilisé par le cluster PolarDB for MySQL source.
Pour plus d'informations sur les versions prises en charge des bases de données source et de destination, consultez Présentation des solutions de migration .
Autorisations requises pour les comptes de base de données
Les autorisations requises varient selon les types de migration que vous sélectionnez.
|
Base de données |
Migration du schéma |
Migration complète des données |
Migration incrémentielle des données |
|
Cluster PolarDB for MySQL source |
SELECT |
SELECT |
Autorisations de lecture et d'écriture |
|
Base de données Doris de destination |
Usage_priv, Select_priv, Load_priv, Alter_priv, Create_priv, Drop_priv |
(identique) |
(identique) |
Pour créer et autoriser des comptes de base de données :
Pour un cluster PolarDB for MySQL, consultez Créer et gérer un compte de base de données.
Pour une base de données Doris, consultez Authentification et autorisation.
Facturation
|
Type de migration |
Frais de configuration de liaison |
Coût de transfert de données |
|
Migration du schéma et migration complète des données |
Gratuit |
Gratuit, sauf si la Méthode d'accès pour la destination est définie sur Public IP Address. Consultez Présentation de la facturation. |
|
Migration incrémentielle des données |
Facturé. Consultez Présentation de la facturation. |
— |
Opérations SQL prises en charge pour la migration incrémentielle
|
Type d'opération |
Instructions SQL |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
ADD COLUMN, MODIFY COLUMN, CHANGE COLUMN, DROP COLUMN, DROP TABLE, TRUNCATE TABLE, RENAME TABLE |
Les opérations RENAME TABLE peuvent entraîner une incohérence des données. Si vous sélectionnez une table comme objet de migration et que vous la renommez pendant la migration, les données de cette table ne sont pas migrées vers la destination. Pour éviter cela, sélectionnez la base de données contenant la table comme objet de migration et assurez-vous que les bases de données avant et après le renommage sont incluses dans les objets de migration.
Contraintes et limites
Passez en revue les contraintes suivantes avant de configurer votre tâche de migration.
Limites de la base de données source
Bande passante sortante : le serveur hébergeant la base de données source doit disposer d'une bande passante sortante suffisante. Une bande passante insuffisante réduit la vitesse de migration.
-
Exigences relatives aux tables :
Tables avec clés primaires ou contraintes UNIQUE : assurez-vous que les champs de la table sont uniques pour éviter les données en double dans la destination.
Tables sans clés primaires ni contraintes UNIQUE : lors de la configuration de la tâche, sélectionnez Schema Migration sous Migration Types, puis définissez Engine sur duplicate pour ces tables à l'étape Configurations for Databases, Tables, and Columns. Sinon, la tâche peut échouer ou des données peuvent être perdues.
Limite de mappage de colonnes : si vous mappez des noms de colonnes ou effectuez des modifications par colonne, une seule tâche peut migrer un maximum de 1 000 tables. Pour dépasser cette limite, répartissez les tables sur plusieurs tâches ou migrez la base de données entière sans modifications par colonne.
-
Incremental migration only :
Activez la journalisation binaire et définissez
loose_polar_log_binsuron. Sans cela, la pré-vérification échoue et la tâche ne peut pas démarrer. Consultez Activer la journalisation binaire et Modifier les paramètres. > Note: L'activation de la journalisation binaire sur un cluster PolarDB for MySQL consomme de l'espace de stockage et engendre des frais.Conservez les journaux binaires pendant au moins 3 jours (7 jours recommandés). Une période de rétention plus courte peut empêcher DTS de lire les journaux requis, ce qui peut entraîner une incohérence ou une perte de données — problèmes non couverts par l'accord de niveau de service (SLA) de DTS. Consultez Modifier la période de rétention.
-
Opérations à éviter pendant la migration :
N'effectuez pas d'opérations DDL qui modifient le schéma de la base de données ou de la table pendant la migration du schéma ou la migration complète des données. Cela entraînerait l'échec de la tâche.
Si vous n'effectuez que la migration complète des données (sans incrémentiel), n'écrivez pas de nouvelles données dans la source. Pour maintenir une cohérence en temps réel, sélectionnez conjointement la migration du schéma, la migration complète des données et la migration incrémentielle des données.
Les modifications de données résultant d'opérations non enregistrées dans les journaux binaires, telles que la restauration de sauvegarde physique ou les opérations en cascade, ne sont pas migrées. > Note: Si cela se produit, exécutez à nouveau une migration complète des données lorsque votre activité le permet.
Autres limites
Nœuds en lecture seule : la migration des nœuds en lecture seule depuis le cluster PolarDB for MySQL source n'est pas prise en charge.
Tables externes OSS : la migration des tables externes OSS depuis la source n'est pas prise en charge.
Basculement primaire/secondaire : DTS ne prend pas en charge le basculement primaire/secondaire de la base de données source pendant la migration complète. En cas de basculement, reconfigurez rapidement la tâche.
-
Modèles de table de destination : les données ne peuvent être migrées que vers des tables utilisant le modèle Unique Key ou Duplicate Key dans Doris.
Modèle Duplicate Key : des données en double peuvent apparaître en cas de nouvelle tentative ou de redémarrage, ou si deux opérations DML ou plus sont effectuées sur la même ligne après le démarrage de la tâche. Dédupliquez à l'aide des colonnes supplémentaires (
_is_deleted,_version,_record_id). DTS convertit les instructions UPDATE et DELETE en instructions INSERT pour les tables du modèle Duplicate Key.
Paramètre
bucket_count: seul paramètre configurable dans la zone Selected Objects. Doit être un entier positif. Valeur par défaut : auto.Création de cluster : ne créez pas de clusters dans la base de données Doris de destination pendant la migration. Si cela provoque un échec, redémarrez l'instance de migration pour reprendre.
-
Exigences relatives aux noms d'objets :
Doris prend uniquement en charge les noms de bases de données et de tables commençant par une lettre. Utilisez la fonctionnalité de mappage de nom d'objet pour renommer les objets qui ne satisfont pas à cette exigence.
Si un nom de base de données, de table ou de colonne contient des caractères chinois, utilisez la fonctionnalité de mappage de nom d'objet pour le renommer (par exemple, en équivalent anglais). Sinon, la tâche peut échouer.
Restrictions DDL : les opérations DDL qui modifient simultanément plusieurs colonnes, ou qui modifient successivement la même table, ne sont pas prises en charge.
Nœuds Backend (BE) : n'ajoutez pas de nœuds BE à la base de données Doris de destination pendant la migration. Si cela provoque un échec, redémarrez l'instance de migration pour reprendre.
Fusion multi-tables : lors de la migration des données de plusieurs tables sources vers une seule table de destination, tous les schémas de tables sources doivent être cohérents. Des schémas incohérents peuvent entraîner une incohérence des données ou l'échec de la tâche.
Longueur VARCHAR : dans PolarDB for MySQL,
VARCHAR(M)spécifie la longueur en caractères. Dans Doris,VARCHAR(N)spécifie la longueur en octets. Si vous n'utilisez pas la migration de schéma DTS, définissez la longueur du champ VARCHAR dans Doris à quatre fois la longueur MySQL.-
Outils DDL en ligne :
DTS prend en charge les modifications DDL en ligne effectuées à l'aide de DMS ou gh-ost. DTS migre uniquement les instructions DDL d'origine, pas les données des tables temporaires. Cependant, la table de destination peut être verrouillée pendant ce processus.
DTS ne prend pas en charge les modifications DDL en ligne effectuées à l'aide d'outils tels que pt-online-schema-change sur la source. De telles modifications sur la source peuvent entraîner une perte de données ou l'échec de la tâche.
Impact sur les performances : pendant la migration complète, DTS lit depuis la source et écrit dans la destination, augmentant la charge du serveur de base de données. Exécutez la migration pendant les heures creuses lorsque la charge CPU est inférieure à 30 %.
Fragmentation de l'espace de table : les opérations INSERT concurrentes pendant la migration complète provoquent une fragmentation de la table dans la destination. Après la migration complète, l'espace de table utilisé dans la destination sera plus grand que dans la source.
Écritures concurrentes vers la destination : l'écriture de données provenant d'autres sources vers la destination pendant la migration peut entraîner une incohérence des données.
Table heartbeat : DTS exécute périodiquement
CREATE DATABASE IF NOT EXISTS \test\`` sur la source pour faire avancer le décalage du journal binaire.-
Latence de migration incrémentielle : DTS utilise une politique de synchronisation par lots pour réduire la charge sur la destination. Par défaut, DTS écrit dans un seul objet au maximum toutes les 5 secondes, ce qui entraîne une latence de synchronisation typique inférieure à 10 secondes. Pour réduire la latence, ajustez le paramètre
selectdb.reservoir.timeout.millisecondsdans la console. Plage valide : 1 000–10 000 millisecondes.Une valeur plus petite augmente la fréquence d'écriture, ce qui peut augmenter la charge et le temps de réponse (RT) de la destination et, par conséquent, augmenter la latence de synchronisation. Ajustez en fonction de la charge de la destination.
Récupération d'instance : si une instance DTS échoue, le support technique tente une récupération dans un délai de 8 heures. Pendant la récupération, DTS peut redémarrer l'instance ou ajuster ses paramètres (uniquement les paramètres de l'instance DTS, pas les paramètres de la base de données). Consultez Modifier les paramètres de l'instance pour connaître les paramètres susceptibles d'être modifiés.
La migration de données de type VECTOR n'est pas prise en charge.
Migrer des données de PolarDB for MySQL vers Doris
Étape 1 : Accéder à la page Data Migration
Utilisez l'une des méthodes suivantes pour accéder à la page Data Migration et sélectionnez la région où réside l'instance de migration.
Console DTS
Connectez-vous à la console DTS.console DTS
Dans le volet de navigation de gauche, cliquez sur Data Migration.
Dans le coin supérieur gauche, sélectionnez la région où réside l'instance de migration de données.
Console DMS
Remarque
Les étapes réelles peuvent varier en fonction du mode et de la disposition de la console DMS. Consultez les rubriques Mode simple et Personnaliser la disposition et le style de la console DMS.
Connectez-vous à la console DMS.console DMS
Dans la barre de navigation supérieure, placez le pointeur sur Data + AI > DTS (DTS) > Data Migration.
Dans la liste déroulante située à droite de Data Migration Tasks.
-
Configurez les paramètres de la base de données source et de la base de données de destination décrits dans le tableau suivant.
Catégorie
Paramètre
Description
S.O.
Nom de la tâche
Nom de la tâche DTS. DTS génère automatiquement un nom. Spécifiez un nom descriptif qui facilite l'identification de la tâche. Le nom n'a pas besoin d'être unique.
Base de données source
Sélectionner une connexion existante
Si l'instance est enregistrée auprès de DTS, sélectionnez-la dans la liste déroulante. DTS remplit automatiquement les paramètres ci-dessous. Si elle n'est pas enregistrée, configurez les paramètres manuellement.
Type de base de données
Sélectionnez Create Task.
Méthode d'accès
Sélectionnez PolarDB for MySQL.
Région de l'instance
Sélectionnez la région où réside le cluster PolarDB for MySQL source.
Répliquer les données entre les comptes Alibaba Cloud
Sélectionnez Alibaba Cloud Instance pour utiliser une instance sous le compte Alibaba Cloud actuel.
ID du cluster PolarDB
Sélectionnez l'ID du cluster PolarDB for MySQL source.
Compte de base de données
Saisissez le compte de base de données du cluster source. Consultez la section Autorisations requises pour les comptes de base de données.
Mot de passe de la base de données
Saisissez le mot de passe du compte de base de données.
Chiffrement
Sélectionnez une méthode de connexion. Pour le chiffrement SSL, consultez la rubrique Configurer le chiffrement SSL.
Base de données de destination
Sélectionner une connexion existante
Si l'instance est enregistrée auprès de DTS, sélectionnez-la dans la liste déroulante. DTS remplit automatiquement les paramètres ci-dessous. Si elle n'est pas enregistrée, configurez les paramètres manuellement.
Type de base de données
Sélectionnez Doris.
Méthode d'accès
Sélectionnez Self-managed Database on ECS. Pour les autres types de connexion, consultez la rubrique Préparatifs.
Région de l'instance
Sélectionnez la région où réside la base de données Doris de destination.
ID de l'instance ECS
Sélectionnez l'ID de l'instance ECS sur laquelle la base de données Doris est déployée. Si Doris est déployé sur plusieurs instances ECS (par exemple, des nœuds BE ou Frontend (FE) sur des instances distinctes), ajoutez les blocs CIDR des serveurs DTS aux règles de sécurité de chaque instance ECS.
Numéro de port
Saisissez le port de service de la base de données Doris de destination. Valeur par défaut : 9030.
Compte de base de données
Saisissez le compte de base de données de la base de données Doris de destination. Consultez la section Autorisations requises pour les comptes de base de données.
Mot de passe de la base de données
Saisissez le mot de passe du compte de base de données.
-
Cliquez sur Test Connectivity and Proceed, puis cliquez sur Test Connectivity dans la boîte de dialogue CIDR Blocks of DTS Servers.
Assurez-vous que les blocs CIDR des serveurs DTS sont ajoutés aux paramètres de sécurité des bases de données source et de destination. Consultez la rubrique Ajouter des adresses IP de serveur DTS à une liste d'autorisation .
Étape 3 : Configurer les objets de migration
-
Sur la page Configure Objects et configurez les paramètres suivants.
Paramètre
Description
Dedicated cluster for task scheduling
Par défaut, DTS planifie les tâches sur le cluster partagé. Pour une stabilité accrue, achetez un cluster dédié. Consultez la rubrique Qu'est-ce qu'un cluster dédié DTS ?
Migration Types
Plage de temps pendant laquelle DTS tente de reconnecter la connexion lorsque la source ou la destination est inaccessible après le démarrage de la tâche. Valeurs valides : 10 à 1 440 minutes. Valeur par défaut : 720 minutes. Définissez une valeur supérieure à 30. Si DTS se reconnecte dans ce délai, il reprend la tâche ; sinon, la tâche échoue.<br>
RemarqueSi plusieurs tâches partagent la même source ou la même destination, la valeur spécifiée le plus récemment est prioritaire. DTS facture l'instance pendant les nouvelles tentatives.
Retry time for other issues
Plage de temps pendant laquelle DTS retente les opérations DDL ou DML ayant échoué après le démarrage de la tâche. Valeurs valides : 1 à 1 440 minutes. Valeur par défaut : 10 minutes. Définissez une valeur supérieure à 10.
ImportantCette valeur doit être inférieure à Retry time for failed connections.
Schema Migration
Limite les opérations de lecture et d'écriture pendant la migration complète pour réduire la charge du serveur. Configurez Full Data Migration, Incremental Data Migration et Schema Migration. Disponible uniquement lorsque Full Data Migration est sélectionné.
Processing Mode of Conflicting Tables
Limite les opérations pendant la migration incrémentielle. Configurez Precheck and Report Errors et Ignore Errors and Proceed. Disponible uniquement lorsque Capitalization of object names in destination instance est sélectionné.
DTS default policy
Contrôle si DTS écrit les opérations SQL sur les tables de heartbeat dans la source pendant l'exécution de l'instance.
Source Objects : n'écrit pas les opérations de la table de heartbeat. Une latence peut apparaître sur l'instance DTS.
No : écrit les opérations de la table de heartbeat. Cela peut affecter des fonctionnalités telles que la sauvegarde physique et le clonage de la base de données source.
Selected Objects
(Facultatif) Sélectionnez un tag pour identifier l'instance.
Selected Objects
Indique s'il faut configurer la fonctionnalité Extract, Transform, Load (ETL). Consultez la rubrique Qu'est-ce que l'ETL ?
Enable Parameter Settings : activez ETL et saisissez les instructions de traitement dans l'éditeur de code. Consultez la rubrique Configurer ETL dans une tâche de migration ou de synchronisation de données.
Yes : ignorez la configuration ETL.
Monitoring and alerting
Configure les alertes pour la tâche. Si la tâche échoue ou si la latence de migration dépasse le seuil, les contacts d'alerte sont notifiés.
Schema Migration : aucune alerte.
Next: Advanced Settings : configurez le seuil d'alerte et les paramètres de notification. Consultez la rubrique Configurer la surveillance et les alertes lors de la création d'une tâche DTS.
-
(Facultatif) Cliquez sur Next: Configure Database and Table Fields pour définir la Primary Key Column, la Distribution Key et le Retry time for failed connections pour les tables de destination.
- Cette étape est disponible uniquement si vous avez sélectionné Schema Migration à l'étape précédente. Définissez Queries per second (QPS) to the source database sur RPS of Full Data Migration pour afficher et modifier toutes les tables. - Pour Data migration speed for full migration (MB/s) , sélectionnez une ou plusieurs colonnes pour former une clé primaire composite. Au moins une Full Data Migration doit également être définie comme Enable throttling for incremental data migration . - Pour les tables sans clés primaires ni contraintes UNIQUE, définissez RPS of Incremental Data Migration sur Data migration speed for incremental migration (MB/s) . Sinon, la migration peut échouer ou des données peuvent être perdues.
Étape 4 : Exécuter une pré-vérification et démarrer la migration
-
Cliquez sur Incremental Data Migration.
- Pour afficher les paramètres API pour cette configuration de tâche, placez le pointeur sur Whether to delete SQL operations on heartbeat tables of forward and reverse tasks et cliquez sur Yes . - DTS exécute une pré-vérification avant de démarrer la tâche. La tâche ne démarre qu'après avoir réussi la pré-vérification. - Si la pré-vérification échoue, cliquez sur No à côté de chaque élément ayant échoué, corrigez les problèmes et relancez la pré-vérification. - Si une alerte est déclenchée pendant la pré-vérification : pour les alertes qui ne peuvent pas être ignorées, corrigez le problème et relancez la pré-vérification. Pour les alertes qui peuvent être ignorées, cliquez sur Environment tag > Configure ETL > OK , puis relancez la pré-vérification. Ignorer les alertes peut entraîner une incohérence des données ou exposer votre activité à des risques.
Une fois que le No atteint 100%.
Sur la page No. Dans le message de confirmation, cliquez sur Yes.
Suivez la progression sur la page Data Migration.
Si la tâche ne peut pas migrer les données incrémentielles, elle s'arrête automatiquement. La colonne Status affiche Completed .
Si la tâche migre les données incrémentielles, elle s'exécute en continu et ne s'arrête pas automatiquement. La colonne Engine affiche Schema Migration .
Mappages des types de données
Lorsque DTS migre des données de PolarDB for MySQL vers Doris, les conversions de type suivantes s'appliquent.
Catégorie | Type PolarDB for MySQL | Type Doris | Notes |
Entier | TINYINT | TINYINT | |
TINYINT UNSIGNED | SMALLINT | Les types non signés sont promus au type signé suivant pour éviter les dépassements. | |
SMALLINT | SMALLINT | ||
SMALLINT UNSIGNED | INT | ||
MEDIUMINT | INT | ||
MEDIUMINT UNSIGNED | BIGINT | ||
INT | INT | ||
INT UNSIGNED | BIGINT | ||
BIGINT | BIGINT | ||
BIGINT UNSIGNED | LARGEINT | ||
BIT(M) | INT | ||
Décimal | DECIMAL | DECIMAL | ZEROFILL n'est pas pris en charge. |
NUMERIC | DECIMAL | ||
FLOAT | FLOAT | ||
DOUBLE | DOUBLE | ||
BOOL / BOOLEAN | BOOLEAN | ||
Date et heure | DATE | DATEV2 | |
DATETIME[(fsp)] | DATETIMEV2 | ||
TIMESTAMP[(fsp)] | DATETIMEV2 | ||
TIME[(fsp)] | VARCHAR | Doris ne dispose pas de type TIME natif. | |
YEAR[(4)] | INT | ||
Chaîne | CHAR / VARCHAR | VARCHAR | Important Pour éviter toute perte de données, CHAR et VARCHAR(n) sont convertis en VARCHAR(4×n). Si aucune longueur n'est spécifiée, la valeur par défaut est VARCHAR(65533). Les données dépassant 65 533 caractères sont converties en STRING. |
BINARY / VARBINARY | STRING | ||
TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT | STRING | ||
TINYBLOB / BLOB / MEDIUMBLOB / LONGBLOB | STRING | ||
ENUM | STRING | ||
SET | STRING | ||
JSON | STRING |
Informations supplémentaires sur les colonnes
Pour les tables utilisant le modèle de clé Duplicate Key, DTS ajoute automatiquement les colonnes suivantes aux tables de destination. Utilisez ces colonnes pour dédupliquer les données.
|
Nom de la colonne |
Type de données |
Valeur par défaut |
Description |
|
|
INT |
0 |
Indique si la ligne est supprimée. INSERT et UPDATE définissent cette valeur sur Definition Status ; DELETE la définit sur All. |
|
|
BIGINT |
0 |
Pour la migration complète des données : 0. Pour la migration incrémentielle des données : l'horodatage en secondes issu du journal binaire source. |
|
|
BIGINT |
0 |
Pour la migration complète des données : 0. Pour la migration incrémentielle des données : l'ID d'enregistrement unique et auto-incrémenté de l'entrée de journal incrémentielle. |