Cette rubrique apporte des réponses aux questions fréquemment posées sur la synchronisation complète et incrémentielle.
Vue d'ensemble
Que faire si le test de connectivité réseau de ma source de données PolarDB échoue ?
Que faire si le test de connectivité réseau de ma source de données OceanBase échoue ?
Que faire si le test de connectivité réseau de ma source de données MySQL échoue ?
Comment effectuer une synchronisation complète pour une tâche de synchronisation existante ?
Pourquoi le type decimal(7,4) est-il converti en numeric(38,18) lors de l'exécution d'une tâche de synchronisation de données depuis MySQL vers Hologres ?
Afin d'éviter toute perte de précision des données, Data Integration augmente automatiquement la précision des données pendant la synchronisation. Data Integration vous permet de modifier les instructions de création de table. Vous pouvez également configurer des règles de conversion de types de données par défaut pour la synchronisation, selon vos besoins métier, lors de la configuration d'une tâche de synchronisation. Pour plus d'informations, consultez la rubrique Créer une solution de synchronisation en temps réel pour synchroniser des données vers Hologres.
Puis-je exécuter une tâche de synchronisation en temps réel en un clic pour synchroniser les données de tables issues de bases de données fragmentées vers une même table MaxCompute ?
Non, une tâche de synchronisation complète et incrémentielle en temps réel en un clic ne peut pas être utilisée pour synchroniser les données de tables issues de bases de données fragmentées vers une même table MaxCompute. Si vous souhaitez synchroniser ces données vers une même table MaxCompute, utilisez une tâche de synchronisation dédiée aux tables de bases de données fragmentées vers MaxCompute. Pour plus d'informations, consultez la rubrique Synchroniser des données depuis des tables de bases de données MySQL fragmentées vers MaxCompute.
Comment éviter qu'une erreur ne soit signalée après la modification des champs d'une table source spécifiée dans une tâche de synchronisation complète et incrémentielle en temps réel en un clic ?
Lors de la configuration de la tâche de synchronisation, vous pouvez définir des règles de traitement pour les messages DDL générés par les opérations effectuées sur la source. Ces règles incluent le traitement normal, l'ignorance et le signalement d'erreur. Pour plus d'informations, reportez-vous à la section Configurer les règles de traitement des messages DDL ou DML et les règles de synchronisation de la rubrique Configuration d'une tâche de synchronisation dans Data Integration.
Que faire si le test de connectivité réseau de ma source de données PolarDB échoue ?
Description du problème : J'ajoute une source de données PolarDB et teste sa connectivité réseau. Le test échoue.
Solution : Définissez le paramètre Type de source de données sur Mode Chaîne de connexion, puis vérifiez la configuration de la liste d'autorisation de la source de données ainsi que la configuration du VPC de votre groupe de ressources dédié.
Que faire si le test de connectivité réseau de ma source de données Oracle échoue ?
Description du problème : J'ajoute une source de données Oracle et teste sa connectivité réseau. Le test échoue.
Solution : Définissez le paramètre Type de source de données sur Mode Chaîne de connexion, puis vérifiez la configuration de la liste d'autorisation de la source de données ainsi que la configuration du VPC de votre groupe de ressources dédié.
Que faire si le test de connectivité réseau de ma source de données OceanBase échoue ?
Description du problème : J'ajoute une source de données OceanBase et teste sa connectivité réseau. Le test échoue.
Solution : Définissez le paramètre Type de source de données sur Mode Chaîne de connexion, puis vérifiez la configuration de la liste d'autorisation de la source de données ainsi que la configuration du VPC de votre groupe de ressources dédié.
Que faire si le test de connectivité réseau de ma source de données MySQL échoue ?
Description du problème : J'ajoute une source de données MySQL et teste sa connectivité réseau. Le test échoue.
Solution : Définissez le paramètre Type de source de données sur Mode Chaîne de connexion, puis vérifiez la configuration de la liste d'autorisation de la source de données ainsi que la configuration du VPC de votre groupe de ressources dédié.
Lorsque je configure une tâche de synchronisation complète et incrémentielle en temps réel destinée à synchroniser des données vers MaxCompute, la source de données MaxCompute que je souhaite utiliser est grisée. Que faire ?
La source de données MaxCompute que vous souhaitez utiliser est grisée car elle a été ajoutée manuellement à DataWorks, plutôt que d'être générée automatiquement lors de l'association d'un projet MaxCompute à l'espace de travail en tant qu'instance de moteur de calcul. Pour une tâche de synchronisation complète et incrémentielle en temps réel vers MaxCompute, vous devez sélectionner une source de données MaxCompute générée lors de l'association d'un moteur de calcul MaxCompute.
Lors de l'exécution de la sous-tâche de synchronisation en temps réel générée par ma tâche de synchronisation de données depuis une source PolarDB, le message d'erreur suivant s'affiche : com.alibaba.otter.canal.parse.exception.PositionNotFoundException: can't find start position for XXX. Que faire ?
Description du problème : La sous-tâche de synchronisation en temps réel générée par ma tâche de synchronisation de données depuis une source PolarDB échoue et renvoie le message d'erreur suivant :
com.alibaba.otter.canal.parse.exception.PositionNotFoundException: can't find start position for XXX.Cause : La fonctionnalité de journalisation binaire (binary logging) est désactivée pour la source de données PolarDB.
Solution : Activez la fonctionnalité de journalisation binaire pour la source de données PolarDB. Pour plus d'informations, consultez la rubrique Source de données PolarDB. De plus, vous devez modifier un ou plusieurs enregistrements de données dans la source et définir le décalage de départ (start offset) de la sous-tâche de synchronisation en temps réel sur l'heure actuelle.
Lors de l'exécution de la sous-tâche de synchronisation en temps réel générée par ma tâche de synchronisation de données depuis une source PolarDB, le message d'erreur suivant s'affiche : com.alibaba.otter.canal.parse.exception.CanalParseException: command : 'show master status' has an error! pls check. you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation. Que faire ?
Description du problème : La sous-tâche de synchronisation en temps réel générée par ma tâche de synchronisation de données depuis une source PolarDB échoue et renvoie le message d'erreur suivant :
com.alibaba.otter.canal.parse.exception.CanalParseException: command : 'show master status' has an error! pls check. you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation.Cause : Le compte utilisé pour la synchronisation des données n'est pas autorisé à accéder à la source de données PolarDB, ou la base de données PolarDB connectée n'est pas déployée sur le nœud principal.
Solution : Autorisez le compte à accéder à la source de données PolarDB ou vérifiez si la base de données PolarDB connectée est déployée sur le nœud principal. Une tâche de synchronisation en temps réel ne peut pas synchroniser les données depuis les nœuds en lecture seule d'une source de données PolarDB. Pour savoir comment autoriser un compte à accéder à une source de données PolarDB, consultez la rubrique Source de données PolarDB.
Lors de l'exécution de la sous-tâche de synchronisation en temps réel générée par ma tâche de synchronisation de données depuis une source PolarDB, le message d'erreur suivant s'affiche : com.alibaba.datax.plugin.reader.mysqlbinlogreader.MysqlBinlogReaderException: The mysql server does not enable the binlog write function. Please enable the mysql binlog write function first. Que faire ?
Description du problème : La sous-tâche de synchronisation en temps réel générée par ma tâche de synchronisation de données depuis une source PolarDB échoue et renvoie le message d'erreur suivant :
com.alibaba.datax.plugin.reader.mysqlbinlogreader.MysqlBinlogReaderException: The mysql server does not enable the binlog write function. Please enable the mysql binlog write function first.Cause : Le paramètre loose_polar_log_bin est défini sur off pour la source de données PolarDB.
Solution : Définissez le paramètre loose_polar_log_bin sur on. Pour plus d'informations, consultez la rubrique Activer la journalisation binaire.
Lors de l'exécution de la sous-tâche de synchronisation par lots générée par ma tâche de synchronisation, le message d'erreur suivant s'affiche : com.alibaba.datax.common.exception.DataXException: Code:[HoloWriter-02], Description:[Invalid config parameter in your configuration.]. - Field _log_file_name_offset_ not allow null but not present in user configured columns. Que faire ?
Description du problème : La sous-tâche de synchronisation par lots générée par ma tâche de synchronisation échoue et renvoie le message d'erreur suivant :
com.alibaba.datax.common.exception.DataXException: Code:[HoloWriter-02], Description:[Invalid config parameter in your configuration.]. - Field _log_file_name_offset_ not allow null but not present in user configured columns.Cause : Le plug-in du moteur DataWorks utilisé pour la synchronisation par lots n'est pas mis à jour vers la dernière version.
Solution : Soumettez un ticket pour contacter le support technique et mettre à jour le plug-in.
Lors de l'exécution de la sous-tâche de synchronisation par lots générée par ma tâche de synchronisation de données vers Hologres, le message d'erreur suivant s'affiche : errorCode:NoSuchTopic, errorMessage:The specified topic name does not exist. Que faire ?
Description du problème : La sous-tâche de synchronisation par lots générée par ma tâche de synchronisation de données vers Hologres échoue et renvoie le message d'erreur suivant :
errorCode:NoSuchTopic, errorMessage:The specified topic name does not exist.-
Causes :
La table de destination Hologres utilisée pour la synchronisation des données n'existe pas.
La sous-tâche de synchronisation par lots générée par la tâche de synchronisation synchronise les données d'une table source vers une table externe Hologres. Hologres Writer ne peut pas être utilisé pour synchroniser des données vers des tables externes Hologres.
Solution : Utilisez une table interne Hologres comme table de destination pour la synchronisation des données. Si la table de destination Hologres n'existe pas, modifiez les configurations de la tâche de synchronisation et définissez la Méthode de génération de table sur Create Table afin de permettre au système de créer automatiquement la table de destination Hologres. Pour plus d'informations, reportez-vous à la section Étape 4 : Configurer une table de destination de la rubrique Création d'une solution de synchronisation en temps réel pour synchroniser des données vers Hologres.
Le système conserve-t-il les informations de la table source, telles que les propriétés NOT NULL et les valeurs par défaut des champs, dans la table de destination mappée créée automatiquement ?
Lors de la création d'une table de destination, le système ne conserve que les informations telles que les noms des champs, les types de données et les commentaires de la table source mappée. Il ne conserve ni les valeurs par défaut des champs, ni les contraintes, telles que les contraintes NOT NULL et les contraintes d'index, de la table source mappée.
Comment effectuer une synchronisation complète pour une tâche de synchronisation existante ?
Accédez à Data Integration, repérez votre tâche de synchronisation existante dans la liste des tâches, puis cliquez sur More > Rerun dans la colonne Actions.