Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

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

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. Создайте публикацию с таблицами, которые вы хотите реплицировать. Мы настоятельно рекомендуем включать в публикацию только необходимые таблицы, чтобы избежать лишней нагрузки на производительность.

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

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

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";

Публикация clickpipes определяет набор таблиц, события изменений из которых будут передаваться в ClickPipes. Мы не рекомендуем использовать FOR ALL TABLES, если только вы не собираетесь реплицировать все таблицы, поскольку включение лишних таблиц увеличивает объём WAL-трафика из Postgres в 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();

Что дальше?

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

Navigation