Перейти к основному содержанию
Если вы используете одного из поддерживаемых провайдеров (см. боковую панель), обратитесь к руководству для этого провайдера.
ClickPipes поддерживает Postgres версии 12 и выше.

Включение логической репликации

  1. Чтобы включить репликацию в экземпляре Postgres, убедитесь, что заданы следующие настройки:
    wal_level = logical
    
    Чтобы проверить это, можно выполнить следующую SQL-команду:
    SHOW wal_level;
    
    В результате должно быть значение logical. Если это не так, выполните:
    ALTER SYSTEM SET wal_level = logical;
    
  2. Кроме того, для экземпляра Postgres рекомендуется задать следующие настройки:
    max_wal_senders > 1
    max_replication_slots >= 4
    
    Чтобы проверить это, можно выполнить следующие SQL-команды:
    SHOW max_wal_senders;
    SHOW max_replication_slots;
    
    Если значения не соответствуют рекомендуемым, можно выполнить следующие SQL-команды, чтобы установить их:
    ALTER SYSTEM SET max_wal_senders = 10;
    ALTER SYSTEM SET max_replication_slots = 10;
    
  3. Если вы внесли какие-либо изменения в конфигурацию, как указано выше, вам НЕОБХОДИМО ПЕРЕЗАПУСТИТЬ экземпляр Postgres, чтобы изменения вступили в силу.

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

Подключитесь к своему экземпляру Postgres под пользователем с правами администратора и выполните следующие команды:
  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. Создайте публикацию с таблицами, которые вы хотите реплицировать. Мы настоятельно рекомендуем включать в публикацию только необходимые таблицы, чтобы избежать лишней нагрузки на производительность.
Каждая таблица, включённая в публикацию, должна либо иметь определённый первичный ключ, либо иметь настроенный параметр replica identity со значением FULL. Рекомендации по выбору состава публикаций см. в разделе Postgres FAQ.
  • Чтобы создать публикацию для конкретных таблиц:
    CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
    
    • Чтобы создать публикацию для всех таблиц в определённой схеме:
      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
      
Публикация clickpipes будет содержать набор событий изменения, сгенерированных указанными таблицами, и позже будет использоваться для приёма потока репликации.

Разрешение подключений в pg_hba.conf для пользователя ClickPipes

Если вы настраиваете систему самостоятельно, вам нужно разрешить подключения для пользователя ClickPipes с IP-адресов ClickPipes, выполнив следующие шаги. Если вы используете управляемый сервис, вы можете сделать то же самое, следуя документации провайдера.
  1. Внесите необходимые изменения в файл pg_hba.conf, чтобы разрешить подключения для пользователя ClickPipes с IP-адресов ClickPipes. Пример записи в файле pg_hba.conf:
    host    all   clickpipes_user     0.0.0.0/0          scram-sha-256
    
  2. Перезагрузите экземпляр PostgreSQL, чтобы изменения вступили в силу:
    SELECT pg_reload_conf();
    

Увеличьте max_slot_wal_keep_size

Это рекомендуемое изменение конфигурации поможет избежать удаления слота репликации из-за больших транзакций или коммитов. Вы можете увеличить значение параметра max_slot_wal_keep_size для своего экземпляра PostgreSQL до более высокого уровня (не менее 100 ГБ или 102400), обновив файл postgresql.conf.
max_slot_wal_keep_size = 102400
Можно перезагрузить экземпляр Postgres, чтобы изменения вступили в силу:
SELECT pg_reload_conf();
Чтобы получить более точную рекомендацию по этому параметру, вы можете обратиться к команде ClickPipes.

Что дальше?

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