この方法は、自分で進めても、スクリプト化しても、AI Agent に任せてもかまいません。コンソール版を使う場合は、Cloud UI 表示に切り替えてください。このページでは、ClickHouse CLI (ClickHouse CLIをインストールします:または、環境変数 サービスを作成し、レスポンスを保存します。パスワードは一度しか表示されません:レスポンスには、サービス ID、ホスト名、すぐに使える接続文字列が含まれます。このガイドの以降で必要になる情報を抽出します:パスワードを紛失した場合は、Provisioning には数分かかります。状態が 2 つのテーブルを作成し、NVMeストレージにより、100万行の insert は 同じリージョンにサービスを作成し、レスポンスを保存します。パスワードは作成時のレスポンスにのみ表示されます。稼働状態になるまで待機してください。ClickPipe には稼働中の宛先が必要です:代わりに既存のサービスを使用する場合は、ClickHouse サービス 上に、Managed Postgres の ホスト名 を指定した Postgres CDC ClickPipe を作成します。このパイプは既存の行をコピーし、その後も継続的な変更に合わせて ClickHouse を同期した状態に保ちます。注意:パイプが
パイプはCLI から ClickHouse サービスに直接 SQL を実行します。最初の呼び出しで、Query API エンドポイントとサービス スコープの API キーが自動的に作成されます:Postgres への新しい書き込みは継続的にレプリケートされます。1 行を挿入し、件数が 1,000,001 に達するまでポーリングしてください (通常は 1 分未満です) :ヒアドキュメントは意図的にクォートしていないため、SQL が Postgres に届く前に、シェルが まず ClickPipe を削除し、次に Postgres サービスを削除します。サービスを削除すると、そのサービス内のすべてのデータが完全に削除されます。稼働中の ClickHouse サービス は直接削除できません。いったん停止し、
clickhousectl) と psql を使って、ClickHouse Managed Postgres のプロビジョニング、データの読み込み、ClickHouse へのレプリケーション、クエリの実行を、すべてコマンドラインから行う方法を説明します。コマンドは非対話型で、clickhousectl は --json を指定すると JSON を出力します。前提条件
psql (PostgreSQL client ツール。macOS では brew install libpq) と jq も必要です。書き込み操作 (作成、削除) には API key 認証 が必要です。OAuth ログインは読み取り専用です:CLICKHOUSE_CLOUD_API_KEY と CLICKHOUSE_CLOUD_API_SECRET を設定します。clickhousectl cloud auth status で確認し、スコープが read/write のエントリが表示されることを確認してください。第1部: Postgresを作成し、データを読み込む
Postgresサービスを作成する
clickhousectl cloud postgres reset-password $PG_ID --generate で新しいパスワードを生成します。サービスの Provisioning が完了するまで待機する
running になるまでポーリングしてください:サンプルデータを読み込む
psql を使って 100 万件のイベントを挿入します:c6gd.large (最小サイズ) で約7秒で完了します。クエリで確認してください。データは random() で生成されるため、行数は実行のたびに異なります。第2部: ClickHouse にレプリケートする
ClickHouse サービスを作成する
clickhousectl cloud service list で取得した CH_ID を設定し、CH_PASSWORD にはその default ユーザーのパスワードを設定します。これは pg_clickhouse のステップで必要です。テーブルを ClickHouse にレプリケートする
- レプリケートテーブルは ClickHouse サービス 上の
defaultデータベースに作成され、名前は--table-mappingのターゲットで指定したものになります publicationとreplication slotは自動的に作成され、publicationの対象はマップされたテーブルに限定されます。自分で管理するものを使う場合は--publication-nameを指定してください- Postgres の ホスト名 は直接指定してください。PgBouncer 経由のレプリケーションはサポートされていません
パイプがRunningになるまで待機します
Runningに到達するまでに、Provisioning、Setup、 (大きなテーブルの場合は) Snapshotを経由します。サービス上の最初のパイプでは、これに約4分かかります。FailedとInternalErrorは終端状態です:ClickHouse でレプリケートされたデータにクエリを実行する
Postgres から ClickHouse をクエリする
pg_clickhouse 拡張機能を使うと、Postgres をトランザクションデータと分析データの両方に対応する統合クエリレイヤーとして利用できます。ClickHouse の HTTPS ホスト名を取得し、psql でこの拡張機能を設定します。$CH_HOST と $CH_PASSWORD を展開します。これで、レプリケートテーブルが organization スキーマ内の外部テーブルとして参照できるようになり、それらに対するクエリは ClickHouse で実行されます。このデータセットを c6gd.large で測定したところ、分析クエリは外部テーブル経由のほうが 6~9 倍高速でした (たとえば、5 つの集計を含む GROUP BY は ClickHouse 経由で 176 ms、ローカルでは 1,133 ms、集計を伴う JOIN は 298 ms、ローカルでは 2,764 ms) 。クリーンアップ
stopped になるのを待ってから削除してください。