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

Supabase ソースセットアップガイド

本ガイドでは、ClickPipes で利用するための Supabase の Postgres データベースのセットアップ方法について説明します。

注記

ClickPipes は、シームレスなレプリケーションのために、Supabase を IPv6 をネイティブサポートする形で利用できます。

権限とレプリケーションスロットを持つユーザーの作成

CDC に適した必要な権限を付与した ClickPipes 用の新しいユーザーを作成し、 レプリケーションに使用するパブリケーションも作成します。

そのために、Supabase プロジェクトの SQL Editor を開きます。 ここで、次の SQL コマンドを実行します。

  CREATE USER clickpipes_user PASSWORD 'clickpipes_password';
  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;

-- ユーザーにレプリケーション権限を付与
  ALTER USER clickpipes_user REPLICATION;

-- パブリケーションを作成します。ミラー作成時に使用します
  CREATE PUBLICATION clickpipes_publication FOR ALL TABLES;
ユーザーとパブリケーションのコマンド

Run をクリックして、パブリケーションとユーザーを準備します。

注記

clickpipes_userclickpipes_password は、任意のユーザー名とパスワードに置き換えてください。

また、ClickPipes でミラーを作成する際には、必ず同じパブリケーション名を使用してください。

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 セクションに移動し、各パラメータを確認して控えておきます。

Supabase の接続情報の場所を確認する
参考文献

CDC(変更データキャプチャ)ベースのレプリケーションでは connection pooler はサポートされていないため、無効化する必要があります。

RLS に関する注意

ClickPipes の Postgres ユーザーは RLS ポリシーで制限してはいけません。制限するとデータの欠損が発生するおそれがあります。以下のコマンドを実行して、このユーザーに対する RLS ポリシーを無効化できます。

ALTER USER clickpipes_user BYPASSRLS;

次のステップ

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