Notez que l’ajout d’une colonne est propagé à la fin de la synchronisation d’un batch, ce qui peut se produire après que l’intervalle de synchronisation ou la taille du pull batch a été atteint. Plus d’informations sur le contrôle des synchronisations ici
Valeurs par défaut des colonnes ajoutées
ADD COLUMN ; il n’est pas nécessaire d’actualiser entièrement la table.
Pour PostgreSQL, ClickPipes lit la valeur que PostgreSQL a stockée pour les lignes préexistantes, plutôt que l’expression par défaut actuelle de la colonne. Cela est important lorsque la valeur par défaut est une expression : une expression non volatile telle que now() est évaluée par PostgreSQL lors de l’ajout de la colonne, et ClickPipes propage la valeur obtenue, et non l’expression. Les opérations SET DEFAULT ou DROP DEFAULT ultérieures ne modifient pas la valeur par défaut utilisée pour les lignes existantes et ne sont pas propagées vers ClickHouse.
Les valeurs suivantes sont propagées :
- Les valeurs booléennes et numériques finies.
- Les valeurs textuelles, notamment
varchar,char, les enums, les UUID, JSON/JSONB,hstore, les adresses réseau et les dates. - Les horodatages. Les horodatages avec fuseau horaire sont normalisés en UTC.
NULL, les valeurs numériques non finies, bytea, les tableaux, les intervalles, les valeurs d’heure et les types géométriques. La colonne est tout de même ajoutée, mais ClickHouse utilise la valeur par défaut habituelle 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.