はじめに
このライブラリは、Postgres 上で chDB クエリを実行したり、さまざまなフォーマットやオブジェクトストアとの間でデータをコピーしたりするための PostgreSQL 拡張機能を提供します。chdb 拡張機能
chdb 拡張機能は chDB のクエリを実行します。chdb_query() 関数は単一のクエリを実行します。たとえば、次のクエリの場合:
chdb_hook モジュール
chdb_hook モジュールは COPY コマンドにフックし、S3、GCS、Azure Blob、ファイル、http URL との間でデータをコピーします。次の例では、S3 上にある複数の CSV ファイルのレコードを、1 つの COPY コマンドで読み込みます:
times テーブルには読み込まれた各ファイルのレコードが格納されます:
フォーマットのベンチマーク
ベンチマークでは、NYC Taxi dataset の約 100 万行をさまざまなフォーマットで扱った場合の [chdb_hook] のCOPY のパフォーマンスを、[aws_s3]、[pg_duckdb]、[pg_lake] と比較しています。

さらにベンチマークを実施したところ、NYC Taxi dataset をさまざまなフォーマットで取り込む場合でも、比較的安定したパフォーマンスが得られることが確認できました。

アーキテクチャ
chdb および chdb_hook 拡張機能は、chDB クエリの実行にchdb_helper プロセスを使用します。このヘルパーにより chDB のリソース消費が Postgres のメインプロセスから切り離されるため、データレイクからのデータロードのように、たまにしか実行されないワークフローでは大きな利点となります。
Dependencies
chdb 拡張機能には、PostgreSQL 15 以降と chDB ライブラリ v26.7.0 以降が必要です (現在は Linux および macOS でのみ利用可能) 。最も簡単なインストール方法は、lib.chdb.io の シェルスクリプト を使用する方法です。
make コマンドを実行する前に、以下の変数を設定してください。
Makefile は静的な libchdb ライブラリをダウンロードし、アプリに組み込んでコンパイルします。
Linux では、インストール の make コマンドを実行する前に export BUNDLE_LIBCHDB=1 を設定しておくことで、インストール処理で動的な libchdb ライブラリをダウンロードしてインストールさせることもできます。
ソースからコンパイル
chdb をビルドするには、次のコマンドを実行します。gmake としてインストールされている場合があります:
pg_config がインストールされ、path に含まれていることを確認してください。RPM などの package management system を使用して PostgreSQL をインストールした場合は、-devel package もインストールされているか確認してください。必要に応じて、build プロセスに対してその場所を指定します:
/usr/local を指定します:
install に prefix 引数を渡します (他の make ターゲットには渡しません) :
postgresql.conf の parameters] に含まれていることを確認してください。