Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Supabase 소스 설정 가이드

ClickPipes에서 사용할 수 있도록 Supabase Postgres를 설정하는 방법을 안내하는 가이드입니다.

권한과 replication slot을 갖는 사용자 생성하기

관리자 사용자로 Supabase 인스턴스에 연결한 후 다음 명령을 실행하십시오:

  1. ClickPipes 전용 사용자를 생성합니다:

    CREATE USER clickpipes_user PASSWORD 'some-password';
  2. 이전 단계에서 생성한 사용자에게 스키마 수준의 읽기 전용 권한을 부여합니다. 다음 예시는 public 스키마에 대한 권한을 보여줍니다. 복제하려는 테이블이 포함된 각 스키마에 대해 이 명령을 반복하십시오:

    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;
  3. 사용자에게 복제 권한을 부여합니다:

    ALTER USER clickpipes_user WITH REPLICATION;
  4. 복제하려는 테이블이 포함된 publication을 생성합니다. 성능 오버헤드를 피하려면 publication에는 필요한 테이블만 포함하는 것을 강력히 권장합니다.

  • 특정 테이블에 대한 publication을 생성하려면:

    CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
    • 특정 스키마의 모든 테이블에 대한 publication을 생성하려면:

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";

clickpipes publication은 변경 이벤트가 ClickPipes로 스트리밍될 테이블 집합을 정의합니다. 모든 테이블을 복제할 의도가 없다면 FOR ALL TABLES 사용은 권장하지 않습니다. 불필요한 테이블을 포함하면 Postgres에서 ClickPipes로 전달되는 WAL 트래픽이 증가하고 전체 복제 효율이 저하되기 때문입니다.

max_slot_wal_keep_size 늘리기

Supabase에 사용할 연결 정보

Supabase 프로젝트의 Project Settings -> Database(Configuration 아래)로 이동하십시오.

중요: 이 페이지에서 Display connection pooler를 비활성화한 다음, Connection parameters 섹션으로 이동하여 매개변수를 확인하고 복사해 두십시오.

Supabase 연결 정보 찾기

RLS 관련 참고 사항

ClickPipes Postgres 사용자는 RLS 정책의 적용을 받지 않아야 합니다. 그렇지 않으면 데이터가 누락될 수 있습니다. 아래 명령을 실행하여 해당 사용자의 RLS 정책을 비활성화할 수 있습니다.

ALTER USER clickpipes_user BYPASSRLS;

다음 단계는 무엇인가요?

이제 ClickPipe를 생성하고 Postgres 인스턴스의 데이터를 ClickHouse Cloud로 수집하기 시작할 수 있습니다. ClickPipe 생성 과정에서 필요하므로 Postgres 인스턴스를 설정할 때 사용한 연결 정보를 반드시 기록해 두십시오.

Navigation