Supabase ソースセットアップガイド
このガイドでは、ClickPipes から利用する Supabase Postgres をセットアップする方法を説明します。
ClickPipes は、シームレスなレプリケーションのために Supabase を IPv6 でネイティブサポートしています。
権限を持つユーザーとレプリケーションスロットの作成
管理者ユーザーとして Supabase インスタンスに接続し、次のコマンドを実行します。
-
ClickPipes 専用のユーザーを作成します:
-
前の手順で作成したユーザーに対して、スキーマレベルの読み取り専用アクセス権を付与します。次の例は
publicスキーマに対する権限を示しています。レプリケーションしたいテーブルを含む各スキーマに対して、これらのコマンドを繰り返してください: -
ユーザーにレプリケーション権限を付与します:
-
レプリケーションしたいテーブルを含むパブリケーションを作成します。パフォーマンス上のオーバーヘッドを避けるため、パブリケーションには必要なテーブルのみを含めることを強く推奨します。
注意パブリケーションに含めるテーブルはすべて、主キーが定義されているか、レプリカ識別子 (replica identity) が
FULLに設定されている必要があります。スコープ設定の指針については、Postgres FAQ を参照してください。-
特定のテーブルに対するパブリケーションを作成する場合:
-
特定のスキーマ内のすべてのテーブルに対するパブリケーションを作成する場合:
clickpipesパブリケーションには、指定されたテーブルから生成される一連の変更イベントが含まれ、後でレプリケーションストリームを取り込むために使用されます。 -
max_slot_wal_keep_size の増加
この手順を実行すると Supabase データベースが再起動され、短時間のダウンタイムが発生する可能性があります。
Supabase Docs に従って、Supabase データベースの max_slot_wal_keep_size パラメータを、より大きな値(少なくとも 100GB または 102400)に増やすことができます。
この値について、より適切な推奨値が必要な場合は、ClickPipes チームにお問い合わせください。
Supabase で使用する接続情報
Supabase プロジェクトの Project Settings -> Database(Configuration 配下)に移動します。
重要: このページで Display connection pooler を無効にし、Connection parameters セクションに移動してパラメータを確認/コピーします。

CDC ベースのレプリケーションでは connection pooler はサポートされていないため、無効化する必要があります。
RLS に関する注意
ClickPipes の Postgres ユーザーは RLS ポリシーによって制限してはいけません。制限すると、データの欠落につながる可能性があります。以下のコマンドを実行すると、このユーザーに対する RLS ポリシーを無効化できます。
次のステップ
これで、ClickPipe を作成して、Postgres インスタンスから ClickHouse Cloud へのデータ取り込みを開始できます。 Postgres インスタンスをセットアップした際に使用した接続情報は、ClickPipe 作成時にも必要になるため、必ず控えておきましょう。