Skip to main content

Introduction

pg_clickhouse, an open-source PostgreSQL extension, runs analytics queries on ClickHouse right from PostgreSQL without rewriting any SQL. It supports PostgreSQL 13 and later and ClickHouse v23 and later. Once ClickPipes starts syncing data ClickHouse, use pg_clickhouse to quickly and easily import foreign tables into a PostgreSQL schema. Then run your existing PostgreSQL queries to against those tables, preserving your existing code base while pushing execution down to ClickHouse.

Getting started

The simplest way to try pg_clickhouse is the Docker image, which contains the standard PostgreSQL Docker image with the pg_clickhouse and re2 extensions:
See the tutorial to get started importing ClickHouse tables and pushing down queries.

Test case: TPC-H

This table compares TPC-H query performance between regular PostgreSQL tables and pg_clickhouse connected to ClickHouse, both loaded at scaling factor 1; ✔︎ indicates full pushdown, while a dash indicates a query cancellation after 1m. All tests run on a MacBook Pro M4 Max with 36 GB of memory.

Compile from source

General Unix

The PostgreSQL and curl development packages include pg_config and curl-config in the path, so you should be able to just run make (or gmake), then make install, then in your database CREATE EXTENSION pg_clickhouse.

Debian / Ubuntu / APT

See PostgreSQL Apt for details on pulling from the PostgreSQL Apt repository.

RedHat / CentOS / Yum

See PostgreSQL Yum for details on pulling from the PostgreSQL Yum repository.

Install from PGXN

With the above dependencies satisfied use the PGXN client (available as Homebrew, Apt and Yum packages named pgxnclient) to download, compile, and install pg_clickhouse:

Compile and Install

To build and install the ClickHouse library and pg_clickhouse, run:
If your host has several PostgreSQL installations, you might need to specify the appropriate version of pg_config:
If curl-config isn’t in the path on you host, you can specify the path explicitly:
If you encounter an error such as:
You need to use GNU make, which may well be installed on your system as gmake:
If you encounter an error such as:
Be sure that you have pg_config installed and in your path. If you used a package management system such as RPM to install PostgreSQL, be sure that the -devel package is also installed. If necessary tell the build process where to find it:
To install the extension in a custom prefix on PostgreSQL 18 or later, pass the prefix argument to install (but no other make targets):
Then ensure that the prefix is included in the following postgresql.conf parameters:

Testing

To run the test suite, once the extension has been installed, run
If you encounter an error such as:
You need to run the test suite using a super user, such as the default “postgres” super user:

Loading

Once pg_clickhouse is installed, you can add it to a database by connecting as a super user and running:
If you want to install pg_clickhouse and all of its supporting objects into a specific schema, use the SCHEMA clause to specify the schema, like so:

Dependencies

The pg_clickhouse extension requires PostgreSQL 13 or higher, libcurl, libuuid. Building the extension requires a C and C++ compiler, libSSL, GNU make, and CMake.

Road Map

Our top focus is finishing pushdown coverage for analytic workloads before adding DML features. Our road map:
  • Get the remaining 10 un-pushed-down TPC-H queries optimally planned
  • Test and fix pushdown for the ClickBench queries
  • Support transparent pushdown of all PostgreSQL aggregate functions
  • Support transparent pushdown of all PostgreSQL functions
  • Allow server-level and session-level ClickHouse settings via CREATE SERVER and GUCs
  • Support all ClickHouse data types
  • Support lightweight DELETEs and UPDATEs
  • Support batch insertion via COPY
  • Add a function to execute an arbitrary ClickHouse query and return its results as a tables
  • Add support for pushdown of UNION queries when they all query the remote database

Authors

  • 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
[Query 1] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/1.sql [Query 2] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/2.sql [Query 3] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/3.sql [Query 4] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/4.sql [Query 5] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/5.sql [Query 6] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/6.sql [Query 7] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/7.sql [Query 8] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/8.sql [Query 9] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/9.sql [Query 10] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/10.sql [Query 11] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/11.sql [Query 12] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/12.sql [Query 13] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/13.sql [Query 14] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/14.sql [Query 15] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/15.sql [Query 16] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/16.sql [Query 17] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/17.sql [Query 18] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/18.sql [Query 19] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/19.sql [Query 20] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/20.sql [Query 21] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/21.sql [Query 22] https://github.com/ClickHouse/pg_clickhouse/blob/main/dev/tpch/queries/22.sql
Last modified on July 1, 2026