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

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