サポート対象バージョン
ClickPipes を使用して AlloyDB インスタンスから ClickHouse Cloud にデータを連携するには、インスタンスで論理レプリケーションが設定されている必要があります。これは AlloyDB Version 14 以降でサポートされています。
論理レプリケーションを有効にする
AlloyDB インスタンスで論理レプリケーションが有効になっているかを確認するには、プライマリインスタンスに対して次のクエリを実行します。
SHOW wal_level;結果が logical の場合は、論理レプリケーションはすでに有効になっているため、次の手順に進んでください。結果が replica の場合は、プライマリ インスタンスで alloydb.enable_pglogical フラグと alloydb.logical_decoding フラグを on に設定する必要があります。
これらのフラグを有効にするには、次の手順を実行します。
-
Google Cloud Console で AlloyDB の Clusters ページに移動します。プライマリ インスタンスの Actions メニューから Edit をクリックします。

-
下にスクロールして Advanced configuration options セクションを展開します。Flags で Add a database flag をクリックします。
allowdb.enable_pglogicalフラグを追加し、値をonに設定しますalloydb.logical_decodingフラグを追加し、値をonに設定します

-
Update instance をクリックして構成変更を保存します。この操作により、プライマリ インスタンスが再起動される点に注意してください。
-
インスタンスのステータスが
UpdatingからReadyに変わったら、次のクエリをプライマリ インスタンスに対して実行し、論理レプリケーションが有効になっていることを確認します。SHOW wal_level;結果は
logicalになるはずです。
ClickPipes ユーザーを作成し、レプリケーション権限を管理する
管理者ユーザーとして AlloyDB インスタンスに接続し、次のコマンドを実行します。
-
ClickPipes 専用のユーザーを作成します。
CREATE USER clickpipes_user PASSWORD 'some-password'; -
前の手順で作成したユーザーに、スキーマレベルの読み取り専用アクセス権を付与します。次の例は
publicスキーマに対する権限を示しています。レプリケーションするテーブルを含む各スキーマに対して、これらのコマンドを繰り返してください。GRANT USAGE ON SCHEMA "public" TO clickpipes_user; GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user; ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user; -
ユーザーにレプリケーション権限を付与します。
ALTER USER clickpipes_user WITH REPLICATION; -
レプリケーションしたいテーブルを含む publication を作成します。パフォーマンスのオーバーヘッドを避けるため、publication には必要なテーブルだけを含めることを強く推奨します。
-
特定のテーブルに対する publication を作成するには:
CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;-
特定のスキーマ内のすべてのテーブルに対する publication を作成するには:
CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
-
clickpipes publication は、変更イベントが ClickPipes にストリーミングされる対象テーブルの集合を定義します。すべてのテーブルをレプリケーションするのでない限り、FOR ALL TABLES の使用は推奨しません。不要なテーブルを含めると、Postgres から ClickPipes への WAL トラフィックが増加し、レプリケーション全体の効率が低下するためです。
ネットワークアクセスを設定する
次に、ClickPipes が AlloyDB インスタンスに接続する方法を選択します。
GCP でホストされている ClickHouse Cloud サービスからプライベート接続するには、GCP Private Service Connect ガイドに従って、AlloyDB インスタンス用のリバース プライベート エンドポイントを設定します。
-
Google Cloud Console で、AlloyDB の Clusters ページに移動します。プライマリインスタンスを選択して、概要 ページを開きます。
-
Instances in your cluster までスクロールし、Edit primary をクリックします。
-
Enable Public IP チェックボックスをオンにして、パブリックインターネット経由でインスタンスへの接続を許可します。Authorized external networks で、サービスのデプロイ先リージョンに対応する ClickPipes の静的 IP アドレス一覧 を入力します。

-
Network Security で、Require SSL Encryption (default) を選択します (まだ選択されていない場合) 。
-
Update instance をクリックして、ネットワークセキュリティ設定の変更を保存します。
AlloyDB インスタンスへのパブリックアクセスを許可しない場合は、まず SSH 踏み台サーバーを用意し、SSH トンネル経由で安全に接続できるようにする必要があります。Google Cloud Platform で SSH 踏み台サーバーを設定するには、次の手順を実行します。
-
公式ドキュメント に従って、Google Compute Engine (GCE) インスタンスを作成して起動します。
- GCE インスタンスが AlloyDB インスタンスと同じ Virtual Private Network (VPC) 内にあることを確認します。
- GCE インスタンスに 静的パブリック IP アドレス が割り当てられていることを確認します。ClickPipes を SSH 踏み台サーバーに接続する際、この IP アドレスを使用します。
-
SSH 踏み台サーバーのファイアウォールルールを更新し、サービスのデプロイ先リージョンに対応する ClickPipes の静的 IP アドレス一覧 からのトラフィックを許可します。
-
AlloyDB のファイアウォールルールを更新し、SSH 踏み台サーバーからのトラフィックを許可します。
次のステップ
これで、ClickPipe を作成して、Postgres インスタンスから ClickHouse Cloud へのデータ取り込みを開始できます。 ClickPipe の作成時に必要になるため、Postgres インスタンスのセットアップ時に使用した接続情報は必ず控えておいてください。