メインコンテンツへスキップ
メインコンテンツへスキップ

AlloyDB Postgres ソース設定ガイド

サポートされているバージョン

ClickPipes を使用して AlloyDB インスタンスから ClickHouse Cloud へデータをレプリケーションするには、インスタンスを 論理レプリケーション (logical replication) 用に構成しておく必要があります。この機能は AlloyDB バージョン 14 以降 でサポートされています。

論理レプリケーションを有効にする

AlloyDB インスタンスで論理レプリケーションが有効になっているかを確認するには、プライマリ インスタンスで次のクエリを実行します。

SHOW  wal_level;

結果が logical の場合、論理レプリケーションはすでに有効化されているため、次のステップ に進むことができます。結果が replica の場合は、プライマリインスタンスで alloydb.enable_pglogical フラグと alloydb.logical_decoding フラグを on に設定する必要があります。

注記

AlloyDB flags のドキュメント に記載されているとおり、論理レプリケーションを有効にするフラグを変更するには、プライマリインスタンスの再起動が必要です。

これらのフラグを有効にするには、次の手順を実行します。

  1. Google Cloud Console で AlloyDB の Clusters ページに移動します。プライマリインスタンスの Actions メニューから Edit をクリックします。

    プライマリインスタンスの設定を編集
  2. Advanced configuration options までスクロールし、そのセクションを展開します。FlagsAdd a database flag をクリックします。

    allowdb.enable_pglogical と alloydb.logical_decoding フラグを on に設定
  3. Update instance をクリックして設定変更を保存します。この操作により、プライマリインスタンスの再起動が行われる 点に注意してください。

  4. インスタンスのステータスが Updating から Ready に変わったら、プライマリインスタンスに対して次のクエリを実行し、論理レプリケーションが有効になっていることを確認します。

    SHOW  wal_level;
    

    結果は logical になっている必要があります。

    論理レプリケーションが有効になっていることを確認

ClickPipes ユーザーを作成し、レプリケーション権限を管理する

管理者ユーザーとして AlloyDB インスタンスに接続し、次のコマンドを実行します。

  1. ClickPipes 専用のユーザーを作成します:

    CREATE USER clickpipes_user PASSWORD 'some-password';
    
  2. レプリケーションしたいスキーマに対する権限を専用ユーザーに付与します。

    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;
    

    上記の例は、public スキーマに対する権限を示しています。ClickPipes を使ってレプリケーションしたい各スキーマごとに、この一連のコマンドを繰り返してください。

  3. レプリケーションを管理するための権限を専用ユーザーに付与します:

    ALTER ROLE clickpipes_user REPLICATION;
    
  4. レプリケーションしたいテーブルを含む publication を作成します。パフォーマンスのオーバーヘッドを抑えるため、publication には必要なテーブルのみを含めることを強く推奨します。

    注記

    publication に含まれるすべてのテーブルには、primary key が定義されているか、replica identityFULL に設定されている必要があります。スコープの決め方については、Postgres FAQs を参照してください。

    • 特定のテーブルに対する publication を作成するには:

      CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
      
    • 特定のスキーマ内のすべてのテーブルに対する publication を作成するには:

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
      

    clickpipes publication は、指定したテーブルから生成される変更イベントのセットを保持し、後でレプリケーションストリームを取り込む際に使用されます。

ネットワークセキュリティを構成する

注記

ClickPipes は Private Service Connect (PSC) 接続をサポートしていません。AlloyDB インスタンスへのパブリックアクセスを許可しない場合は、安全に接続するためにSSH トンネルを使用できます。PSC は今後サポートされる予定です。

次に、ClickPipes から AlloyDB インスタンスへの接続を許可する必要があります。

  1. Google Cloud Console で AlloyDB の Clusters ページに移動します。プライマリインスタンスを選択して Overview ページを開きます。

  2. Instances in your cluster までスクロールし、Edit primary をクリックします。

  3. Enable Public IP チェックボックスをオンにして、パブリックインターネット経由でインスタンスへの接続を許可します。Authorized external networks で、サービスをデプロイしているリージョンに対応した ClickPipes の静的 IP アドレス一覧 を入力します。

    IP 許可リストを使用してパブリックアクセス用のネットワークを構成する
    注記

    AlloyDB では、アドレスは CIDR 表記で指定する必要があります。提供されている ClickPipes の静的 IP アドレス一覧は、各アドレスの末尾に /32 を付与することで、この表記に変換できます。

  4. Network Security で、Require SSL Encryption (default) を選択します(未選択の場合)。

  5. Update instance をクリックして、ネットワークセキュリティ構成の変更を保存します。

次のステップ

これで ClickPipe を作成 し、Postgres インスタンスから ClickHouse Cloud へのデータ取り込みを開始できます。 Postgres インスタンスのセットアップ時に使用した接続情報は、ClickPipe 作成時にも必要になるため、必ずメモしておいてください。