Data Integration prend en charge la synchronisation complète et incrémentielle de bases de données entières depuis des sources telles qu'ApsaraDB for OceanBase, MySQL, Oracle et PolarDB vers MaxCompute. Ce lien de synchronisation effectue une migration initiale complète, puis synchronise continuellement les modifications incrémentielles et les fusionne dans la destination quotidiennement (T+1). Cette rubrique utilise l'exemple de la synchronisation de MySQL vers MaxCompute pour décrire comment créer une tâche complète et incrémentielle.
Fonctionnement
Une tâche complète et incrémentielle combine des sous-tâches par lots et en temps réel pour migrer et fusionner les données dans la table de base de destination. Une fois la tâche démarrée, le système crée et coordonne automatiquement les sous-tâches par lots et en temps réel afin de fusionner les données dans la table de destination (table de base).
Le processus comporte trois phases :
Chargement initial complet : une tâche par lots migre les schémas de table et les données existantes de toutes les tables de la base de données source vers MaxCompute. Une fois terminée, cette tâche par lots est figée.
Synchronisation incrémentielle : une tâche en temps réel capture continuellement les modifications (Insertion, Mise à jour, Suppression) du journal binaire (binlog) de la base de données source (tel que le binlog MySQL) et les écrit dans une table de journal temporaire dans MaxCompute en quasi-temps réel.
Fusion périodique : une tâche de fusion quotidienne (T+1) combine les données incrémentielles de la veille issues de la table de journal avec la table de base, produisant un instantané complet dans une nouvelle partition. Cette tâche de fusion s'exécute une fois par jour.
Principales fonctionnalités :
Mappage de tables plusieurs-à-plusieurs ou plusieurs-à-un : synchronisez plusieurs tables sources vers les tables de destination correspondantes, ou fusionnez plusieurs tables sources dans une seule table de destination à l'aide de règles de mappage.
Composition : une tâche complète et incrémentielle se compose d'une sous-tâche par lots (chargement complet), d'une sous-tâche en temps réel (synchronisation incrémentielle) et d'une tâche de fusion (consolidation des données).
Prise en charge des tables de destination : les données peuvent être écrites dans des tables partitionnées et non partitionnées dans MaxCompute.
Remarques sur l'utilisation
Exigences en matière de ressources : les tâches doivent s'exécuter sur un groupe de ressources serverless. Lorsque vous synchronisez des données par instance, spécifications minimales : 2 UC pour un groupe de ressources serverless.
Connectivité réseau : assurez-vous que le groupe de ressources pour Data Integration dispose d'une connectivité réseau à la fois vers la source (comme MySQL) et la destination (comme MaxCompute). Pour plus d'informations, consultez Connectivité réseau.
Restrictions régionales : seules les sources de données MaxCompute gérées par l'utilisateur dans la même région que l'espace de travail DataWorks actuel sont prises en charge. Lorsque vous utilisez une source de données MaxCompute gérée par l'utilisateur, vous devez toujours associer une ressource de calcul MaxCompute dans Data Studio. Sinon, vous ne pourrez pas créer de nœuds SQL MaxCompute, ce qui entraînera l'échec du nœud de fin de synchronisation complète.
Restrictions relatives au groupe de ressources de planification : le groupe de ressources serverless configuré pour la tâche est utilisé comme groupe de ressources de planification.
Restrictions relatives au type de table de destination : la synchronisation des données source vers des tables externes MaxCompute n'est pas prise en charge.
Notes
Exigences relatives à la clé primaire : les tables sans clé primaire ne sont pas prises en charge. Pour les tables sans clé primaire, vous devez spécifier manuellement une ou plusieurs colonnes comme clés primaires métier (Specify Primary Key) lors de la configuration.
Latence de visibilité des données : le jour où vous configurez une tâche complète et incrémentielle vers MaxCompute, vous pouvez uniquement interroger les données complètes historiques. Les données incrémentielles peuvent être interrogées dans MaxCompute uniquement après la fin de la fusion du lendemain. Pour plus d'informations, consultez la section sur la fusion périodique dans Fonctionnement.
Stockage et cycle de vie : une tâche complète et incrémentielle génère une partition complète chaque jour. Pour éviter une utilisation excessive du stockage, les tables MaxCompute créées automatiquement par la tâche ont un cycle de vie par défaut de 30 jours. Si cela ne répond pas à vos besoins métier, vous pouvez cliquer sur le nom de la table MaxCompute correspondante pour modifier le cycle de vie lors de la configuration de la tâche. Pour plus d'informations, consultez Modifier le schéma de la table de destination (facultatif).
SLA : Data Integration utilise le canal de données MaxCompute pour télécharger et charger des données. Pour plus d'informations sur le SLA du canal de données, consultez SLA du canal de données MaxCompute. Évaluez votre solution de synchronisation de données en fonction du SLA du canal de données MaxCompute.
Politique de conservation du binlog : la synchronisation en temps réel dépend du binlog de l'instance MySQL source. Assurez-vous que la période de conservation du binlog est suffisante pour éviter les interruptions de synchronisation causées par des décalages de départ manquants lorsqu'une tâche est suspendue pendant une longue période ou relancée après un échec.
Facturation
Une tâche complète et incrémentielle comprend une tâche de synchronisation par lots pour la phase de chargement complet, une tâche de synchronisation en temps réel pour la phase incrémentielle et une tâche planifiée pour la phase de fusion périodique. Ces trois phases sont facturées séparément. Toutes les trois phases consomment des UC du groupe de ressources. Pour plus d'informations sur la facturation des UC, consultez Facturation du groupe de ressources. La tâche planifiée entraîne également des frais de planification de tâches. Pour plus d'informations, consultez Facturation de la planification des tâches.
De plus, le lien de synchronisation complète et incrémentielle vers MaxCompute nécessite des fusions périodiques de données complètes et incrémentielles, qui consomment des ressources de calcul MaxCompute. Ces coûts sont facturés directement par MaxCompute et sont proportionnels à la taille des données complètes et au cycle de fusion. Pour plus d'informations, consultez Facturation MaxCompute.
Procédure
Étape 1 : Sélectionner un type de 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, puis cliquez sur Create Synchronization Task en haut de la page. Dans la boîte de dialogue qui s'affiche, configurez les paramètres clés suivants :
Source Type :
MySQL.Destination Type :
MaxCompute.Specific Type :
Complète et incrémentielle.Sync Procedure : Schema Migration, Incremental Sync, Full Synchronization et Periodic Merge.
Étape 2 : Configurer les sources de données et les groupes de ressources
Dans la section Source Information, sélectionnez la source de données
MySQLque vous avez ajoutée. Dans la section Destination, sélectionnez la source de donnéesMaxComputeque vous avez ajoutée.-
Dans la section Running Resources, sélectionnez le Resource Group pour la tâche et allouez-lui des Resource Group du CU. Vous pouvez configurer les UC séparément pour la synchronisation complète et la synchronisation incrémentielle afin de contrôler précisément les ressources et éviter le gaspillage.
RemarqueLes tâches de synchronisation par lots dans DataWorks sont distribuées par le groupe de ressources de planification au groupe de ressources Data Integration pour exécution. Par conséquent, les tâches de synchronisation par lots consomment des ressources à la fois du groupe de ressources Data Integration et du groupe de ressources de planification, ce qui engendre des frais d'instances de planification.
Assurez-vous que les sources de données source et destination passent toutes deux la Connectivity Check.
Étape 3 : Sélectionner les tables à synchroniser
Dans la zone Tables sources, sélectionnez les tables à synchroniser et cliquez sur l'icône 
pour les déplacer vers la liste Tables sélectionnées à droite.
Deux méthodes de sélection de table sont disponibles : Sélectionner des tables spécifiques et Sélectionner des tables par expression régulière. Le basculement entre les méthodes efface les résultats de l'autre méthode. Vous pouvez sélectionner jusqu'à 5 000 tables. Vous pouvez également utiliser Coller en masse pour sélectionner des tables pour ajouter rapidement des tables.
S'il y a beaucoup de bases de données et de tables, vous pouvez utiliser Database Filtering ou Search for Tables, ou configurer des expressions régulières pour sélectionner les tables à synchroniser.
Étape 4 : Configurer les paramètres de la tâche
-
Plage horaire de la table de journal : ce paramètre définit la plage de requête temporelle pour la fusion des données de la table de journal dans la partition de destination.
Pour éviter les erreurs de partition inter-journées causées par la latence des données, étendez cette plage de manière appropriée afin de garantir que toutes les données appartenant à la partition sont correctement fusionnées.
Paramètres de planification de la tâche de fusion : définissez l'heure de planification pour la tâche de fusion quotidienne. Pour plus d'informations sur la configuration de l'heure de planification, consultez Paramètres de planification.
Paramètres de planification périodique : configurez les paramètres de planification. Vous pouvez utiliser les paramètres de planification pour attribuer des valeurs aux partitions dans les paramètres de partition ultérieurs, ce qui vous permet d'écrire des données dans les partitions par date.
Paramètres de partition de table : configurez les partitions pour la table de destination, y compris les paramètres clés tels que les noms de colonne de partition et les méthodes d'attribution de valeur. Vous pouvez utiliser les paramètres de planification dans la colonne d'attribution pour générer automatiquement des partitions par date.
Étape 5 : Configurer le mappage de la table de destination
À cette étape, vous définissez les règles de mappage entre les tables sources et les tables de destination, et spécifiez les clés primaires, les partitions dynamiques, les configurations DDL/DML et d'autres règles pour déterminer comment les données sont écrites.
Action | Description |
Refresh | Le système répertorie automatiquement les tables sources que vous avez sélectionnées, mais les attributs de la table de destination ne prennent effet qu'après leur actualisation et confirmation.
|
Customize Mapping Rules for Destination Table Names (facultatif) | Le système dispose d'une règle de génération de nom de table par défaut :
Les scénarios suivants sont pris en charge :
|
Modifier le mappage des types de colonne (facultatif) | Le système fournit un mappage par défaut entre les types de colonne source et destination. Vous pouvez cliquer sur Edit Mapping of Field Data Types dans le coin supérieur droit du tableau pour personnaliser le mappage des types de colonne entre les tables source et destination. Après configuration, cliquez sur Apply and Refresh Mapping. Lorsque vous modifiez le mappage des types de colonne, assurez-vous que les règles de conversion de type sont correctes. Des règles incorrectes entraînent des échecs de conversion de type qui génèrent des données erronées et affectent 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 nom 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 en fonction du schéma de la table source. Aucune intervention manuelle n'est requise dans les scénarios courants. Vous pouvez également modifier le schéma de la table des manières suivantes :
Pour les tables existantes, vous pouvez uniquement ajouter des colonnes. Pour les nouvelles tables, vous pouvez ajouter des colonnes, des colonnes de partition et définir le type de table ou les propriétés de la table. Consultez les zones modifiables sur la page pour plus de détails. |
Value assignment | Les colonnes natives sont mappées automatiquement en fonction des colonnes portant le même nom dans les tables source et destination. Les colonnes nouvellement ajoutées dans les étapes précédentes nécessitent une attribution de valeur manuelle. Effectuez les opérations suivantes :
Vous pouvez attribuer des constantes ou des variables aux colonnes. Basculez le type dans Value Type. Les méthodes suivantes sont prises en charge :
|
Source Split Key | Dans la colonne de clé de fractionnement source, sélectionnez une colonne de la table source dans la liste déroulante ou sélectionnez Not Split. 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 une lecture de données batch concurrente. Nous vous recommandons d'utiliser une colonne avec des données uniformément réparties, telle que la clé primaire de la table, comme clé de fractionnement source. Les types chaîne, flottant et date ne sont pas pris en charge. La clé de fractionnement source est actuellement prise en charge uniquement lorsque la source est MySQL. |
Skip Full Synchronization | Si la synchronisation complète est configurée à l'étape 3, vous pouvez annuler la synchronisation des données complètes pour des tables individuelles. Cela s'applique lorsque vous avez déjà synchronisé les données complètes vers la destination par d'autres méthodes. |
Full condition | Appliquez un filtrage basé sur des conditions à la source pendant la phase de chargement complet. Spécifiez uniquement la clause WHERE ici sans le mot-clé WHERE. |
Configure DML Rule | Le traitement des messages DML filtre et contrôle les données de modification ( |
Full Merge Cycle | Actuellement, seules les fusions quotidiennes sont prises en charge. Vous pouvez configurer l'heure de planification spécifique de la tâche de fusion dans Custom Merge Time. |
Merge Primary Key | Vous pouvez définir une clé primaire en sélectionnant une ou plusieurs colonnes dans la table.
|
Étape 6 : Configuration avancée
Configuration des paramètres avancés
Si vous avez besoin d'une configuration de tâche granulaire pour répondre à des exigences de synchronisation personnalisées, accédez à l'onglet Advanced Parameters pour modifier les paramètres avancés.
Cliquez sur Configuration avancée dans le coin supérieur droit de la page pour accéder à la page de configuration des paramètres avancés.
Modifiez les valeurs des paramètres en fonction des descriptions des paramètres. La signification de chaque paramètre est expliquée à côté du nom du paramètre.
La configuration assistée par IA est également prise en charge. Saisissez des instructions en langage naturel, telles que l'ajustement de la concurrence de la tâche, et le grand modèle de langage génère des valeurs de paramètres recommandées. Vous pouvez décider d'accepter ou non les paramètres générés par l'IA en fonction de vos besoins réels.
Modifiez les paramètres uniquement lorsque vous comprenez pleinement leur signification. Des modifications incorrectes peuvent entraîner des problèmes inattendus tels qu'une latence de tâche, une consommation excessive de ressources bloquant d'autres tâches ou une perte de données.
Configuration de la capacité DDL
Certains liens de synchronisation en temps réel peuvent détecter les modifications de métadonnées des schémas de table source et notifier la destination pour synchroniser les mises à jour, ou prendre d'autres actions telles que l'envoi d'alertes, l'ignorance ou l'arrêt de la tâche.
Cliquez sur Configure DDL Capability dans le coin supérieur droit de la page pour définir une politique de traitement pour chaque type de modification. Les politiques prises en charge varient selon le canal.
Normal : la destination traite les informations de modification DDL provenant de la source.
Ignorer : le message de modification est ignoré et aucune modification n'est apportée à la destination.
Erreur : la tâche de synchronisation en temps réel est arrêtée et son statut est défini sur Erreur.
Alerte : une alerte 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 nouvelle colonne sur la source et sa synchronisation vers la destination via DDL, le système ne remplit pas rétroactivement les données existantes dans la table de destination pour cette colonne.
Étape 7 : Exécuter la tâche de synchronisation
Une fois toutes les configurations terminées, cliquez sur Save pour sauvegarder la tâche.
-
Sur la page , recherchez la tâche de synchronisation que vous avez créée et cliquez sur Deploy dans la colonne Operation. Si vous sélectionnez Start immediately after deployment lors du déploiement, la tâche s'exécute immédiatement après confirmation. Sinon, vous devez démarrer la tâche manuellement.
RemarqueLes tâches Data Integration doivent être déployées dans l'environnement de production avant de pouvoir s'exécuter. Par conséquent, vous devez effectuer l'opération Publish après avoir créé ou modifié une tâche pour que les modifications prennent effet.
Cliquez sur le Name/ID de la tâche correspondante dans Tasks pour afficher le processus d'exécution détaillé de la tâche.
Étapes suivantes
Une fois la configuration de la tâche terminée, vous pouvez gérer la tâche créée, ajouter ou supprimer des tables, configurer des alertes de surveillance pour la tâche et afficher les métriques clés de la tâche. Pour plus d'informations, consultez Gérer les tâches de synchronisation.
FAQ
Q : Pourquoi les données de la table de base ne sont-elles pas mises à jour comme prévu ?
R : Voici l'analyse des causes profondes et les solutions :
Symptôme | Cause | Solution |
La vérification de production des données pour la partition T-1 de la table de journal incrémentielle a échoué. | La tâche de synchronisation en temps réel a échoué, empêchant la production normale des données de la partition T-1 dans la table de journal incrémentielle. |
|
La vérification de production des données pour la partition T-2 de la table de base de destination a échoué. |
|
|
pour sélectionner Manual Input et Built-in Variable afin de concaténer 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 Destination Table Name pour ajouter des colonnes.