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

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

- Добавьте флаг
-
Нажмите Update instance, чтобы сохранить изменения конфигурации. Важно: это действие приводит к перезапуску основного экземпляра.
-
Когда статус экземпляра изменится с
UpdatingнаReady, выполните следующий запрос на основном экземпляре, чтобы убедиться, что логическая репликация включена:SHOW wal_level;Результат должен быть
logical.
Создайте пользователя ClickPipes и настройте разрешения для репликации
Подключитесь к своему экземпляру AlloyDB от имени администратора и выполните следующие команды:
-
Создайте отдельного пользователя для ClickPipes:
CREATE USER clickpipes_user PASSWORD 'some-password'; -
Предоставьте пользователю, созданному на предыдущем шаге, доступ к схеме в режиме только для чтения. В следующем примере показаны разрешения для схемы
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; -
Предоставьте пользователю права на репликацию:
ALTER USER clickpipes_user WITH REPLICATION; -
Создайте публикацию с таблицами, которые вы хотите реплицировать. Мы настоятельно рекомендуем включать в публикацию только действительно нужные таблицы, чтобы избежать лишней нагрузки на производительность.
-
Чтобы создать публикацию для определённых таблиц:
CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;-
Чтобы создать публикацию для всех таблиц в определённой схеме:
CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
-
Публикация clickpipes определяет набор таблиц, события изменений из которых будут передаваться в ClickPipes. Мы не рекомендуем использовать FOR ALL TABLES, если только вы не планируете реплицировать каждую таблицу, поскольку включение ненужных таблиц увеличивает объём WAL-трафика из Postgres в ClickPipes и снижает общую эффективность репликации.
Настройка сетевого доступа
Затем выберите способ подключения ClickPipes к экземпляру AlloyDB.
Для частного подключения из сервиса ClickHouse Cloud, размещённого в GCP, следуйте руководству по GCP Private Service Connect, чтобы настроить обратную частную конечную точку для экземпляра AlloyDB.
-
В консоли Google Cloud перейдите на страницу AlloyDB Clusters. Выберите основной экземпляр, чтобы открыть страницу Overview.
-
Прокрутите вниз до раздела Instances in your cluster и нажмите Edit primary.
-
Установите флажок Enable Public IP, чтобы разрешить подключения к экземпляру через общедоступный интернет. В разделе Authorized external networks укажите список статических IP-адресов ClickPipes для региона, в котором развёрнут ваш сервис.

-
В разделе Network Security выберите Require SSL Encryption (default) (если этот параметр ещё не выбран).
-
Нажмите Update instance, чтобы сохранить изменения в конфигурации сетевой безопасности.
Если вы не открываете публичный доступ к экземпляру AlloyDB, сначала нужно настроить SSH-бастион, чтобы безопасно туннелировать подключение. Чтобы настроить SSH-бастион в Google Cloud Platform:
-
Создайте и запустите экземпляр Google Compute Engine (GCE), следуя официальной документации.
- Убедитесь, что экземпляр GCE находится в той же Virtual Private Cloud (VPC), что и экземпляр AlloyDB.
- Убедитесь, что у экземпляра GCE есть статический публичный IP-адрес. Этот IP-адрес будет использоваться при подключении ClickPipes к SSH-бастиону.
-
Обновите правила брандмауэра SSH-бастиона, чтобы разрешить трафик из списка статических IP-адресов ClickPipes для региона, в котором развёрнут ваш сервис.
-
Обновите правила брандмауэра AlloyDB, чтобы разрешить трафик от SSH-бастиона.
Что дальше?
Теперь вы можете создать свой ClickPipe и начать ингестию данных из вашего экземпляра Postgres в ClickHouse Cloud. Обязательно сохраните сведения о подключении, которые вы использовали при настройке экземпляра Postgres, — они понадобятся вам при создании ClickPipe.