Перейти к основному содержимому
Перейти к основному содержимому

Руководство по настройке источника Azure Flexible Server для Postgres

ClickPipes поддерживает Postgres версии 12 и выше.

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

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

  1. Перейдите в раздел Server parameters
Параметры сервера в Azure Flexible Server for Postgres
  1. Измените значение wal_level на logical
Изменение wal_level на logical в Azure Flexible Server for Postgres
  1. Это изменение потребует перезапуска сервера, поэтому перезапустите его, когда получите соответствующий запрос.
Перезапуск сервера после изменения wal_level

Создание пользователей ClickPipes и выдача прав доступа

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

    Примечание

    Любая таблица, включённая в публикацию, должна либо иметь определённый первичный ключ, либо иметь replica identity, настроенную в значение FULL. См. раздел Postgres FAQs для рекомендаций по выбору области публикаций.

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

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

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
      

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

  5. Установите wal_sender_timeout в 0 для clickpipes_user:

    ALTER ROLE clickpipes_user SET wal_sender_timeout to 0;
    

Добавьте IP-адреса ClickPipes в Firewall

Выполните приведённые ниже шаги, чтобы добавить IP-адреса ClickPipes в вашу сеть.

  1. Перейдите на вкладку Networking и добавьте IP-адреса ClickPipes в Firewall вашего Azure Flexible Server Postgres или Jump Server/Bastion, если вы используете SSH-туннелирование.
Добавление IP-адресов ClickPipes в Firewall Azure Flexible Server Postgres

Что дальше?

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