先月、私たちは ClickHouse Open House NYC のステージに立ち、長らく開発を進めてきた構想を発表しました。それは、トランザクションには Postgres、分析には ClickHouse を用い、1つの統合スタックとして機能させるというものです。チームにとって非常に慌ただしい1週間となりました。WalShadow のプライベートプレビューを開始し、Google Cloud での ClickHouse Managed Postgres のプライベートプレビューを公開し、さらに chdb Postgres エクステンションをリリースしました。
Open House 基調講演での Postgres
オープニング基調講演の壇上で、私たちは Managed Postgres の背景を説明し、WalShadow を発表した上で、大量の書き込みスパイクをかけたライブデモを披露しました。以下は、ステージ上で発表した内容と、あわせてリリースされた機能の振り返りです。
Open House NYC 基調講演の該当セグメントを視聴する (24:02 から開始)。
Postgres と ClickHouse の連携
私たちは、これまで何度も目にしてきた典型的なパターンから話を始めました。多くのチームが Postgres 上でアプリケーションを構築し、データ量の増加に伴ってダッシュボードや分析クエリが遅くなると、ClickHouse を追加導入します。Postgres がトランザクションを処理し、ClickHouse が分析を処理することで、各データベースがそれぞれの強みを発揮します。数千社もの企業が、まさにこのスタックを運用しています。

この歩み自体は目新しいものではありません。新しいのは、AI ネイティブ企業がこのステップを駆け抜けるスピードです。Postgres ClickPipes を利用している 1,000 社以上の AI ネイティブ顧客から 10 社を抽出して調査したところ、データ量はわずか 6 か月で 1,000% 以上も増加していました。これらの企業は、これまでに見てきたどの顧客層よりも速いペースで分析の壁に直面しており、トランザクションワークロードと分析ワークロードの両方を処理できるクラス最高のソリューションが求められています。
この 2 つのデータベースを接続できるよう支援することは、私たちにとっても思い入れのある取り組みです。私たちは、Postgres から ClickHouse へのデータレプリケーションを容易にするために PeerDB を共同設立しました。ClickHouse は 2024 年に PeerDB を買収し、現在では PeerDB が ClickPipes の Postgres CDC コネクタの基盤となり、1,000 社を超える顧客に利用されています。
ClickHouse Managed Postgres
これが ClickHouse Managed Postgres の根底にある考え方です。現在では、スタックの両側を ClickHouse Cloud 内で実行し、ネイティブに連携させることができます。基調講演では、以下の 3 点に焦点を当てました。
- ローカル NVMe ストレージ上の Postgres。 ディスクが VM に物理的にアタッチされているため、トランザクションワークロードで 2 倍から 10 倍の性能向上が得られます。ゾーン間の高可用性 (最大 2 つのスタンバイ)、バックアップ、リードレプリカ、Prometheus エンドポイント、Terraform、ClickHouse Agents も備えています。
- ClickHouse へのネイティブ CDC。 独自のパイプラインを構築・運用することなく、数回のクリックで Postgres から ClickHouse へテーブルを同期できます。
- pg_clickhouse。 Postgres から ClickHouse にクエリを実行できるようにするオープンソースのエクステンションです。これにより、アプリケーションはトランザクションと分析の両方で単一の Postgres インターフェースを利用できます。
WalShadow: 物理 WAL からのサブ秒単位のレプリケーション
そして、大きな発表が行われました。これまで、Postgres から ClickHouse へのレプリケーションにおける標準的な手法は ClickPipes または PeerDB であり、どちらも Postgres の論理レプリケーションをベースにしていました。WalShadow は異なるアプローチを取ります。

WalShadow は、Postgres のストリーミングレプリカが処理するのと同じストリームである物理 WAL から、Postgres のデータを ClickHouse にレプリケーションするオープンソースエンジンです。ソースデータベースに論理レプリケーションスロット経由で変更のデコードを行わせる代わりに、WalShadow はソースの外部で WAL をデコードし、ClickHouse ネイティブのブロックを構築して並列挿入します。スキーマのみを保持するシャドウ Postgres インスタンスが稼働中のカタログを追跡するため、ADD COLUMN、RENAME COLUMN、DROP COLUMN、CREATE TABLE などのスキーマ変更も反映されます。事実上、ClickHouse が分析用の物理スタンバイとして機能します。
壇上で紹介したベンチマークは、私たちが立ち上げたプロジェクトである PeerDB と WalShadow を比較したものだったため、私たちにとっては複雑な心境でもありました。一般的な 8 vCPU インスタンスにおける結果は以下のとおりです。
- レイテンシ: Postgres でのコミットから ClickHouse で参照可能になるまでの時間は約 200 ms で、PeerDB の約 10 秒と比較して大幅に短縮されました。参考として、ネイティブな Postgres 物理レプリカは約 50 ms でした。
- スループット: 毎秒約 30 万行を達成し、ソース側の挿入レートに追従しました。PeerDB が維持できたのは毎秒約 12 万行でした。
測定手法の詳細は、発表記事をご覧ください。
試す方法は 2 つあります。
- オープンソース。 GitHub リポジトリには、Docker のクイックスタート、アーキテクチャのドキュメント、ベンチマークテスト環境が用意されており、自身で数値を再現できます。Postgres 17 および 18 をサポートしています。
- ClickHouse Managed Postgres でのプライベートプレビュー。 数クリックでセットアップできる完全マネージドな体験です。WalShadow は物理 WAL へのアクセスを必要としますが、多くのマネージド Postgres サービスではこれが公開されていないため、ClickHouse Managed Postgres 限定の提供となっています。私たちはスタックの両側を運用しているため、Postgres のレプリケーション層に直接接続できます。プライベートプレビューにサインアップ。
デモの実演
続いて Kaushik が、ClickHouse Managed Postgres 上で稼働する WalShadow のデモを行いました。デモ用のインスタンスは過去 1 時間で約 1 億 7,000 万トランザクション (毎秒約 5 万件近く) を、CPU 使用率 50% 未満で処理していました。オープンソースの pg_stat_ch エクステンションを活用した組み込みの Query Insights により、クエリごとの統計情報が ClickHouse にストリーミングされている様子が示されました。
「Sync to ClickHouse」をクリックすると、2 つの選択肢が表示されるようになりました。RDS などの他の Postgres プロバイダーで引き続き利用できる ClickPipes と、Managed Postgres 向けの WalShadow です。WalShadow を使用する場合、プライマリ側でパブリケーションや論理レプリケーションスロットを設定する必要はありません。テーブルとカラムを選択し、初期ロード+CDC または CDC のみを選択して開始するだけです。
ニューヨークでの開催にちなみ、取引プラットフォームのシナリオを用意しました。Postgres が取引データを受け付け、ClickHouse が市場操作を検知するためのマイクロ集計を実行します。毎秒約 4 万 5,000 件から 5 万件の取引が発生する中で、WalShadow は ClickHouse 側の遅れを 400 ms 未満に抑えました。その後、Kaushik が通常の 10 倍の負荷をかけた不正操作の急増をシミュレーションしました。WalShadow 経由のパイプラインは 500 ms 未満で異常を検知した一方、ClickPipes 経由のパイプラインでは 15 秒以上かかりました。不正行為による損失が秒単位で膨らむ環境において、この差は極めて重要です。
詳細については、WalShadow の発表動画をご覧ください。
Google Cloud 版 ClickHouse Managed Postgres (プライベートプレビュー)
AWS での提供開始以来、最も多く寄せられた質問の 1 つが「Google Cloud ではいつ利用できますか?」というものでした。これに対応しました。GCP 版 ClickHouse Managed Postgres のプライベートプレビューを開始しました。
同一リージョン内の ClickPipes を介した ClickHouse Cloud へのネイティブ CDC、GCP Local SSD 上の Postgres、pg_clickhouse など、すべて Google Cloud 内で完結する同一のサービスです。これにより、トランザクションデータと分析データの間でクラウドアクロスの中継が発生しません。ClickHouse Cloud が稼働するすべての GCP リージョンにデプロイ可能で、コンソール、OpenAPI、Terraform (cloud_provider = "gcp")、または clickhousectl を使用してプロビジョニングできます。
Cloud SQL や AlloyDB からの移行であれば、Postgres to Postgres ClickPipes によりダウンタイムの少ない移行経路が確保されており、プレビューユーザーには専任チームが直接サポートを提供します。プレビューの規模は限定しているため、GCP のウェイトリストにご登録ください。
chdb Postgres エクステンション: クラウドストレージからの高速インポート
3 つ目の発表は、オブジェクトストレージから Postgres にデータを読み込むすべてのユーザー向けです。chdb エクステンションは、組み込み型 ClickHouse エンジンである chDB を Postgres のインポートおよびエクスポートにもたらします。
この機能は、chdb_query() 関数を提供する chdb エクステンションと、S3、Google Cloud Storage、Azure Blob Storage、HDFS、HTTP、ローカルファイルとの読み書きができるよう COPY を拡張する chdb_hook モジュールの 2 つで構成されています。
LOAD 'chdb_hook';
COPY times FROM 's3://datasets-documentation/my-test-bucket-768/some_prefix/some_file_1.csv';ClickHouse をベースにしているため、Parquet、Avro、ORC、Arrow、Protobuf を含む幅広い ClickHouse フォーマットの読み書きに対応しています。
S3 から NYC Taxi データセットをインポートするベンチマークでは、検証した 4 つのエクステンションの中で最も安定した性能を示しました。一方、DuckDB ベースの 2 つのエクステンションは、CSV、JSON、Parquet の処理に約 2 〜 3 倍の時間を要しました。chdb は Postgres バックエンドの内部ではなく短時間のヘルパープロセスでエンジンを実行するため、コマンドの実行中のみリソースを消費します。
GitHub でオープンソースとして公開されており、ClickHouse Managed Postgres の pg_clickhouse にも同梱されています。
今後の展望
特に WalShadow は大きな反響を呼んでおり、Postgres Weekly #665 でも取り上げられました。
ステージ上でお伝えしたとおり、WalShadow は Postgres と ClickHouse の統合に向けた大きな一歩であり、これで終わりではありません。私たちの目標は変わっていません。ワールドクラスの Postgres を ClickHouse とネイティブに統合し、1 つのデータスタックで最高の OLTP と OLAP を提供することです。
Open House NYC にお越しいただき、Postgres について語り合ってくださった皆様、そして円滑な運営を支えてくれたイベントチームに深く感謝いたします。また次回のイベントでお会いしましょう!
ClickHouse Managed Postgres を今すぐ始める
実際のデータで ClickHouse Managed Postgres の動作を試してみませんか?ClickHouse Cloud は数分で利用開始でき、300 ドル分の無料クレジットも進呈されます。
サインアップ


