Skip to main content
ClickPipes for MySQL peut détecter les modifications de schéma dans les tables sources et, dans certains cas, propager automatiquement ces modifications vers les tables de destination. La façon dont chaque opération DDL est traitée est décrite ci-dessous :
Les ajouts de colonnes pendant un snapshot ne sont actuellement pas pris en charge. La solution de contournement recommandée consiste à effectuer les snapshots avant ou après les modifications de schéma planifiées ou, si le ClickPipe est déjà en échec, à ajouter manuellement une colonne du type approprié à la table de destination.

Valeurs par défaut des colonnes ajoutées

Pour une colonne ajoutée, ClickPipes ne propage une valeur par défaut que lorsqu’il peut la traduire de manière sûre pour ClickHouse. Lorsqu’une valeur par défaut est propagée, ClickHouse l’utilise lors de la lecture des parties de données antérieures à l’ajout de la nouvelle colonne. Ainsi, les lignes déjà présentes dans ClickHouse reçoivent la valeur par défaut de la source sans actualisation complète de la table. ClickPipes propage les valeurs littérales entières, décimales et à virgule flottante, les booléens, les valeurs simples de chaînes et de dates, ainsi que les valeurs enum ou set lorsque le serveur MySQL fournit des métadonnées de ligne binlog complètes. Il réécrit les littéraux de chaîne à l’aide de guillemets compatibles avec ClickHouse. ClickPipes omet intentionnellement les valeurs par défaut qui ne sont pas des littéraux portables, notamment NULL, les littéraux binaires, les appels de fonction tels que CURRENT_TIMESTAMP, NOW() ou UUID(), ainsi que les valeurs de chaîne contenant des barres obliques inverses ou des caractères de contrôle. La colonne est tout de même ajoutée, mais ClickHouse utilise la valeur par défaut ordinaire de son type pour les parties antérieures à l’ajout de la colonne. Une actualisation complète de la table est nécessaire si ces lignes existantes doivent contenir la valeur par défaut de la source. ClickPipes propage les valeurs par défaut uniquement dans le cadre de ALTER TABLE ADD COLUMN. Les opérations ultérieures qui modifient ou suppriment une valeur par défaut de colonne ne sont pas propagées vers ClickHouse.

Limitations de MySQL 5.x

Les versions de MySQL antérieures à 8.0.1 n’incluent pas l’ensemble des métadonnées des colonnes dans le binlog (binlog_row_metadata=FULL). ClickPipes suit donc les colonnes en fonction de leur position ordinale. Cela signifie :
  • L’ajout d’une colonne à la fin (ALTER TABLE ADD COLUMN ...) est pris en charge.
  • Toute DDL qui décale la position des colonnes provoquera une erreur du pipe, car les positions ordinales ne peuvent alors plus être mises en correspondance de façon fiable. Cela inclut :
    • ALTER TABLE DROP COLUMN ...
    • ALTER TABLE ADD COLUMN ... AFTER ... / FIRST
    • ALTER TABLE MODIFY COLUMN ... AFTER ... / FIRST
    • ALTER TABLE CHANGE COLUMN ... AFTER ... / FIRST
Si vous rencontrez cette erreur, vous devrez resynchroniser le pipe.
Dernière modification le 14 août 2026