はじめに
はじめに
テストケース: TPC-H
| クエリ | PostgreSQL | pg_clickhouse | プッシュダウン |
|---|---|---|---|
| [Query 1] | 4693 ms | 268 ms | ✔︎ |
| [Query 2] | 458 ms | 3446 ms | |
| [Query 3] | 742 ms | 111 ms | ✔︎ |
| [Query 4] | 270 ms | 130 ms | ✔︎ |
| [Query 5] | 337 ms | 1460 ms | ✔︎ |
| [Query 6] | 764 ms | 53 ms | ✔︎ |
| [Query 7] | 619 ms | 96 ms | ✔︎ |
| [Query 8] | 342 ms | 156 ms | ✔︎ |
| [Query 9] | 3094 ms | 298 ms | ✔︎ |
| [Query 10] | 581 ms | 197 ms | ✔︎ |
| [Query 11] | 212 ms | 24 ms | |
| [Query 12] | 1116 ms | 84 ms | ✔︎ |
| [Query 13] | 958 ms | 1368 ms | |
| [Query 14] | 181 ms | 73 ms | ✔︎ |
| [Query 15] | 1118 ms | 557 ms | |
| [Query 16] | 497 ms | 1714 ms | |
| [Query 17] | 1846 ms | 32709 ms | |
| [Query 18] | 5823 ms | 10649 ms | |
| [Query 19] | 53 ms | 206 ms | ✔︎ |
| [Query 20] | 421 ms | - | |
| [Query 21] | 1349 ms | 4434 ms | |
| [Query 22] | 258 ms | 1415 ms |
ソースからコンパイル
General Unix
pg_config と
curl-config が PATH に含まれるため、make (または
gmake) を実行し、続けて make install を実行すれば、
データベースで
CREATE EXTENSION pg_clickhouse を実行できるはずです。
Debian / Ubuntu / APT
RedHat / CentOS / Yum
PGXN からインストール
pgxnclient という名前の Yum パッケージで提供) を使用して、pg_clickhouse をダウンロード、コンパイル、インストールします:
コンパイルとインストール
pg_clickhouseをビルドしてインストールするには、以下を実行します。
pg_config を
指定する必要がある場合があります:
curl-config がパスに含まれていない場合は、パスを明示的に指定できます:
gmake としてインストールされている場合があります:
pg_config がインストールされており、パスが通っていることを確認してください。RPM などの
パッケージ管理システムを使って PostgreSQL をインストールした場合は、
-devel パッケージもインストールされていることを確認してください。必要に応じて、
ビルドプロセスにその場所を指定してください:
install に prefix 引数を渡します (ほかの make ターゲットには渡しません) :
postgresql.conf
パラメータ]にプレフィックスが含まれていることを確認します。
テスト
読み込み
pg_clickhouse をインストールしたら、スーパーユーザーとして接続し、次を実行することで
データベースに追加できます:
pg_clickhouse と、それに関連するすべてのオブジェクトを特定の
スキーマにインストールする場合は、SCHEMA 句を使用してスキーマを指定します。以下のように指定します。
依存関係
pg_clickhouse 拡張機能には、PostgreSQL 13 以降、libcurl、
libuuid が必要です。拡張機能をビルドするには、C および C++ コンパイラ、libSSL、GNU
make、CMake が必要です。
ロードマップ
- 残る 10 件の未対応の TPC-H クエリについて、最適な実行計画を実現する
- ClickBench クエリに対するプッシュダウンをテストし、修正する
- PostgreSQL のすべての集約関数の透過的なプッシュダウンをサポートする
- PostgreSQL のすべての関数の透過的なプッシュダウンをサポートする
- CREATE SERVER および GUCs を通じて、サーバーレベルおよびセッションレベルの ClickHouse 設定を許可する
- ClickHouse のすべてのデータ型をサポートする
- 論理削除 と UPDATE をサポートする
- COPY によるバッチ挿入をサポートする
- 任意の ClickHouse クエリを実行し、その 結果をテーブルとして返す関数を追加する
- すべてがリモート データベースをクエリする場合の UNION クエリのプッシュダウン対応を追加する
著作権
- Copyright (c) 2025-2026, ClickHouse
- 一部 Copyright (c) 2023-2025, Ildus Kurbangaliev
- 一部 Copyright (c) 2019-2023, Adjust GmbH
- 一部 Copyright (c) 2012-2019, PostgreSQL Global Development Group