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

> Настройка Azure Flexible Server for Postgres в качестве источника для ClickPipes

# Руководство по настройке источника Azure flexible server for Postgres

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

ClickPipes поддерживает Postgres версии 12 и более поздних версий.

<div id="enable-logical-replication">
  ## Включите логическую репликацию
</div>

**Вам не нужно** выполнять приведённые ниже шаги, если для `wal_level` уже установлено значение `logical`. Обычно этот параметр уже настроен, если вы переходите с другого инструмента репликации данных.

1. Нажмите на раздел **Server parameters**

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/server_parameters.png?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=3cf1657436550cfbdd918ccaea023886" alt="Server Parameters в Azure Flexible Server for Postgres" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/server_parameters.png" />

2. Измените значение `wal_level` на `logical`

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/wal_level.png?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=ae0ad0836f33276dfe05da921c6b84a6" alt="Изменение wal_level на logical в Azure Flexible Server for Postgres" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/wal_level.png" />

3. Для применения этого изменения потребуется перезапуск сервера. Перезапустите его, когда появится запрос.

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/restart.png?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=cbb9e07703a6c54bebc9b50dc20e9af8" alt="Перезапуск сервера после изменения wal_level" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/restart.png" />

<div id="creating-clickpipes-user-and-granting-permissions">
  ## Создание пользователей ClickPipes и выдача разрешений
</div>

Подключитесь к вашему Azure Flexible Server Postgres под пользователем admin и выполните приведённые ниже команды:

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="add-clickpipes-ips-to-firewall">
  ## Добавьте IP-адреса ClickPipes в брандмауэр
</div>

Чтобы добавить [IP-адреса ClickPipes](/ru/integrations/clickpipes/home#list-of-static-ips) в свою сеть, выполните следующие действия.

1. Перейдите на вкладку **Networking** и добавьте [IP-адреса ClickPipes](/ru/integrations/clickpipes/home#list-of-static-ips) в брандмауэр
   вашего Azure Flexible Server Postgres или jump server/бастиона, если вы используете SSH-туннелирование.

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/8xU-7NRzcVe16bmG/images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/firewall.png?fit=max&auto=format&n=8xU-7NRzcVe16bmG&q=85&s=7b5af7ae361e173373f714724f774ffa" alt="Добавление IP-адресов ClickPipes в брандмауэр Azure Flexible Server for Postgres" size="lg" width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/azure-flexible-server-postgres/firewall.png" />

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

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