> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Настройте экземпляр Supabase в качестве источника для ClickPipes

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

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

Это руководство о том, как настроить Supabase Postgres для работы с ClickPipes.

<Note>
  ClickPipes изначально поддерживает Supabase по IPv6, что обеспечивает бесшовную репликацию.
</Note>

<div id="creating-a-user-with-permissions-and-replication-slot">
  ## Создание пользователя с разрешениями и слотом репликации
</div>

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

1. Создайте отдельного пользователя для ClickPipes:

   ```sql theme={null}
   CREATE USER clickpipes_user PASSWORD 'some-password';
   ```

2. Предоставьте пользователю, созданному на предыдущем шаге, доступ к схеме в режиме только для чтения. В следующем примере показаны разрешения для схемы `public`. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать:

   ```sql theme={null}
   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. Предоставьте пользователю привилегии репликации:

   ```sql theme={null}
   ALTER USER clickpipes_user WITH REPLICATION;
   ```

4. Создайте [публикацию](https://www.postgresql.org/docs/current/logical-replication-publication.html) с таблицами, которые вы хотите реплицировать. Мы настоятельно рекомендуем включать в публикацию только необходимые таблицы, чтобы избежать лишних накладных расходов на производительность.

<Warning>
  Любая таблица, включённая в публикацию, должна либо иметь определённый **первичный ключ**, *либо* иметь параметр **replica identity** со значением `FULL`. Рекомендации по выбору области охвата см. в [FAQ по Postgres](/ru/integrations/clickpipes/postgres/faq#how-should-i-scope-my-publications-when-setting-up-replication).
</Warning>

* Чтобы создать публикацию для конкретных таблиц:

  ```sql theme={null}
  CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
  ```

  * Чтобы создать публикацию для всех таблиц в определённой схеме:

    ```sql theme={null}
    CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
    ```

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

<div id="increase-max_slot_wal_keep_size">
  ## Увеличьте `max_slot_wal_keep_size`
</div>

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

  Вы можете увеличить значение параметра `max_slot_wal_keep_size` для вашей базы данных Supabase до большего значения (не менее 100 GB или `102400`), следуя [документации Supabase](https://supabase.com/docs/guides/database/custom-postgres-config#cli-supported-parameters)

  Чтобы получить более точную рекомендацию по выбору этого значения, вы можете обратиться к команде ClickPipes.
</Warning>

<div id="connection-details-to-use-for-supabase">
  ## Сведения о подключении для Supabase
</div>

Перейдите в `Project Settings` проекта Supabase -> `Database` (в разделе `Configuration`).

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

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8a08bda2/KeiVE4MGTrCd9SX4/images/integrations/data-ingestion/clickpipes/postgres/source/setup/supabase/supabase-connection-details.jpg?fit=max&auto=format&n=KeiVE4MGTrCd9SX4&q=85&s=6d69a2aa26c7fa87edaaf7887bfb2f86" size="lg" border alt="Где найти сведения о подключении Supabase" border width="1924" height="2146" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/setup/supabase/supabase-connection-details.jpg" />

<Info>
  Пул соединений не поддерживается для репликации на основе CDC, поэтому его нужно отключить.
</Info>

<div id="note-on-rls">
  ## Примечание о RLS
</div>

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

```sql theme={null}
ALTER USER clickpipes_user BYPASSRLS;
```

<div id="whats-next">
  ## Что дальше?
</div>

Теперь вы можете [создать свой ClickPipe](/ru/integrations/clickpipes/postgres) и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud.
Обязательно сохраните сведения о подключении, которые вы использовали при настройке экземпляра Postgres, так как они понадобятся вам при создании ClickPipe.
