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

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

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

Чтобы передавать данные из экземпляра AlloyDB в ClickHouse Cloud с помощью ClickPipes, экземпляр должен быть настроен для логической репликации. Это поддерживается начиная с AlloyDB версии 14.

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

Чтобы проверить, включена ли логическая репликация в вашем экземпляре AlloyDB, выполните следующий запрос на основном экземпляре:

SHOW  wal_level;

Если результат — logical, логическая репликация уже включена, и вы можете перейти к следующему шагу. Если результат — replica, необходимо установить флаги alloydb.enable_pglogical и alloydb.logical_decoding в значение on на основном экземпляре.

Примечание

Как указано в документации по флагам AlloyDB, изменение флагов, включающих логическую репликацию, требует перезапуска основного экземпляра.

Чтобы включить эти флаги:

  1. В Google Cloud Console перейдите на страницу AlloyDB Clusters. В меню Actions для вашего основного экземпляра нажмите Edit.

    Редактирование конфигурации основного экземпляра
  2. Пролистайте вниз до Advanced configuration options и раскройте этот раздел. В разделе Flags нажмите Add a database flag.

    Установка флагов allowdb.enable_pglogical и alloydb.logical_decoding в значение on
  3. Нажмите Update instance, чтобы сохранить изменения конфигурации. Важно отметить, что это действие приведёт к перезапуску основного экземпляра.

  4. После того как статус экземпляра изменится с Updating на Ready, выполните следующий запрос к вашему основному экземпляру, чтобы убедиться, что логическая репликация включена:

    SHOW  wal_level;
    

    Результатом должно быть значение logical.

    Проверка того, что логическая репликация включена

Создайте пользователя ClickPipes и настройте права для репликации

Подключитесь к экземпляру AlloyDB под учётной записью администратора и выполните следующие команды:

  1. Создайте отдельного пользователя для ClickPipes:

    CREATE USER clickpipes_user PASSWORD 'some-password';
    
  2. Предоставьте этому пользователю права на схемы, которые вы хотите реплицировать.

    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;
    

    В приведённом выше примере показаны права для схемы public. Повторите эту последовательность команд для каждой схемы, которую вы хотите реплицировать с помощью ClickPipes.

  3. Предоставьте этому пользователю права для управления репликацией:

    ALTER ROLE clickpipes_user REPLICATION;
    
  4. Создайте publication с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в publication только необходимые таблицы, чтобы избежать лишней нагрузки на производительность.

    Примечание

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

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

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

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
      

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

Настройка сетевой безопасности

Примечание

ClickPipes не поддерживает подключения через Private Service Connect (PSC). Если у вас не разрешён публичный доступ к экземпляру AlloyDB, вы можете использовать SSH-туннель для безопасного подключения. Поддержка PSC будет добавлена в будущем.

Далее необходимо разрешить подключения к вашему экземпляру AlloyDB из ClickPipes.

  1. В консоли Google Cloud перейдите на страницу AlloyDB Clusters. Выберите основной экземпляр (primary instance), чтобы открыть страницу Overview.

  2. Прокрутите вниз до раздела Instances in your cluster и нажмите Edit primary.

  3. Установите флажок Enable Public IP, чтобы разрешить подключения к экземпляру через общедоступный интернет. В разделе Authorized external networks введите список статических IP-адресов ClickPipes для региона, в котором развернут ваш сервис.

    Настройка сети для публичного доступа с использованием списка разрешённых IP-адресов
    Примечание

    AlloyDB ожидает, что адреса будут указаны в CIDR-нотации. Вы можете адаптировать предоставленный список статических IP-адресов ClickPipes к этой нотации, добавив /32 к каждому адресу.

  4. В разделе Network Security выберите Require SSL Encryption (default) (если ещё не выбрано).

  5. Нажмите Update instance, чтобы сохранить изменения конфигурации сетевой безопасности.

Что дальше?

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