pg_clickhouse
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_clickhouse | 0.2.0 | OLAP | Apache-2.0 | C++ |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 2460 | pg_clickhouse | No | Yes | Yes | Yes | No | Yes | - |
| Related | pg_duckdb duckdb_fdw citus columnar citus_columnar clickhouse_fdw postgres_fdw dblink |
|---|
release 0.2.0; SQL v0.2
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.2.0 | 1817161514 | pg_clickhouse | - |
| RPM | PIGSTY | 0.2.0 | 1817161514 | pg_clickhouse_$v | - |
| DEB | PIGSTY | 0.2.0 | 1817161514 | postgresql-$v-clickhouse | - |
Build
You can build the RPM / DEB packages for pg_clickhouse using pig build:
pig build pkg pg_clickhouse # build RPM / DEB packages
Install
You can install pg_clickhouse directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install pg_clickhouse; # Install for current active PG version
pig ext install -y pg_clickhouse -v 18 # PG 18
pig ext install -y pg_clickhouse -v 17 # PG 17
pig ext install -y pg_clickhouse -v 16 # PG 16
pig ext install -y pg_clickhouse -v 15 # PG 15
pig ext install -y pg_clickhouse -v 14 # PG 14
dnf install -y pg_clickhouse_18 # PG 18
dnf install -y pg_clickhouse_17 # PG 17
dnf install -y pg_clickhouse_16 # PG 16
dnf install -y pg_clickhouse_15 # PG 15
dnf install -y pg_clickhouse_14 # PG 14
apt install -y postgresql-18-clickhouse # PG 18
apt install -y postgresql-17-clickhouse # PG 17
apt install -y postgresql-16-clickhouse # PG 16
apt install -y postgresql-15-clickhouse # PG 15
apt install -y postgresql-14-clickhouse # PG 14
Preload:
shared_preload_libraries = 'pg_clickhouse';
Create Extension:
CREATE EXTENSION pg_clickhouse;
Usage
Sources: README, reference, tutorial, v0.2.0 release notes
pg_clickhouse runs analytics queries on ClickHouse from PostgreSQL through the clickhouse_fdw foreign data wrapper. Upstream documents PostgreSQL 13+ and ClickHouse 23+ support.
Connect PostgreSQL to ClickHouse
CREATE EXTENSION pg_clickhouse;
CREATE SERVER taxi_srv
FOREIGN DATA WRAPPER clickhouse_fdw
OPTIONS (driver 'binary', host 'localhost', dbname 'taxi');
CREATE USER MAPPING FOR CURRENT_USER
SERVER taxi_srv
OPTIONS (user 'default');
CREATE SCHEMA taxi;
IMPORT FOREIGN SCHEMA taxi FROM SERVER taxi_srv INTO taxi;
Server options documented upstream:
driver: required,binaryorhttphostportdbnamefetch_size: HTTP streaming batch size;0disables streaming
User mapping options:
userpassword
Common operations
ALTER EXTENSION pg_clickhouse UPDATE;
ALTER EXTENSION pg_clickhouse UPDATE TO '0.2';
DROP SERVER taxi_srv CASCADE;
IMPORT FOREIGN SCHEMA also supports LIMIT TO (...) and EXCEPT (...). The reference warns that imported mixed-case identifiers are double-quoted in PostgreSQL and must be queried with quotes.
Version and pushdown notes
- The reference documents separate library and extension versions;
pgch_version()was added in releasev0.2.0. - Patch-only releases update the library without requiring
ALTER EXTENSION. - Release
v0.2.0added more pushdown for arrays, regex functions,split_part(), array operators, and current date/time expressions, plus thepg_clickhouse.pushdown_regexsetting.
Caveats
- This is positioned upstream as an analytics-first extension; the roadmap still lists broader DML support as future work.
- For full examples, follow the official tutorial, which creates a ClickHouse
taxidatabase, imports it throughIMPORT FOREIGN SCHEMA, and queries the resulting foreign tables.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.