Перейти к основному содержанию
Перейти к основному содержанию

Руководство по настройке источника Supabase

Это руководство по настройке Supabase Postgres для использования в ClickPipes.

Примечание

ClickPipes нативно поддерживает Supabase через IPv6 для бесшовной репликации.

Создание пользователя с правами и слотом репликации

Подключитесь к вашему инстансу 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 ROLE clickpipes_user REPLICATION;
    
  4. Создайте publication с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в publication только те таблицы, которые вам действительно нужны, чтобы избежать лишних накладных расходов на производительность.

    Примечание

    Каждая таблица, включённая в publication, должна либо иметь определённый primary key, либо её replica identity должна быть настроена в значение FULL. См. раздел Postgres FAQs для получения рекомендаций по выбору области действия publication.

    • Чтобы создать publication для конкретных таблиц:

      CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
      
    • Чтобы создать publication для всех таблиц в определённой схеме:

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
      

    Publication clickpipes будет содержать набор событий изменений, сгенерированных из указанных таблиц, и позже будет использоваться для приёма потока репликации.

Увеличение max_slot_wal_keep_size

Примечание

Этот шаг приведёт к перезапуску вашей базы данных Supabase и может вызвать короткий период недоступности.

Вы можете увеличить параметр max_slot_wal_keep_size для вашей базы данных Supabase до большего значения (как минимум до 100GB или 102400), следуя инструкции в Supabase Docs.

За более точной рекомендацией этого значения вы можете обратиться к команде ClickPipes.

Параметры подключения для использования с Supabase

Перейдите в Project Settings вашего проекта Supabase, затем в Database (в разделе Configuration).

Важно: Отключите Display connection pooler на этой странице, затем перейдите к разделу Connection parameters и запишите или скопируйте параметры.

Найти параметры подключения Supabase
Справочные материалы

Пул подключений не поддерживается для репликации на основе CDC (фиксации изменений данных), поэтому его необходимо отключить.

Примечание по RLS

К пользователю ClickPipes Postgres не должны применяться политики RLS, так как это может привести к потере данных. Вы можете отключить политики RLS для этого пользователя, выполнив следующую команду:

ALTER USER clickpipes_user BYPASSRLS;

Что дальше?

Теперь вы можете создать ClickPipe и начать приём данных из экземпляра Postgres в ClickHouse Cloud. Обязательно запишите параметры подключения, которые вы использовали при настройке экземпляра Postgres, так как они понадобятся вам при создании ClickPipe.