Руководство по настройке источника данных AlloyDB Postgres
Поддерживаемые версии
Чтобы передавать данные из экземпляра AlloyDB в ClickHouse Cloud с помощью ClickPipes, экземпляр должен быть настроен для логической репликации. Это поддерживается начиная с AlloyDB версии 14.
Включение логической репликации
Чтобы проверить, включена ли логическая репликация в вашем экземпляре AlloyDB, выполните следующий запрос на основном экземпляре:
Если результат — logical, логическая репликация уже включена, и вы можете перейти к следующему шагу. Если результат — replica, необходимо установить флаги alloydb.enable_pglogical и alloydb.logical_decoding в значение on на основном экземпляре.
Как указано в документации по флагам AlloyDB, изменение флагов, включающих логическую репликацию, требует перезапуска основного экземпляра.
Чтобы включить эти флаги:
-
В Google Cloud Console перейдите на страницу AlloyDB Clusters. В меню Actions для вашего основного экземпляра нажмите Edit.

-
Пролистайте вниз до Advanced configuration options и раскройте этот раздел. В разделе Flags нажмите Add a database flag.
- Добавьте флаг
allowdb.enable_pglogicalи установите его значение вon - Добавьте флаг
alloydb.logical_decodingи установите его значение вon

- Добавьте флаг
-
Нажмите Update instance, чтобы сохранить изменения конфигурации. Важно отметить, что это действие приведёт к перезапуску основного экземпляра.
-
После того как статус экземпляра изменится с
UpdatingнаReady, выполните следующий запрос к вашему основному экземпляру, чтобы убедиться, что логическая репликация включена:Результатом должно быть значение
logical.
Создайте пользователя ClickPipes и настройте права для репликации
Подключитесь к экземпляру AlloyDB под учётной записью администратора и выполните следующие команды:
-
Создайте отдельного пользователя для ClickPipes:
-
Предоставьте этому пользователю права на схемы, которые вы хотите реплицировать.
В приведённом выше примере показаны права для схемы
public. Повторите эту последовательность команд для каждой схемы, которую вы хотите реплицировать с помощью ClickPipes. -
Предоставьте этому пользователю права для управления репликацией:
-
Создайте publication с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в publication только необходимые таблицы, чтобы избежать лишней нагрузки на производительность.
ПримечаниеВсе таблицы, включённые в publication, должны либо иметь определённый primary key, либо иметь настроенную replica identity со значением
FULL. См. раздел Postgres FAQs для рекомендаций по выбору области действия публикаций.-
Чтобы создать publication для конкретных таблиц:
-
Чтобы создать publication для всех таблиц в определённой схеме:
Publication
clickpipesбудет содержать набор событий изменений, сформированных указанными таблицами, и позднее будет использоваться для приёма репликационного потока. -
Настройка сетевой безопасности
ClickPipes не поддерживает подключения через Private Service Connect (PSC). Если у вас не разрешён публичный доступ к экземпляру AlloyDB, вы можете использовать SSH-туннель для безопасного подключения. Поддержка PSC будет добавлена в будущем.
Далее необходимо разрешить подключения к вашему экземпляру AlloyDB из ClickPipes.
- Разрешить IP-адреса ClickPipes
- Использовать SSH-туннель
-
В консоли Google Cloud перейдите на страницу AlloyDB Clusters. Выберите основной экземпляр (primary instance), чтобы открыть страницу Overview.
-
Прокрутите вниз до раздела Instances in your cluster и нажмите Edit primary.
-
Установите флажок Enable Public IP, чтобы разрешить подключения к экземпляру через общедоступный интернет. В разделе Authorized external networks введите список статических IP-адресов ClickPipes для региона, в котором развернут ваш сервис.
ПримечаниеAlloyDB ожидает, что адреса будут указаны в CIDR-нотации. Вы можете адаптировать предоставленный список статических IP-адресов ClickPipes к этой нотации, добавив
/32к каждому адресу. -
В разделе Network Security выберите Require SSL Encryption (default) (если ещё не выбрано).
-
Нажмите Update instance, чтобы сохранить изменения конфигурации сетевой безопасности.
Если вы не разрешаете публичный доступ к вашему экземпляру AlloyDB, сначала необходимо настроить SSH-бастион (bastion host) для безопасного туннелирования подключения. Чтобы настроить SSH-бастион в Google Cloud Platform:
-
Создайте и запустите экземпляр Google Compute Engine (GCE), следуя официальной документации.
- Убедитесь, что экземпляр GCE находится в той же виртуальной частной сети (VPC), что и ваш экземпляр AlloyDB.
- Убедитесь, что экземпляр GCE имеет статический публичный IP-адрес. Вы будете использовать этот IP-адрес при подключении ClickPipes к вашему SSH-бастиону.
-
Обновите правила брандмауэра SSH-бастиона, чтобы разрешить трафик из списка статических IP-адресов ClickPipes для региона, в котором развернут ваш сервис.
-
Обновите правила брандмауэра AlloyDB, чтобы разрешить трафик от SSH-бастиона.
Что дальше?
Теперь вы можете создать ClickPipe и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud. Обязательно запишите параметры подключения, которые вы использовали при настройке Postgres, так как они понадобятся вам при создании ClickPipe.