PlanetScale for Postgres ソース設定ガイド
PlanetScale for Postgres は現在早期アクセス段階にあります。
サポートされている Postgres バージョン
ClickPipes は Postgres バージョン 12 以降をサポートしています。
論理レプリケーションを有効化する
-
Postgres インスタンスでレプリケーションを有効にするには、以下の設定が行われていることを確認する必要があります:
設定値を確認するには、次の SQL コマンドを実行します:
出力はデフォルトで
logicalになっているはずです。そうなっていない場合は、PlanetScale コンソールにログインし、Cluster configuration->Parametersに移動して、Write-ahead logセクションまでスクロールして変更してください。

PlanetScale コンソールでこれを変更すると、必ず再起動が発生します。
- さらに、
max_slot_wal_keep_sizeの設定値をデフォルトの 4GB から増やすことを推奨します。これも PlanetScale コンソールから、Cluster configuration->Parametersに移動し、Write-ahead logセクションまでスクロールして変更します。新しい値を決定する際は、こちら を参照してください。

権限と publication を持つユーザーの作成
デフォルトの postgres.<...> ユーザーを使用して PlanetScale Postgres インスタンスに接続し、次のコマンドを実行します。
-
ClickPipes 専用のユーザーを作成します。
-
前の手順で作成したユーザーに、スキーマレベルの読み取り専用アクセス権を付与します。次の例では、
publicスキーマに対する権限を示しています。レプリケートしたいテーブルを含む各スキーマに対して、これらのコマンドを繰り返してください。 -
ユーザーにレプリケーション権限を付与します。
-
レプリケートしたいテーブルを含む publication を作成します。パフォーマンスのオーバーヘッドを避けるため、publication には必要なテーブルのみを含めることを強く推奨します。
注意publication に含まれるすべてのテーブルには、primary key が定義されているか、replica identity が
FULLに設定されている必要があります。スコープ設定に関するガイダンスについては、Postgres FAQs を参照してください。-
特定のテーブル向けに publication を作成する場合:
-
特定のスキーマ内のすべてのテーブル向けに publication を作成する場合:
clickpipespublication には、指定したテーブルから生成される変更イベントの集合が含まれ、後でレプリケーションストリームを取り込むために使用されます。 -
注意事項
- PlanetScale Postgres に接続するには、上で作成したユーザー名に現在のブランチを付加する必要があります。たとえば、作成したユーザーが
clickpipes_userという名前だった場合、ClickPipe 作成時に指定する実際のユーザーはclickpipes_user.branchとなり、このbranchは現在の PlanetScale Postgres のブランチの「id」を指します。これを手早く確認するには、先ほどユーザーを作成する際に使用したpostgresユーザーのユーザー名を参照し、ピリオド以降の部分がブランチ ID になります。 - PlanetScale Postgres に接続する CDC パイプでは、
PSBouncerポート(現在は6432)を使用しないでください。通常のポート5432を使用する必要があります。初期ロード専用のパイプであれば、どちらのポートも使用可能です。 - 常にプライマリインスタンスのみに接続していることを確認してください。レプリカインスタンスへの接続は現在サポートされていません。
次のステップ
これで、ClickPipe を作成し、Postgres インスタンスから ClickHouse Cloud へのデータ取り込みを開始できます。 Postgres インスタンスをセットアップする際に使用した接続情報は、ClickPipe の作成時にも必要になるため、必ず控えておいてください。