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

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

Справочные материалы

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

Поддерживаемые версии Postgres

Любая версия Postgres 12 и новее

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

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

  1. Нажмите кнопку Edit на странице Overview.
Кнопка Edit в Cloud SQL Postgres
  1. Перейдите в раздел Flags и измените cloudsql.logical_decoding на on, а wal_sender_timeout — на 0. Для применения этих изменений потребуется перезапустить сервер Postgres.
Изменение cloudsql.logical_decoding на on
Изменены cloudsql.logical_decoding и wal_sender_timeout
Перезапуск сервера

Создание пользователя ClickPipes и назначение прав

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

    Примечание

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

Добавление IP-адресов ClickPipes в брандмауэр

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

Примечание

Если вы используете SSH-туннелирование, вам необходимо добавить IP-адреса ClickPipes в правила брандмауэра jump-сервера/бастиона.

  1. Перейдите в раздел Connections
Раздел Connections в Cloud SQL
  1. Перейдите в подраздел Networking
Подраздел Networking в Cloud SQL
  1. Добавьте публичные IP-адреса ClickPipes
Добавление сетей ClickPipes в брандмауэр
Сети ClickPipes добавлены в брандмауэр

Что дальше?

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