> ## 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.

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

# Руководство по настройке источника Postgres в Google Cloud SQL

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

<Info>
  Если вы используете одного из поддерживаемых провайдеров (в боковой панели), см. руководство для соответствующего провайдера.
</Info>

<div id="supported-postgres-versions">
  ## Поддерживаемые версии Postgres
</div>

Postgres 12 и новее

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

**Вам не нужно** выполнять приведённые ниже шаги, если параметр `cloudsql. logical_decoding` включён. Этот параметр обычно уже предварительно настроен, если вы переходите с другого инструмента репликации данных.

1. Нажмите кнопку **Edit** на странице Overview.

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8a08bda2/KeiVE4MGTrCd9SX4/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/edit.png?fit=max&auto=format&n=KeiVE4MGTrCd9SX4&q=85&s=2ea2321d449fd02090d5bc7c9f2304e5" alt="Кнопка Edit в Cloud SQL Postgres" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/edit.png" />

2. Перейдите в раздел Flags и установите `cloudsql.logical_decoding` в значение on. Для применения этого изменения потребуется перезапустить сервер Postgres.

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8a08bda2/KeiVE4MGTrCd9SX4/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/cloudsql_logical_decoding1.png?fit=max&auto=format&n=KeiVE4MGTrCd9SX4&q=85&s=238da2a9e622700f31eda2bd203bdd0f" alt="Установите cloudsql.logical_decoding в значение on" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/cloudsql_logical_decoding1.png" />

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8a08bda2/KeiVE4MGTrCd9SX4/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/cloudsql_logical_decoding3.png?fit=max&auto=format&n=KeiVE4MGTrCd9SX4&q=85&s=22179551b6437ce6227d41e4504b43d1" alt="Перезапуск сервера" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/cloudsql_logical_decoding3.png" />

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

Подключитесь к Cloud SQL 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` будет содержать набор событий изменений из указанных таблиц и позже будет использоваться для приёма потока репликации.

[//]: # "TODO Add SSH Tunneling"

<div id="add-clickpipes-ips-to-firewall">
  ## Добавьте IP-адреса ClickPipes в межсетевой экран
</div>

Выполните следующие действия, чтобы добавить IP-адреса ClickPipes в настройки сети.

<Note>
  Если вы используете SSH-туннелирование, добавьте [IP-адреса ClickPipes](/ru/integrations/clickpipes/home#list-of-static-ips) в правила межсетевого экрана jump server/бастиона.
</Note>

1. Перейдите в раздел **Connections**

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8a08bda2/KeiVE4MGTrCd9SX4/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/connections.png?fit=max&auto=format&n=KeiVE4MGTrCd9SX4&q=85&s=fc7611b010f8407430a9907a6f259f4a" alt="Раздел Connections в Cloud SQL" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/connections.png" />

2. Перейдите в подраздел **Networking**

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8a08bda2/KeiVE4MGTrCd9SX4/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/connections_networking.png?fit=max&auto=format&n=KeiVE4MGTrCd9SX4&q=85&s=b7618f3bf8850180e89bae933d8cbebd" alt="Подраздел Networking в Cloud SQL" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/connections_networking.png" />

3. Добавьте [публичные IP-адреса ClickPipes](/ru/integrations/clickpipes/home#list-of-static-ips)

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8a08bda2/KeiVE4MGTrCd9SX4/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall1.png?fit=max&auto=format&n=KeiVE4MGTrCd9SX4&q=85&s=72d7b49781c5b9a89680fb2e825e8de6" alt="Добавление сетей ClickPipes в межсетевой экран" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall1.png" />

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8a08bda2/KeiVE4MGTrCd9SX4/images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall2.png?fit=max&auto=format&n=KeiVE4MGTrCd9SX4&q=85&s=55db73af1b95a829239573e0389b99f7" alt="Сети ClickPipes добавлены в межсетевой экран" size="lg" border width="3024" height="1964" data-path="images/integrations/data-ingestion/clickpipes/postgres/source/google-cloudsql/firewall2.png" />

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

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