Skip to main content
ClickHouse Managed Postgres は、NVMe ストレージを基盤とするエンタープライズグレードの Postgres サービスです。EBS のようなネットワーク接続型ストレージと比較して、ディスクバウンドなワークロードに対して最大 10 倍高速なパフォーマンスを実現します。このクイックスタートは 2 つのパートに分かれています:
  • 第1部: NVMe Postgres を使い始め、そのパフォーマンスを体感する
  • 第2部: ClickHouse と統合してリアルタイム分析を実現する
Managed Postgres は現在、AWS の複数のリージョンで利用可能であり、パブリックベータ版として提供されています。このクイックスタートでは、以下を行います:
  • NVMe による高性能を備えた Managed Postgres インスタンスを作成
  • 100万件のサンプルイベントを読み込み、NVMe の速度を実際に確認
  • クエリを実行し、低レイテンシのパフォーマンスを体感
  • リアルタイム分析のためにデータを ClickHouse にレプリケート
  • pg_clickhouse を使用して、Postgres から ClickHouse に直接クエリ

第1部: NVMe Postgres を使い始める

データベースを作成する

新しい Managed Postgres サービスを作成するには、Cloud Console のサービス一覧にある New service ボタンをクリックします。その後、データベースタイプとして Postgres を選択できます。データベースインスタンスの名前を入力し、Create service をクリックします。概要ページに移動します。Managed Postgres インスタンスは 3~5 分で準備が完了し、使用できるようになります。

データベースに接続する

左側のサイドバーに Connect ボタン が表示されます。クリックすると、接続の詳細と複数のフォーマットの接続文字列を確認できます。psql の接続文字列をコピーして、データベースに接続します。DBeaver などの Postgres 互換クライアントや、任意のアプリケーションライブラリを使用することもできます。

NVMe のパフォーマンスを体感する

NVMe によるパフォーマンスを実際に確認してみましょう。まず、クエリの実行時間を測定できるよう、psql でタイミング計測を有効にします。
イベント用とユーザー用のサンプルテーブルを2つ作成します。
それでは、100万件のイベントを挿入して、NVMeの速度を見てみましょう:
NVMe パフォーマンスJSONB データを含む 100 万行を 4 秒未満で挿入。EBS のようなネットワーク接続型ストレージを使用する従来のクラウドデータベースでは、ネットワーク往復遅延と IOPS のスロットリングにより、同じ操作に通常 2〜3 倍の時間がかかります。NVMeストレージは、ストレージをコンピュートに物理的に直結することで、こうしたボトルネックを解消します。パフォーマンスは、インスタンスサイズ、現在の負荷、データ特性によって異なります。
1,000 人のユーザーを挿入します:

データに対してクエリを実行する

それでは、NVMe ストレージを使用した場合に Postgres がどれほど高速に応答するか、いくつかのクエリを実行して確認してみましょう。100万件のイベントをタイプ別に集計する:
JSONB フィルタリングと日付範囲を使用したクエリ:
イベントとユーザーを結合する:
Postgres の準備が整いましたこの時点で、トランザクションワークロードに対応できる、高性能で完全に機能する Postgres データベースが利用可能になっています。第2部に進み、ネイティブな ClickHouse 連携が分析性能をどのように大幅に高めるかをご覧ください。

第2部: ClickHouse でリアルタイム分析を追加する

Postgres はトランザクション系ワークロード (OLTP) に優れている一方、ClickHouse は大規模データセットに対する分析クエリ (OLAP) に特化して設計されています。両者を統合することで、それぞれの長所を最大限に活かすことができます:
  • アプリケーションのトランザクションデータ (挿入、更新、ポイントルックアップ) には Postgres
  • 数十億行規模のデータに対するサブ秒の分析には ClickHouse
このセクションでは、Postgres のデータを ClickHouse にレプリケートし、シームレスにクエリを実行する方法を説明します。

ClickHouse 連携のセットアップ

Postgres にテーブルとデータが揃ったので、分析のためにテーブルを ClickHouse にレプリケートしましょう。まず、サイドバーの ClickHouse 連携 をクリックします。次に、Replicate data in ClickHouse をクリックします。次のフォームでは、インテグレーションの名前を入力し、レプリケート先となる既存の ClickHouse インスタンスを選択できます。ClickHouse インスタンスをまだお持ちでない場合は、このフォームから直接作成することもできます。
重要次に進む前に、選択した ClickHouse service が Running 状態であることを確認してください。
次へをクリックすると、テーブルピッカーに移動します。ここで必要な操作は以下のとおりです:
  • レプリケート先の ClickHouse データベースを選択します。
  • public スキーマを展開し、先ほど作成した users テーブルと events テーブルを選択します。
  • Replicate data to ClickHouse をクリックします。
レプリケーションプロセスが開始され、インテグレーションの概要ページに移動します。初回のインテグレーションでは、初期インフラストラクチャのセットアップに 2〜3 分かかる場合があります。その間に、新しい pg_clickhouse 拡張機能を確認してみましょう。

Postgres から ClickHouse をクエリする

pg_clickhouse 拡張機能を使用すると、Standard SQL を使って Postgres から直接 ClickHouse のデータをクエリできます。これにより、アプリケーションはトランザクションデータと分析データの両方に対して、Postgres を統合クエリレイヤーとして利用できます。詳細については、完全なドキュメントを参照してください。拡張機能を有効にします:
次に、ClickHouse への foreign server 接続を作成します。セキュアな接続には、ポート 8443 を使用する http ドライバーを指定します:
<clickhouse_cloud_host> をご使用の ClickHouse のホスト名に、<database_name> をレプリケーション設定時に選択したデータベース名に置き換えてください。ホスト名は、サイドバーの Connect をクリックすることで ClickHouse サービス上で確認できます。次に、Postgres ユーザーを ClickHouse サービスの認証情報にマップします:
次に、ClickHouse のテーブルを Postgres のスキーマにインポートします。
<database_name> には、サーバーの作成時に使用したデータベース名と同じ名前を指定してください。これで、Postgres クライアントですべての ClickHouse テーブルを確認できます:

分析機能を実際に確認する

インテグレーションページに戻って確認してみましょう。初期レプリケーションが完了していることが確認できるはずです。詳細を表示するには、インテグレーション名をクリックしてください。サービス名をクリックして ClickHouse コンソールを開き、レプリケートテーブルを確認します。

Postgres と ClickHouse のパフォーマンスを比較する

次に、いくつかの分析クエリを実行して、Postgres と ClickHouse のパフォーマンスを比較してみましょう。なお、レプリケートテーブルは public_<table_name> という命名規則を使用します。クエリ 1: アクティビティ別上位ユーザーこのクエリは、複数の集計を用いて最もアクティブなユーザーを見つけます。
クエリ 2: 国別・プラットフォーム別のユーザーエンゲージメントこのクエリはイベントとユーザーを結合し、エンゲージメントメトリクスを計算します:
パフォーマンス比較:
ClickHouse を使うべきケースこの 100 万行のデータセットでも、ClickHouse は JOIN を含む複雑な分析クエリや複数の集計で 3〜7 倍高速なパフォーマンスを発揮します。さらに大規模 (1 億行以上) になるとその差はいっそう顕著になり、ClickHouse の列指向ストレージとベクトル化実行によって 10〜100 倍の高速化が得られることがあります。クエリ時間は、インスタンスサイズ、サービス間のネットワーク遅延、データ特性、現在の負荷によって異なります。

クリーンアップ

このクイックスタートで作成したリソースを削除するには:
  1. まず、ClickHouse サービスから ClickPipe インテグレーションを削除します
  2. 次に、Cloud Console から Managed Postgres インスタンスを削除します
最終更新日 2026年7月27日