Вариант 1: синхронизация в ClickHouse из сервиса Postgres
Откройте свой сервис ClickHouse Managed Postgres в консоли ClickHouse Cloud и нажмите Sync to ClickHouse на боковой панели. Мастер автоматически заполнит соединение с источником и предложит выбрать целевой сервис ClickHouse, метод репликации и таблицы для репликации. Настраивать пользователя, публикацию или сеть не требуется. Пошаговые инструкции см. в руководстве Sync to ClickHouse. Для репликации с низкой задержкой вы также можете выбрать WalShadow — нативный движок репликации, который выполняет чтение на уровне файловой системы; в настоящее время доступен в режиме закрытой предварительной версии.Вариант 2: выбор ClickHouse Managed Postgres в качестве источника в ClickPipes
Если вам удобнее начать со стороны пункта назначения, откройте свой сервис ClickHouse, перейдите в раздел Data Sources и выберите ClickHouse Managed Postgres в списке источников. Далее укажите сведения о подключении к вашему инстансу Postgres — так же, как и для любого другого источника Postgres.Сведения о подключении
Откройте свой сервис ClickHouse Managed Postgres и нажмите Connect, чтобы посмотреть хост, порт, базу данных, пользователя и пароль. Используйте прямое подключение к Postgres, а не переключатель via PgBouncer: ClickPipes не поддерживает репликацию через PgBouncer или любой другой пул соединений. Подробнее см. в разделе Connection.Создание пользователя с разрешениями
Подключиться можно под пользователемpostgres по умолчанию. Для продакшна мы рекомендуем создать отдельного пользователя репликации с доступом только для чтения — точно так же, как для любого другого источника Postgres. Подключитесь к своему инстансу с помощью psql и выполните:
-
Создайте отдельного пользователя для ClickPipes:
-
Предоставьте пользователю доступ только для чтения на уровне схемы. В примере ниже показаны разрешения для схемы
public. Повторите эти команды для каждой схемы, содержащей таблицы, которые нужно реплицировать: -
Предоставьте пользователю привилегии репликации:
- Создайте публикацию с таблицами, которые нужно реплицировать. Мы настоятельно рекомендуем включать в публикацию только необходимые таблицы, чтобы не создавать лишнюю нагрузку и не терять в performance.
-
Чтобы создать публикацию для определённых таблиц:
-
Чтобы создать публикацию для всех таблиц в определённой схеме:
-
Чтобы создать публикацию для всех таблиц в определённой схеме:
логическая репликация
логическая репликация уже включена на каждом инстансе ClickHouse Managed Postgres. Настройкуwal_level или parameter group менять не нужно. Проверить это можно так:
Сетевой доступ
ClickHouse Managed Postgres по умолчанию принимает подключения от ClickPipes. Если для вашего сервиса Postgres настроены IP-фильтры, добавьте в список разрешённых статические IP-адреса ClickPipes для региона вашего сервиса ClickHouse.TLS
Инстансы ClickHouse Managed Postgres предъявляют сертификат, подписанный CA, который уникален для каждого инстанса и не является публично доверенным. ClickPipes по умолчанию проверяет сертификат, поэтому проверка подключения будет завершаться ошибкой, пока вы не выполните одно из следующих действий:- Скачайте набор CA‑сертификатов на вкладке Settings вашего сервиса Postgres и загрузите его с помощью Upload CA в настройках подключения ClickPipe. Это рекомендуемый вариант. О том, где найти этот набор, см. Verified TLS connection.
- Включите Skip certificate verification в настройках подключения ClickPipe. Соединение останется зашифрованным, но подлинность сервера проверяться не будет.
clickhousectl, получите набор сертификатов и передайте его через --ca-certificate: