Il est recommandé aux utilisateurs de ClickHouse Cloud d’utiliser ClickPipes pour la réplication de PostgreSQL vers ClickHouse. Cette solution prend nativement en charge le Change Data Capture (CDC) hautes performances pour PostgreSQL.
Ce moteur de table est expérimental. Pour l’utiliser, définissez
allow_experimental_materialized_postgresql_table sur 1 dans vos fichiers de configuration ou à l’aide de la commande SET :materialized_postgresql_tables_list, qui spécifie les tables à répliquer (il sera également possible d’ajouter le schema de la base de données). Les performances seront nettement meilleures en termes d’utilisation du CPU, avec moins de connexions et moins de slots de réplication dans la base de données PostgreSQL distante.
Création d’une table
host:port— Adresse du serveur PostgreSQL.database— Nom de la base de données distante.table— Nom de la table distante.user— Utilisateur PostgreSQL.password— Mot de passe de l’utilisateur.
TLS/SSL
libpq et peuvent être fournis via une collection nommée ou sous forme d’arguments clé-valeur placés à la fin du moteur : sslmode (disable, allow, prefer, require, verify-ca ou verify-full ; s’il n’est pas défini, la valeur par défaut de libpq, prefer, s’applique), ainsi que les certificats et la clé, sous l’une de deux formes. sslrootcert (certificat de CA), sslcert (certificat client) et sslkey (clé privée du client) sont des chemins vers des fichiers locaux au serveur, acceptés uniquement à partir d’une collection nommée définie dans le fichier de configuration du serveur. sslrootcert_pem, sslcert_pem et sslkey_pem acceptent à la place le contenu littéral du fichier correspondant, peuvent être spécifiés en SQL et sont masqués dans les logs et les requêtes SHOW, comme un mot de passe.
Prérequis
-
Le paramètre wal_level doit avoir la valeur
logical, et le paramètremax_replication_slotsdoit avoir une valeur d’au moins2dans le fichier de configuration de PostgreSQL. -
Une table utilisant le moteur
MaterializedPostgreSQLdoit avoir une clé primaire, identique à l’index de replica identity (par défaut : la clé primaire) d’une table PostgreSQL (voir les détails sur l’index de replica identity). - Seul le moteur de base de données Atomic est autorisé.
-
Le moteur de table
MaterializedPostgreSQLfonctionne uniquement avec les versions de PostgreSQL >= 11, car son implémentation nécessite la fonction PostgreSQL pg_replication_slot_advance.
Colonnes virtuelles
-
_version— Compteur de transactions. Type : UInt64. -
_sign— Indicateur de suppression. Type : Int8. Valeurs possibles :1— La ligne n’est pas supprimée,-1— La ligne est supprimée.
SELECT.
La colonne _version correspond à la position LSN dans le WAL et peut donc être utilisée pour vérifier à quel point la réplication est à jour.
La réplication des valeurs TOAST n’est pas prise en charge. La valeur par défaut du type de données est utilisée.