Introduction
[pg_clickhouse], une extension PostgreSQL open source, exécute des requêtes analytiques sur ClickHouse directement depuis PostgreSQL, sans réécrire le moindre SQL. Elle prend en charge PostgreSQL 14 et versions ultérieures, ainsi que ClickHouse v23 et versions ultérieures. Une fois que ClickPipes commence à synchroniser les données vers ClickHouse, utilisez pg_clickhouse pour import foreign tables rapidement et facilement dans un schéma PostgreSQL. Exécutez ensuite vos requêtes PostgreSQL existantes sur ces tables, sans modifier votre base de code existante, tout en déléguant l’exécution à ClickHouse.Premiers pas
Le moyen le plus simple d’essayer pg_clickhouse est d’utiliser l’[image Docker], qui contient l’image Docker PostgreSQL standard avec les extensions pg_clickhouse et re2 :Cas de test : TPC-H
Ce tableau compare les performances des requêtes TPC-H entre des tables PostgreSQL standard et pg_clickhouse connecté à ClickHouse, tous deux chargés avec un facteur d’échelle de 1 ; ✔︎ indique un pushdown complet effectué en un seul parcours de table étrangère, tandis que ✼ indique un pushdown complet effectué en plusieurs parcours de tables étrangères. Tous les tests ont été exécutés sur un MacBook Pro M4 Max doté de 36 Go de mémoire.Compiler à partir des sources
Unix général
Les paquets de développement de PostgreSQL et de curl incluentpg_config et
curl-config dans le PATH, vous devriez donc pouvoir simplement exécuter make (ou
gmake), puis make install, puis dans votre base de données
CREATE EXTENSION pg_clickhouse.
Debian / Ubuntu / APT
Voir PostgreSQL Apt pour plus de détails sur la récupération depuis le dépôt APT de PostgreSQL.RedHat / CentOS / Yum
Installer depuis PGXN
Une fois les dépendances ci-dessus remplies, utilisez le PGXN client (disponible sous forme de paquets Homebrew, Apt et Yum nomméspgxnclient) pour télécharger, compiler et installer pg_clickhouse :
Compiler et installer
Pour compiler et installer la bibliothèque ClickHouse etpg_clickhouse, exécutez :
pg_config :
curl-config n’est pas dans le PATH de votre hôte, vous pouvez spécifier le chemin
explicitement :
gmake :
pg_config est installé et présent dans votre path. Si vous avez utilisé un
gestionnaire de paquets tel que RPM pour installer PostgreSQL, assurez-vous que le
paquet -devel est également installé. Si nécessaire, indiquez au processus de compilation où
le trouver :
prefix pour install (mais pour aucune autre cible make) :
postgresql.conf
suivants] :
Tests
Pour exécuter la suite de tests, une fois l’extension installée, lancezActivation
Une foispg_clickhouse installé, vous pouvez l’ajouter à une base de données en vous connectant
en tant que superutilisateur et en exécutant :
pg_clickhouse et tous les objets associés dans
un schéma spécifique, utilisez la clause SCHEMA pour le préciser, comme suit :
Dépendances
L’extensionpg_clickhouse nécessite PostgreSQL 14 ou une version supérieure, ainsi que libcurl
et libuuid. La compilation de l’extension requiert un compilateur C et C++, libSSL, GNU
make et CMake.
Feuille de route
Notre priorité absolue est de finaliser la couverture du pushdown pour les charges de travail analytiques avant d’ajouter des fonctionnalités DML. Notre feuille de route :- Obtenir une planification optimale pour les 10 requêtes TPC-H restantes sans pushdown
- Tester et corriger le pushdown pour les requêtes ClickBench
- Prendre en charge le pushdown transparent de toutes les fonctions d’agrégation PostgreSQL
- Prendre en charge le pushdown transparent de toutes les fonctions PostgreSQL
- Autoriser les paramètres ClickHouse au niveau du serveur et de la session via CREATE SERVER et les GUC
- Prendre en charge tous les types de données ClickHouse
- Prendre en charge les opérations lightweight DELETE et UPDATE
- Prendre en charge l’insertion par lot via COPY
- Ajouter une fonction pour exécuter une requête ClickHouse arbitraire et renvoyer ses résultats sous forme de tables
- Ajouter la prise en charge du pushdown des requêtes UNION lorsqu’elles interrogent toutes la base de données distante
Auteurs
Copyright
- Copyright (c) 2025-2026, ClickHouse
- Portions Copyright (c) 2023-2025, Ildus Kurbangaliev
- Portions Copyright (c) 2019-2023, Adjust GmbH
- Portions Copyright (c) 2012-2019, PostgreSQL Global Development Group