ApsaraDB for ClickHouse est une base de données columnaire conçue pour le traitement analytique en ligne (OLAP). Elle permet d'effectuer des analyses agrégées et des requêtes rapides sur de larges tables. Sa vitesse est supérieure d'un ordre de grandeur à celle des autres bases de données analytiques. Vous pouvez utiliser Data Transmission Service (DTS) pour synchroniser les données d'une base de données MySQL, telle qu'une base de données MySQL autogérée ou une instance ApsaraDB RDS for MySQL, vers un cluster ApsaraDB for ClickHouse. Cela vous aide à centraliser vos données pour l'analyse. Cette rubrique utilise une instance RDS MySQL comme exemple pour démontrer comment synchroniser ses données vers un cluster ApsaraDB for ClickHouse.
Prérequis
Vous avez créé un cluster ApsaraDB for ClickHouse de destination exécutant la version 20.8 ou ultérieure. Pour plus d'informations, consultez la rubrique Créer un cluster.
L'espace de stockage du cluster ApsaraDB for ClickHouse doit être supérieur à l'espace de stockage utilisé par l'instance RDS MySQL source.
Limitations
Type | Description |
Limitations de la base de données source |
|
Autres limitations |
|
Autres remarques |
|
Facturation
|
Type de synchronisation |
Tarification |
|
Synchronisation du schéma et synchronisation complète des données |
Gratuit. |
|
Synchronisation incrémentielle des données |
Payant. Pour plus d'informations, consultez la rubrique Présentation de la facturation. |
Opérations SQL prises en charge
Type d'opération | Instruction SQL |
DML | INSERT, UPDATE, DELETE |
DDL |
|
Mappages de types de données
Étant donné que MySQL et les clusters ApsaraDB for ClickHouse prennent en charge différents types de données, un mappage un-à-un n'est pas possible. Lorsque DTS effectue la synchronisation initiale du schéma, il mappe les types de données en fonction des types pris en charge par la base de données de destination. Pour plus d'informations, consultez la rubrique Mappages de types de données pour la synchronisation initiale du schéma.
Autorisations des comptes de base de données
Base de données | Autorisations requises | Méthode de création et d'autorisation |
Source RDS MySQL | Autorisations de lecture sur les objets à synchroniser. | |
Cluster ApsaraDB for ClickHouse de destination |
| Gestion des comptes de l'édition compatible avec la communauté |
Si le compte de base de données source que vous utilisez n'a pas été créé et autorisé via la console RDS MySQL, assurez-vous que le compte 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 Data Transmission Service (DTS) console.
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 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.
Catégorie
Configuration
Description
Aucun
Data Synchronization
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.
Data Synchronization Tasks
Create Task
-
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é Task Name.
-
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.
Source Database
Sélectionnez Select Existing Connection.
Access Method
Sélectionnez Database Type.
MySQL
Sélectionnez la région où réside l'instance RDS MySQL source.
Replicate Data Across Alibaba Cloud Accounts
Cet exemple illustre la synchronisation au sein du même compte Alibaba Cloud. Sélectionnez Alibaba Cloud Instance.
Instance Region
Sélectionnez l'ID de l'instance RDS MySQL source.
Database Account
Saisissez le compte de base de données de l'instance RDS MySQL source. Pour obtenir des informations sur les exigences en matière d'autorisations, consultez Autorisations du compte de base de données.
No
Saisissez le mot de passe correspondant au compte de base de données.
RDS Instance ID
Sélectionnez Non-encrypted ou Database Password selon vos besoins. Si vous sélectionnez Encryption, vous devez activer le chiffrement SSL pour l'instance RDS for MySQL au préalable. Pour plus d'informations, consultez Utiliser un certificat cloud pour activer rapidement le chiffrement SSL.
Non-encrypted
SSL-encrypted
-
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.
Destination Database
Sélectionnez Select Existing Connection.
Select a DMS database instance.
Sélectionnez Database Type.
ClickHouse
Sélectionnez la région où réside le cluster ApsaraDB for ClickHouse de destination.
Access Method
Cet exemple illustre la synchronisation au sein du même compte Alibaba Cloud. Sélectionnez Alibaba Cloud Instance.
Instance Region
Sélectionnez le type de cluster ApsaraDB for ClickHouse selon vos besoins.
Replicate Data Across Alibaba Cloud Accounts
Sélectionnez l'ID du cluster ApsaraDB for ClickHouse de destination.
No
Saisissez le compte de base de données du cluster ApsaraDB for ClickHouse de destination. Pour obtenir des informations sur les exigences en matière d'autorisations, consultez Autorisations du compte de base de données.
Cluster Type
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 plages CIDR des adresses IP des serveurs DTS sont ajoutées 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 Ajouter les plages 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 autogérée (où 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 Cluster ID, configurez les objets à synchroniser.
Configuration
Description
Database Account
Database Password est sélectionné. Par défaut, vous devez également sélectionner Test Connectivity and Proceed et Access Method. Une fois la vérification préalable 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 ultérieure.
Alibaba Cloud Instance
-
Test Connectivity : vérifie si une table portant le même nom existe dans la base de données de destination. Si aucune table du même nom n'existe, la vérification préalable réussit. Si une table du même nom existe, la vérification préalable é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 Map table and column names.
-
CIDR Blocks of DTS Servers : ignore la vérification des noms de tables en double dans la base de données de destination.
AvertissementLa sélection de l'option Configure Objects peut entraîner 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 de la base de données de destination possède la même valeur de clé primaire ou de clé unique qu'un enregistrement de 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 de la base de données de destination.
-
-
Si les schémas de table diffèrent, la synchronisation initiale des données peut échouer. Cela peut entraîner la synchronisation partielle des données de colonne ou un échec complet de la synchronisation. Procédez avec prudence.
-
Synchronization Types
Vous pouvez configurer la politique de sensibilité à la casse pour les noms d'objets de base de données, de tables et de colonnes synchronisés vers l'instance de destination. Par défaut, la stratégie Incremental Data Synchronization est sélectionnée. Vous pouvez également choisir d'utiliser les stratégies par défaut des bases de données source et de destination. Pour plus d'informations, consultez Case sensitivity policy for destination object names.
Schema Synchronization
Dans la zone Full Data Synchronization, cliquez sur un objet à synchroniser, puis cliquez sur
pour le déplacer vers la zone Processing Mode of Conflicting Tables.RemarqueVous pouvez sélectionner des objets à synchroniser au niveau de la base de données ou de la table.
Precheck and Report Errors
-
Pour renommer un seul objet de synchronisation dans l'instance de destination, faites un clic droit sur l'objet dans la zone Ignore Errors and Proceed. Pour plus d'informations sur le renommage des objets, consultez Map a single database, table, or column.
-
Pour modifier les noms de plusieurs objets de synchronisation dans l'instance de destination par lot, cliquez sur Ignore Errors and Proceed dans le coin supérieur droit de la zone Capitalization of Object Names in Destination Instance. Pour plus d'informations, consultez Map databases, tables, and columns in a batch.
RemarquePour filtrer les données, vous pouvez faire un clic droit sur la table à synchroniser dans la zone Source Objects et définir les conditions de filtrage dans la boîte de dialogue. Pour plus d'informations, consultez Set filter conditions.
Si vous utilisez la fonctionnalité de mappage de noms d'objets, d'autres objets dépendant de l'objet mappé risquent de ne pas être synchronisés.
-
-
Cliquez sur Source Objects pour configurer les paramètres avancés.
Configuration
Description
Selected Objects
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 What is a DTS dedicated cluster?.
Selected Objects
Vous pouvez sélectionner le fuseau horaire pour les données DateTime écrites dans le cluster ApsaraDB for ClickHouse.
Selected Objects
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 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. Nous vous recommandons de définir la durée à 30 minutes ou plus. 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 vous disposez de plusieurs instances DTS (par exemple, l'instance A et l'instance B) partageant la même source ou destination, et que vous définissez la durée de nouvelle tentative réseau à 30 minutes pour l'instance A et à 60 minutes pour l'instance B, la durée la plus courte, soit 30 minutes, sera appliquée aux 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.
Batch Edit
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 concernées aboutissent dans la durée de nouvelle tentative définie, la tâche de synchronisation reprend automatiquement. Dans le cas contraire, la tâche échoue.
ImportantLa valeur de Selected Objects doit être inférieure à celle de Selected Objects.
Selected Objects
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 Next: Advanced Settings, Dedicated Cluster for Task Scheduling et Time zone of destination database.
Remarque-
Cet élément de configuration est disponible uniquement lorsque Retry Time for Failed Connections est défini sur Retry Time for Other Issues.
-
Vous pouvez également ajuster le taux de synchronisation complète une fois l'instance de synchronisation en cours d'exécution.
Retry Time for Other Issues
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 Retry Time for Failed Connections et Enable Throttling for Full Data Synchronization.
Queries per second (QPS) to the source database
Choisissez si vous souhaitez écrire les informations SQL de pulsation dans la base de données source lorsque l'instance DTS est en cours d'exécution.
-
RPS of Full Data Migration : les informations SQL de pulsation ne sont pas écrites dans la base de données source. Cela peut entraîner un retard signalé par l'instance DTS.
-
Data migration speed for full migration (MB/s) : écrit les informations SQL de pulsation 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.
Synchronization Types
Vous pouvez sélectionner un tag d'environnement pour identifier l'instance selon vos besoins. Aucune sélection n'est nécessaire pour cet exemple.
Full Data Synchronization
Choisissez si vous souhaitez activer la fonctionnalité ETL (Extract, Transform, Load). Pour plus d'informations, consultez What is ETL? Valeurs valides :
-
Enable Throttling for Incremental Data Synchronization : active la fonctionnalité ETL. Saisissez les instructions de traitement des données dans l'éditeur de code. Pour plus d'informations, consultez Configure ETL in a data migration or data synchronization task.
-
RPS of Incremental Data Synchronization : désactive la fonctionnalité ETL.
Data synchronization speed for incremental synchronization (MB/s)
Spécifiez si vous souhaitez configurer des alertes. En cas d'échec de la synchronisation ou si la latence dépasse le seuil spécifié, une notification est envoyée à un contact d'alerte.
-
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks : 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 Configure monitoring and alerting during task configuration.
-
-
Cliquez sur No pour configurer le Environment Tag, la Configure ETL, la Yes, la No et la Monitoring and Alerting pour les tables à synchroniser vers ClickHouse.
DTS fournit une configuration par défaut. Vous pouvez définir No sur Yes pour modifier la configuration.
-
Les champs Next: Configure Database and Table Fields et Type peuvent être des clés composites. Vous pouvez sélectionner plusieurs champs dans les listes déroulantes pour définir la Primary Key Column ou la Sort Key. Vous devez également sélectionner une ou plusieurs colonnes de la Distribution Key comme Partition Key. Un seul champ peut être sélectionné comme Definition Status. Pour plus d'informations sur les colonnes de clé primaire, les clés de tri et les clés de partition, consultez CREATE TABLE.
RemarqueLa All est facultative, mais elle ne peut pas être un champ nullable, sinon la tâche de synchronisation échouera.
Seuls les champs de types BIGINT, INT, TIMESTAMP, DATETIME et DATE sont pris en charge comme clés de partition. Pour plus d'informations sur la logique de calcul, consultez Calculation logic for partition keys.
-
Enregistrez la tâche et exécutez une vérification préalable.
Pour afficher les paramètres API permettant de configurer cette instance, placez le curseur sur le bouton Primary Key Column et cliquez sur Sort Key dans l'infobulle.
Une fois que vous avez consulté les paramètres API, cliquez sur Primary Key Column en bas de la page.
RemarqueAvant le démarrage de la tâche de synchronisation, DTS exécute une vérification préalable. La tâche ne peut démarrer qu'après la réussite de tous les éléments de vérification.
Si la vérification préalable échoue, cliquez sur Sort Key pour l'élément ayant échoué. Corrigez le problème comme indiqué, 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 Primary Key Column à côté de l'élément. Suivez les instructions pour corriger 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 Partition Key, Distribution Key, Partition Key et Next: Save Task Settings and Precheck pour ignorer l'avertissement et relancer la vérification préalable. Si vous choisissez de masquer l'élément d'avertissement, cela peut entraîner des problèmes tels que l'incohérence des données et présenter des risques pour votre activité.
-
Achetez l'instance.
Instructions
Read the English to understand WHAT needs to be communicated
Write the French FROM SCRATCH — forget the English sentence structure
Preserve all markdown formatting, code blocks, links, and images exactly
xref tags (
<a data-tag="xref" ...>text</a>) — preserve the ENTIRE tag with all attributes in original order and casing, ONLY translate the visible text between > andApply all language-specific rules strictly
Apply stopword rules with zero tolerance
Use imperative mood in numbered steps and procedural bullet lists
Enforce terminology consistency — same term = same translation everywhere
Vary sentence openers in lists/tables — no opener repeated 3+ times
-
Return ONLY the French markdown document, no explanation
Lorsque le Preview OpenAPI parameters atteint 100 %, cliquez sur Next: Save Task Settings and Precheck.
-
Sur la page View Details, 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
View Details
Méthode de facturation
-
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 son utilisation afin de réduire les coûts.
Configuration du groupe de ressources
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 ?.
Spécification du lien
DTS propose des spécifications de synchronisation avec différents niveaux de performance. La spécification du lien de synchronisation influe sur le taux 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.
Durée de l'abonnement
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 Confirm Alert Details.
-
Une fois la configuration terminée, lisez et acceptez les Ignore.
-
Cliquez sur OK. Dans la boîte de dialogue Precheck Again, cliquez sur Success Rate.
Vous pouvez consulter la progression de la tâche sur la page Data Synchronization.
Instance Community Edition de ClickHouse : vous devez créer une table locale et une table distribuée. Le nom de la table distribuée doit être identique au nom de la table source. Le nom de la table locale doit être <nom_table_distribuée>_local.
Instance Enterprise Edition de ClickHouse : vous devez créer une table portant le même nom que la table source.
INSERT : l'enregistrement est 1.
UPDATE : l'enregistrement est 1.
DELETE : l'enregistrement est -1.
INSERT : l'enregistrement est 1.
UPDATE : l'enregistrement est 1.
DELETE : l'enregistrement est -1.
Insertion : l'enregistrement est 0.
Suppression : l'enregistrement est 1.
Mise à jour : l'enregistrement est 0.
Annexe
Informations temporelles
Type de données
Valeur minimale
Valeur maximale
Date
1970-01-01 00:00:00
2149-06-06 00:00:00
Date32
1925-01-01 00:00:00
2283-11-11 00:00:00
DateTime
1970-01-01 08:00:00
2106-02-07 14:28:15
DateTime64
1925-01-01 08:00:00
2283-11-12 07:59:59
Informations sur les tables et les champs
Informations sur les tables
Si vous n'utilisez pas la fonctionnalité de mappage des noms d'objets, les tables que vous créez doivent répondre aux exigences suivantes.
ImportantSi la table de destination inclut un ENGINE, celui-ci doit être
ENGINE = ReplicatedReplacingMergeTree(_version, _is_deleted). Dans le cas contraire, des incohérences de données peuvent survenir.Informations sur les champs
RemarqueDans une instance ClickHouse, vous pouvez exécuter l'instruction
select * from table_name final where _sign>0;pour interroger les données. La condition where filtre les données supprimées, et le mot-clé final placé après le nom de la table filtre les données partageant la même clé de tri.Version
Nom
Type de données
Valeur par défaut
Description
Community Edition antérieure à 23,8
_sign
Int8
1
Le type d'opération DML.
_version
UInt64
1
L'horodatage auquel les données ont été écrites dans ClickHouse.
Enterprise Edition et Community Edition 23.8 et versions ultérieures
_sign
Int8
1
Le type d'opération DML.
_is_deleted
UInt8
0
Indique si l'enregistrement est supprimé :
_version
UInt64
1
L'horodatage auquel les données ont été écrites dans ClickHouse.
Logique de calcul des clés de partition
Type de champ source
Logique de calcul de la clé de partition
BIGINT
intDiv(" + tablePartKey + ", 18014398509481984)INT
intDiv(" + tablePartKey + ", 4194304)TIMESTAMP
toYYYYMM(" + tablePartKey + ")DATETIME
DATE
-