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セクションまでスクロールして実施します。新しい値を決める際の参考として、こちらを参照してください。

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