La fonctionnalité de synchronisation en temps réel de base de données complète associe une synchronisation initiale unique à une capture incrémentielle continue pour synchroniser l'intégralité d'une base de données source (comme MySQL ou Oracle) vers un système de destination avec une faible latence. Les tâches de synchronisation en temps réel de base de données complète prennent en charge la synchronisation complète des données historiques de la base de données source et initialisent automatiquement le schéma de table ainsi que les données sur la destination. Ensuite, la tâche bascule automatiquement en mode incrémentiel en temps réel et utilise des technologies telles que la capture des données modifiées (CDC) pour capturer et synchroniser en continu les modifications de données ultérieures. Cette fonctionnalité s'applique à des scénarios tels que l'entreposage de données en temps réel et la construction de data lakes. Cette rubrique décrit comment configurer la tâche en prenant pour exemple la synchronisation en temps réel de base de données complète de MySQL vers MaxCompute.
Prérequis
-
Préparation des sources de données
Les sources de données source et de destination sont créées. Pour savoir comment configurer les sources de données, consultez la rubrique Configurer les sources de données.
Assurez-vous que les sources de données prennent en charge la synchronisation en temps réel de base de données complète. Pour plus d'informations, consultez la rubrique Sources de données prises en charge.
Certaines sources de données nécessitent l'activation des journaux, comme MySQL, Hologres et Oracle. La méthode d'activation des journaux varie selon la source de données. Pour plus d'informations, consultez la rubrique Configurations des sources de données.
MaxCompute : Le type de données Decimal est pris en charge par MaxCompute 2.0. Avant la synchronisation, vous devez activer les types de données MaxCompute 2.0. Pour plus d'informations, consultez la rubrique Types de données MaxCompute 2.0.
Groupe de ressources : Un groupe de ressources serverless est acheté et configuré.
Connectivité réseau : La connectivité réseau entre le groupe de ressources et les sources de données doit être configurée.
Notes d'utilisation
-
DataWorks prend en charge deux types de synchronisation de base de données complète : synchronisation complète en temps réel et synchronisation complète et incrémentielle. Ces deux types prennent en charge la synchronisation complète des données historiques de la base de données source, puis basculent automatiquement en mode incrémentiel en temps réel. Toutefois, ils diffèrent en termes de délai de mise à disposition et d'exigences relatives aux tables de destination :
Délai de mise à disposition : La synchronisation complète en temps réel offre un délai de l'ordre de la seconde à la minute. La synchronisation complète et incrémentielle offre un délai T+1.
-
Table de destination (MaxCompute) :
PK Delta Table : La synchronisation complète en temps réel prend en charge toutes les fonctionnalités.
Tables régulières et Append Delta Tables : Le mode Append est pris en charge uniquement lorsque vous sélectionnez le mode de synchronisation incrémentielle dans une tâche de synchronisation complète en temps réel.
Synchronisation complète et incrémentielle : Tous les types de tables mentionnés ci-dessus sont pris en charge.
-
Les tâches de synchronisation complète en temps réel peuvent être configurées dans les modules DataStudio (Data Studio) et Data Integration. Ces deux modules sont fonctionnellement interopérables.
Configuration cohérente : Que vous créiez une tâche dans le module Data Studio ou Data Integration, l'interface de configuration, les paramètres et les fonctionnalités sous-jacentes sont identiques.
Synchronisation bidirectionnelle : Les tâches créées dans le module Data Integration sont automatiquement synchronisées et affichées dans le répertoire
data_integration_jobsdu module Data Studio. Ces tâches sont classées par canalsource type-destination typepour une gestion unifiée.
Configurer une tâche
Étape 1 : Créer une tâche de synchronisation
Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur dans le volet de navigation de gauche. Sélectionnez un espace de travail dans la liste déroulante et cliquez sur Go to Data Integration.
-
Dans le volet de navigation de gauche, cliquez sur Synchronization Task. Sur la page qui s'affiche, cliquez sur Create Synchronization Task et configurez les informations de la tâche :
Source Type :
MySQL.Destination Type :
MaxCompute.Specific Type :
Real-time Full-database.-
Synchronization Mode :
Schema Migration : Crée automatiquement sur la destination les objets de base de données (tables, colonnes et types de données) correspondant à ceux de la source, sans inclure les données.
Full Synchronization (facultatif) : Copie toutes les données historiques des objets spécifiés (tables, par exemple) de la source vers la destination en une seule opération. Cette option est généralement utilisée pour la migration initiale des données ou leur initialisation.
Incremental Sync (facultatif) : Capture en continu les modifications de données (insertions, mises à jour et suppressions) de la source une fois la synchronisation complète terminée, et les synchronise vers la destination.
Étape 2 : Configurer les sources de données et les ressources d'exécution
Dans la section Source Data Source, sélectionnez la source de données
MySQLajoutée à l'espace de travail. Dans la section Destination, sélectionnez la source de donnéesMaxComputeajoutée.-
Dans la section Running Resources, sélectionnez le Resource Group pour la tâche de synchronisation et allouez des Resource Group CU à la tâche.
RemarqueLorsqu'un message tel que
Please confirm whether there are enough resources...apparaît dans les journaux de la tâche, cela signifie que les unités de calcul (CU) disponibles du groupe de ressources actuel sont insuffisantes pour démarrer ou exécuter la tâche. Dans le panneau Configure Resource Group, augmentez le nombre de CU alloués à la tâche pour attribuer davantage de ressources de calcul.Pour connaître les valeurs recommandées concernant la taille des ressources, consultez la rubrique CU recommandés pour Data Integration. Ajustez les valeurs en fonction de vos besoins réels.
Assurez-vous que les sources de données source et de destination passent toutes deux la Connectivity Check.
Étape 3 : Configuration du plan de synchronisation
1. Configurer la source de données
À cette étape, vous pouvez sélectionner les tables à synchroniser depuis la source de données dans la zone Source Tables, puis cliquer sur l'icône
pour les déplacer vers la zone Selected Tables située à droite. Si le nombre de tables est élevé, utilisez les options Database Filtering ou Table filtering pour sélectionner les tables à synchroniser en configurant des expressions régulières.-
Pour écrire plusieurs tables fragmentées (ayant le même schéma) dans une seule table de destination, vous pouvez utiliser l'option Select Tables by Regex. Saisissez une expression régulière dans la configuration de la table source. DataWorks identifie et collecte automatiquement toutes les tables sources correspondantes, puis écrit leurs données dans la table de destination mappée par l'expression.
RemarqueCette méthode s'applique aux scénarios de fusion de tables fragmentées lors de la synchronisation (similaire à la synchronisation de sharding de base de données et de tables). Elle améliore l'efficacité de la configuration et évite d'avoir à ajouter manuellement de nombreuses règles de synchronisation plusieurs-vers-un.
2. Configurer la destination des données
Si seule l'option Incremental Sync est sélectionnée pour la tâche de synchronisation complète en temps réel, vous pouvez configurer le mode de synchronisation incrémentielle pour l'écriture dans la table de destination.
Replay : Seule PK Delta Table est prise en charge. Comme pour une synchronisation normale, seules les colonnes de données sont synchronisées.
Incremental stream : Les tables régulières et Append Delta Table sont prises en charge. Les données en temps réel de la table source sont enrichies avec des métadonnées telles que les opérations d'insertion, de mise à jour et de suppression avant d'être écrites dans la table de destination. Pour connaître le format des tables incremental stream, consultez la rubrique Format de table incremental stream.
3. Mappage des tables cibles
À cette étape, vous devez définir les règles de mappage entre les tables sources et les tables de destination, et spécifier des règles telles que les clés primaires, les partitions dynamiques et les configurations DDL/DML afin de déterminer la manière dont les données sont écrites.
Opération | Description | ||||||||||||
Refresh | Le système répertorie automatiquement les tables sources que vous avez sélectionnées, mais les propriétés spécifiques des tables de destination ne prennent effet qu'après actualisation et confirmation.
| ||||||||||||
Customize Mapping Rules for Destination Table Names (facultatif) | Le système dispose d'une règle de génération de noms de table par défaut :
Les scénarios suivants sont pris en charge :
MaxCompute et Hologres prennent tous deux en charge la personnalisation du mappage des noms de schéma cibles. Lors de la synchronisation en temps réel d'une base de données MySQL complète vers MaxCompute, vous pouvez configurer des règles de personnalisation du mappage des noms de schéma cibles pour acheminer les données synchronisées vers un schéma non par défaut spécifié dans le projet MaxCompute de destination, au lieu d'écrire toutes les données dans le schéma par défaut. Important La fonctionnalité Schema de MaxCompute est désactivée par défaut. Avant d'utiliser la fonctionnalité de personnalisation du mappage des noms de schéma cibles, vous devez activer manuellement le mode Schema pour le projet MaxCompute de destination. Sinon, les règles de mappage ne prendront pas effet. | ||||||||||||
Modifier le mappage des types de colonne (facultatif) | Le système propose des mappages par défaut entre les types de colonnes source et destination. Vous pouvez cliquer sur Edit Mapping of Field Data Types en haut à droite du tableau pour personnaliser les mappages de types de colonne entre les tables source et de destination, puis cliquer sur Apply and Refresh Mapping. Lors de la modification des mappages de types de colonne, assurez-vous que les règles de conversion de type sont correctes. Des règles incorrectes peuvent entraîner des échecs de conversion de type, générant ainsi des données erronées et affectant l'exécution de la tâche. | ||||||||||||
Modifier le schéma de la table de destination (facultatif) | Le système crée automatiquement les tables de destination inexistantes en fonction des règles de mappage de noms de table personnalisées, ou réutilise les tables existantes portant le même nom. DataWorks génère automatiquement le schéma de la table de destination à partir du schéma de la table source. Dans la plupart des cas, aucune intervention manuelle n'est requise. Vous pouvez également modifier le schéma de la table de la manière suivante :
Pour les tables existantes, vous ne pouvez qu'ajouter des colonnes. Pour les nouvelles tables, vous pouvez ajouter des colonnes, des colonnes de partition et configurer le type de table ou les propriétés de la table. Pour plus de détails, consultez les zones modifiables de la page. | ||||||||||||
Value assignment | Les colonnes natives sont automatiquement mappées en fonction des colonnes portant le même nom dans les tables source et de destination. Les colonnes ajoutées et les colonnes de partition des étapes précédentes nécessitent une attribution manuelle de valeur. Effectuez les opérations suivantes :
Lors de l'attribution de valeurs, vous pouvez utiliser des constantes ou des variables. Changez le type dans Value Type. Les méthodes suivantes sont prises en charge :
Remarque Un nombre excessif de partitions dégrade les performances de synchronisation. Si plus de 1 000 nouvelles partitions sont créées en une seule journée, la création de partition échoue et la tâche est arrêtée. Par conséquent, lorsque vous définissez la méthode d'attribution de valeur pour les colonnes de partition, estimez le nombre de partitions susceptibles d'être générées. Faites preuve de prudence lors de l'utilisation de méthodes de création de partition au niveau de la seconde ou de la milliseconde. | ||||||||||||
Source Split Key | Vous pouvez sélectionner une colonne de la table source ou choisir Not Split dans la liste déroulante de la clé de fractionnement source. Lors de l'exécution de la tâche, les données sont divisées en plusieurs tâches en fonction de cette colonne pour permettre des lectures de données concurrentes et par lots. Nous vous recommandons d'utiliser la clé primaire de la table comme clé de fractionnement source. Les types String, floating-point, date et autres ne sont pas pris en charge. Actuellement, la clé de fractionnement source est prise en charge uniquement lorsque la source est MySQL. | ||||||||||||
Skip Full Synchronization | Si la synchronisation complète a été configurée à l'étape 3, vous pouvez annuler individuellement la synchronisation complète des données pour une table spécifique. Cela s'applique aux scénarios où les données complètes ont déjà été synchronisées vers la destination par d'autres moyens. | ||||||||||||
Full condition | Appliquez un filtrage conditionnel à la source pendant la phase de synchronisation complète. Saisissez uniquement la clause WHERE ici, sans le mot-clé WHERE. | ||||||||||||
Configure DML Rule | Le traitement des messages DML permet d'effectuer un filtrage et un contrôle granulaires sur les données modifiées capturées depuis la source ( | ||||||||||||
Autres | Table Type : MaxCompute prend en charge les tables régulières,
Pour plus d'informations sur Delta Table, consultez la rubrique Présentation de Delta Table. |
Étape 4 : Configuration avancée
Configuration des paramètres avancés
Si vous avez besoin d'une configuration granulaire de la tâche pour répondre à des exigences de synchronisation personnalisées, accédez à l'onglet Advanced Parameters pour modifier les paramètres avancés.
Cliquez sur Advanced Configuration en haut à droite de la page pour accéder à la page de configuration des paramètres avancés.
Modifiez les valeurs des paramètres en fonction des indications fournies. La signification de chaque paramètre est décrite après son nom.
La configuration assistée par IA est également prise en charge. Vous pouvez saisir des instructions en langage naturel, telles que l'ajustement de la concurrence de la tâche, et un modèle de langage large génère des valeurs de paramètres recommandées. Vous pouvez choisir d'accepter ou non les paramètres générés par l'IA en fonction de vos besoins réels.
Ne modifiez les paramètres qu'après avoir pleinement compris leur signification. Des modifications inappropriées peuvent entraîner des problèmes imprévus, tels qu'une latence de la tâche, une consommation excessive de ressources bloquant d'autres tâches, ou une perte de données.
Configuration des capacités DDL
Certains canaux de synchronisation en temps réel peuvent détecter les modifications de métadonnées du schéma de la table source, en informer la destination et synchroniser les mises à jour vers celle-ci. D'autres politiques de gestion, telles que l'envoi d'alertes, l'ignorance ou l'arrêt de la tâche, sont également disponibles.
Vous pouvez cliquer sur Configure DDL Capability en haut à droite de la page pour définir la politique de gestion pour chaque type de modification DDL. Les politiques de gestion disponibles varient selon le canal.
Traitement normal : La destination traite les informations de modification DDL provenant de la source.
Ignorer : Le message de modification est ignoré et la destination n'est pas modifiée.
Erreur : La tâche de synchronisation complète en temps réel est arrêtée et son statut est défini sur Error.
Alerte : Une alerte vous est envoyée lorsque ce type de modification se produit sur la source. Vous devez configurer les règles de notification DDL dans Configure Alert Rule.
Après l'ajout d'une colonne à la table source et sa création dans la table de destination via la synchronisation DDL, le système ne remplit pas rétroactivement les données existantes dans la table de destination.
La suppression de colonne n'est pas prise en charge pour la synchronisation automatique des sources MySQL. Lorsque vous supprimez une colonne d'une table source MySQL, le schéma de la table devient incohérent avec le journal binaire, ce qui peut provoquer des erreurs dans la tâche de synchronisation.
Pour supprimer une colonne déjà synchronisée vers la table de destination, utilisez la solution de contournement suivante :
Supprimez la table de destination correspondante (par exemple, la table de destination Hologres).
Modifiez la tâche de synchronisation et retirez la table de la tâche.
Réajoutez la table à la tâche.
Actualisez les mappages de colonnes.
Enregistrez et déployez la tâche.
Si la tâche est en cours d'exécution, cliquez sur Apply Updates pour que les modifications prennent effet.
Étape 5 : Déployer et exécuter la tâche
Une fois toutes les configurations terminées, cliquez sur Save en bas de la page pour enregistrer la configuration de la tâche.
Les tâches de synchronisation de base de données complète ne prennent pas en charge le débogage direct et doivent être déployées dans Operation Center pour s'exécuter. Par conséquent, les tâches nouvelles et modifiées nécessitent l'opération Deploy pour prendre effet.
Lors du déploiement, si vous sélectionnez Start immediately after deployment, la tâche est démarrée simultanément au déploiement. Sinon, une fois le déploiement terminé, vous devez accéder à la page et démarrer manuellement la tâche dans la colonne Actions de la tâche cible.
Cliquez sur le Name/ID de la tâche correspondante dans Tasks pour afficher le détail du processus d'exécution de la tâche.
Étape 6 : Configuration des alertes
1. Ajouter une alerte
Dans la liste , localisez la tâche de synchronisation complète en temps réel cible et cliquez sur dans la colonne Actions pour configurer les politiques d'alerte de la tâche.
(1) Cliquez sur Create Rule pour configurer une règle d'alerte.
Vous pouvez définir la Alert Reason pour surveiller des métriques telles que le Business delay, Failover, le Task status, la DDL Notification et l'Task Resource Utilization de la tâche, et configurer des niveaux d'alerte CRITICAL ou WARNING en fonction de seuils spécifiés.
En configurant les Configure Advanced Parameters, vous pouvez contrôler l'intervalle entre les messages d'alerte afin d'éviter l'envoi excessif de messages en une seule fois, ce qui pourrait entraîner un gaspillage et des retards de messagerie.
Si vous sélectionnez le Business delay, le Task status ou l'Task Resource Utilization comme raison d'alerte, vous pouvez également activer les notifications de récupération pour informer les destinataires lorsque la tâche revient à la normale.
(2) Gérer les règles d'alerte.
Pour les règles d'alerte déjà créées, vous pouvez utiliser le commutateur d'alerte pour activer ou désactiver une règle. Vous pouvez également envoyer des alertes à différents destinataires en fonction des niveaux d'alerte.
2. Afficher les alertes
Cliquez sur dans la liste étendue des tâches pour accéder à la page des événements d'alerte, où vous pouvez consulter les alertes qui ont été déclenchées.
Gérer les tâches
Modifier une tâche
Sur la page , localisez la tâche de synchronisation que vous avez créée, cliquez sur More dans la colonne Operation, puis cliquez sur Edit pour modifier les informations de la tâche. La procédure est identique à celle de la configuration d'une tâche.
Pour les tâches qui ne sont pas en cours d'exécution, vous pouvez modifier directement la configuration, enregistrer les modifications, puis déployer la tâche dans l'environnement de production pour que les changements prennent effet.
Pour les tâches en état Running, si vous modifiez et déployez la tâche sans sélectionner Start immediately after deployment, le bouton d'action d'origine devient Apply Updates. Vous devez cliquer sur ce bouton pour que les modifications prennent effet dans l'environnement de production.
-
Après avoir cliqué sur Apply Update, le système effectue trois étapes séquentielles : Stop, Deploy et Restart.
-
Si la modification implique l'ajout de nouvelles tables ou le changement de tables existantes :
Lors de l'application de la mise à jour, vous ne pouvez pas sélectionner de point de contrôle. Après confirmation, le système effectue la migration du schéma et l'initialisation complète pour les nouvelles tables. Une fois l'initialisation complète terminée, la synchronisation incrémentielle commence pour les nouvelles tables ainsi que pour les tables existantes.
-
Si d'autres configurations sont modifiées :
Lors de l'application de la mise à jour, vous pouvez sélectionner un point de contrôle. Après confirmation, la tâche reprend à partir du point de contrôle spécifié. Si aucun point de contrôle n'est spécifié, la tâche reprend à partir du point de contrôle où elle s'était arrêtée précédemment.
Les tables non modifiées ne sont pas affectées et reprennent leur exécution à partir du point de contrôle où elles s'étaient arrêtées précédemment après la mise à jour et le redémarrage.
-
Afficher les tâches
Après avoir créé une tâche de synchronisation, vous pouvez afficher la liste des tâches de synchronisation créées ainsi que les informations de base de chaque tâche sur la page des tâches de synchronisation.
Dans la colonne Actions, vous pouvez Start ou Stop les tâches de synchronisation, et depuis le menu More, vous pouvez modifier ou View les tâches de synchronisation.
Pour les tâches démarrées, vous pouvez afficher l'état d'exécution de base dans Execution Overview, et cliquer sur la zone de résumé correspondante pour afficher les détails d'exécution.
Reprise basée sur les points de contrôle
Cas d'utilisation
La réinitialisation manuelle des points de contrôle lors du démarrage ou du redémarrage d'une tâche s'applique aux scénarios suivants :
Récupération de tâche et reprise des données : Lorsqu'une tâche est interrompue de manière inattendue, vous devrez peut-être spécifier manuellement un point d'interruption comme nouveau point de départ afin de garantir la reprise des données à partir du point d'arrêt exact.
Dépannage des données et retour en arrière : Si vous constatez que des données synchronisées sont manquantes ou anormales, vous pouvez revenir à un point de contrôle antérieur au problème, puis rejouer et réparer les données problématiques.
Modifications majeures de la configuration de la tâche : Après avoir apporté des modifications importantes à la configuration de la tâche, telles que le schéma de la table de destination ou les mappages de colonnes, nous vous recommandons de réinitialiser le point de contrôle pour démarrer la synchronisation à partir d'un moment précis, garantissant ainsi l'exactitude des données sous la nouvelle configuration.
Instructions
Cliquez sur Start et, dans la boîte de dialogue, sélectionnez Whether to reset the site :
Premier démarrage : Vous n'avez pas besoin de sélectionner l'option de réinitialisation du point de contrôle. Exécutez la tâche directement. Le système effectue automatiquement l'initialisation complète, puis bascule en synchronisation incrémentielle une fois l'initialisation terminée.
Exécution sans réinitialisation du point de contrôle : La tâche reprend à partir du point de contrôle où elle s'était arrêtée précédemment (dernier point de contrôle).
Réinitialiser le point de contrôle et sélectionner une heure : La tâche démarre à partir du point de contrôle temporel spécifié. Assurez-vous que l'heure sélectionnée ne dépasse pas le point de contrôle le plus ancien pris en charge par le journal binaire de la source.
Si une erreur de point de contrôle ou une erreur de point de contrôle introuvable se produit lors de l'exécution d'une tâche de synchronisation, essayez les solutions suivantes :
Réinitialiser le point de contrôle : Lors du démarrage de la tâche de synchronisation en temps réel, réinitialisez le point de contrôle et sélectionnez le point de contrôle disponible le plus ancien de la base de données source.
Ajuster la période de rétention des journaux : Si le point de contrôle de la base de données a expiré, envisagez d'ajuster la période de rétention des journaux dans la base de données. Par exemple, définissez la période de rétention sur 7 jours.
Synchronisation des données : Si des données ont été perdues, envisagez d'effectuer à nouveau une synchronisation complète, ou configurez une tâche de synchronisation par lots pour synchroniser manuellement les données perdues.
O&M et optimisation des tâches
Une fois une tâche démarrée, si vous rencontrez des problèmes tels qu'une latence de consommation des données, des tâches bloquées ou de mauvaises performances, consultez la rubrique Dépanner et optimiser les tâches de synchronisation en temps réel pour obtenir des solutions.
FAQ
Pour les questions fréquemment posées concernant la synchronisation complète en temps réel de base de données, consultez la rubrique FAQ sur la synchronisation complète en temps réel de base de données.
Annexe : Format de table de journal des modifications incrémentielles
Disposition à plat des colonnes source
|
Nom de la colonne |
Description |
|
sequence_id |
ID d'enregistrement de l'événement incrémentiel. La valeur est unique et auto-incrémentale. |
|
operation_type |
Type d'opération (I/D/U). |
|
execute_time |
Horodatage des données |
|
before_image |
Indique s'il s'agit d'un enregistrement avant modification (Y/N) |
|
after_image |
Indique s'il s'agit d'un enregistrement après modification (Y/N) |
|
src_datasource |
Source de données source des données |
|
src_database |
Base de données source des données |
|
src_table |
Table source des données |
|
Colonne 1 |
Colonne de données réelle 1 |
|
Colonne 2 |
Colonne de données réelle 2 |
|
Colonne 3 |
Colonne de données réelle 3 |
Fusionner les colonnes de la table source en JSON
|
Nom de la colonne |
Description |
|
sequence_id |
ID d'enregistrement de l'événement incrémentiel. La valeur est unique et incrémentale. |
|
operation_type |
Type d'opération (I/D/U) DDL : ALTER, TRUNCATE, RENAME |
|
execute_time |
Horodatage des données |
|
before_image |
Indique s'il s'agit d'un enregistrement avant modification (Y/N) |
|
after_image |
Indique s'il s'agit d'un enregistrement après modification (Y/N) |
|
src_datasource |
Source de données source des données |
|
src_database |
Base de données source des données |
|
src_table |
Table source des données |
|
ddl_sql |
Lorsque l'opération est de type DDL, l'instruction DDL est écrite dans cette colonne. |
|
data_columns |
Fusionner les colonnes de données réelles en JSON |
et sélectionner Manually enter et Built-in Variable pour concaténer et générer le nom de la table de destination. Les variables prises en charge incluent le nom de la source de données source, le nom de la base de données source et le nom de la table source.





dans la colonne Target Table pour ajouter des colonnes.
de la page.