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

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

Ссылки

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

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

Все версии Postgres, начиная с 12

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

Вам не нужно выполнять следующие шаги, если параметр cloudsql.logical_decoding установлен в значение on, а 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 USER clickpipes_user WITH REPLICATION;
    
  4. Создайте публикацию с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в публикацию только необходимые таблицы, чтобы избежать лишней нагрузки на производительность.

    Примечание

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