Dans les scénarios de synchronisation en temps réel, la prise en charge des modifications de données générées par les opérations de langage de définition de données (DDL) et de langage de manipulation de données (DML) sur les sources varie selon le type de destination. Cette rubrique décrit la prise en charge de la synchronisation de ces modifications par les différents types de destinations.
Contexte
Avant de configurer une solution ou un nœud de synchronisation de données, déterminez la fonctionnalité requise en fonction des types de vos sources de données. Pour plus d'informations, consultez Sources de données et solutions de synchronisation prises en charge.
Vous pouvez également choisir la fonctionnalité adaptée en fonction du nombre de bases de données ou de tables sources à lire et du nombre de tables de destination à écrire. Pour plus d'informations, consultez Prise en charge des scénarios de synchronisation multi-données.
Précautions
Lorsque vous ajoutez de nouveaux champs à une table source, le nœud de synchronisation en temps réel concerné se comporte comme suit :
Si vous ajoutez un champ nommé DEFAULT VALUE à la table source, ce champ est également ajouté à la table de destination associée après l'exécution du nœud de synchronisation en temps réel. La valeur de ce champ dans la table de destination est NULL. Si vous écrivez des données dans ce champ de la table source lors d'opérations ultérieures, le nœud de synchronisation en temps réel synchronise ces données vers le champ correspondant dans la table de destination.
Si vous ajoutez un champ nommé VIRTUAL à la table source, ce champ est également ajouté à la table de destination associée après l'exécution du nœud de synchronisation en temps réel. La valeur de ce champ dans la table de destination est NULL. Si vous écrivez des données dans ce champ de la table source lors d'opérations ultérieures, le nœud de synchronisation en temps réel synchronise ces données vers le champ correspondant dans la table de destination.
Si vous exécutez un nœud de synchronisation en temps réel pour synchroniser des données depuis une source MySQL ou PolarDB for MySQL et que vous souhaitez ajouter un champ à une table source, nous vous recommandons d'ajouter le champ à la fin de la table plutôt qu'au milieu. Si l'ajout d'un champ au milieu d'une table source est inévitable, tenez compte des limitations suivantes :
Pour une solution de synchronisation qui gère à la fois les données complètes et incrémentielles, n'ajoutez pas de champ au milieu d'une table source pendant la synchronisation des données complètes. Sinon, une exception de données survient lors de la synchronisation en temps réel des données incrémentielles.
Lors de la synchronisation en temps réel des données incrémentielles, si vous souhaitez réinitialiser le décalage (offset) de départ et effectuer une opération DDL pour ajouter un champ au milieu d'une table source, assurez-vous que la réinitialisation du décalage intervient après l'ajout du champ. Sinon, une exception de données survient lors de la synchronisation en temps réel des données incrémentielles.
En cas d'exception de données, réinitialisez les données pour restaurer un état normal. Il suffit de supprimer la table modifiée (celle où vous avez ajouté un champ au milieu), puis de lancer l'initialisation des données. Vous n'avez pas besoin d'initialiser les données de toutes les tables.
Prise en charge de la synchronisation des modifications de données générées par les opérations DDL et DML
Le tableau suivant répertorie la prise en charge, par différents types de destinations, de la synchronisation des modifications de données générées par les opérations DDL et DML sur les sources dans les scénarios de synchronisation en temps réel.
La fonctionnalité de synchronisation en temps réel et la solution de synchronisation complète unique avec synchronisation incrémentielle en temps réel (fournie par la fonctionnalité de synchronisation basée sur des solutions) sont utilisées pour la synchronisation en temps réel. Pour plus d'informations sur la configuration d'une solution ou d'un nœud de synchronisation de données à l'aide de la fonctionnalité associée, consultez
Présentation de la fonctionnalité de synchronisation en temps réel
et
Présentation de la fonctionnalité de synchronisation basée sur des solutions
.
| Type de source de données | Instruction DML | Instruction DDL pour une table | Instruction DDL pour un champ | ||||||||
| Insertion | Mise à jour | Suppression | Créer une table | Supprimer une table | Renommer une table | Vider une table | Ajouter un champ | Supprimer un champ | Renommer un champ | Modifier le type d'un champ | |
| AnalyticDB for MySQL 3,0 | Pris en charge | Pris en charge | Pris en charge | - | - | - | Pris en charge | Pris en charge | - | - | - |
| DataHub | Pris en charge | - | - | - | - | - | - | - | - | - | - |
| PolarDB-X 1,0 | Pris en charge | Pris en charge | Pris en charge | - | - | - | - | - | - | - | - |
| Elasticsearch | Pris en charge | Pris en charge | Pris en charge | - | - | - | - | Pris en charge | - | - | - |
| Hologres | Pris en charge | Pris en charge | Pris en charge | - | - | - | Pris en charge | Pris en charge | - | - | - |
| Kafka | Pris en charge | - | - | - | - | - | - | - | - | - | - |
| MaxCompute | Pris en charge | - | - | - | - | - | Pris en charge | Pris en charge | - | - | - |
| MySQL | Pris en charge | Pris en charge | Pris en charge | - | - | - | - | - | - | - | - |
| Object Storage Service (OSS) | Pris en charge | - | - | - | - | - | - | - | - | - | - |
| Oracle | Pris en charge | Pris en charge | Pris en charge | - | - | - | - | - | - | - | - |