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

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

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

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

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

  1. Нажмите на раздел Server parameters
Server Parameters в Azure Flexible Server для Postgres
  1. Измените значение wal_level на logical
Изменение wal_level на logical в Azure Flexible Server для 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 ROLE clickpipes_user 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 for Postgres или Jump Server/Bastion, если вы используете SSH-туннелирование.
Добавление IP-адресов ClickPipes в Firewall в Azure Flexible Server for Postgres

Что дальше?

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