Руководство по настройке источника данных PlanetScale for Postgres
В настоящее время PlanetScale for Postgres находится в программе раннего доступа.
Поддерживаемые версии Postgres
ClickPipes поддерживает Postgres, начиная с версии 12.
Включение логической репликации
-
Чтобы включить репликацию в вашем инстансе Postgres, необходимо убедиться, что задан следующий параметр:
Чтобы это проверить, выполните следующую SQL-команду:
По умолчанию в выводе должно быть
logical. Если это не так, войдите в консоль PlanetScale, перейдите вCluster configuration->Parametersи прокрутите до разделаWrite-ahead log, чтобы изменить значение.

Изменение этого параметра в консоли PlanetScale ПРИВЕДЕТ к перезапуску.
- Дополнительно рекомендуется увеличить значение
max_slot_wal_keep_sizeпо сравнению с его значением по умолчанию — 4 ГБ. Это также настраивается через консоль PlanetScale: перейдите вCluster configuration->Parameters, затем прокрутите до разделаWrite-ahead log. Чтобы подобрать новое значение, ознакомьтесь с рекомендациями здесь.

Создание пользователя с правами доступа и публикацией
Подключитесь к экземпляру PlanetScale Postgres, используя пользователя по умолчанию postgres.<...>, и выполните следующие команды:
-
Создайте отдельного пользователя для ClickPipes:
-
Выдайте пользователю, созданному на предыдущем шаге, права только на чтение на уровне схемы. В следующем примере показаны права для схемы
public. Повторите эти команды для каждой схемы, содержащей таблицы, которые вы хотите реплицировать: -
Выдайте пользователю привилегии репликации:
-
Создайте publication с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуется включать в публикацию только необходимые таблицы, чтобы избежать лишних накладных расходов на производительность.
ПримечаниеЛюбая таблица, включённая в публикацию, должна либо иметь определённый primary key, либо для неё должна быть настроена replica identity со значением
FULL. См. раздел Postgres FAQs для рекомендаций по выбору области публикаций.-
Чтобы создать публикацию для отдельных таблиц:
-
Чтобы создать публикацию для всех таблиц в определённой схеме:
Публикация
clickpipesбудет содержать набор событий изменений, сгенерированных из указанных таблиц, и впоследствии будет использоваться для приёма потока репликации. -
Особенности и ограничения
- Для подключения к PlanetScale Postgres к имени пользователя, созданному выше, необходимо добавить текущую ветку. Например, если созданный пользователь назывался
clickpipes_user, фактическое имя пользователя, указываемое при создании ClickPipe, должно бытьclickpipes_user.branch, гдеbranch— этоidтекущей ветки PlanetScale Postgres. Чтобы быстро определить это значение, вы можете посмотреть на имя пользователяpostgres, под которым вы создавали этого пользователя ранее, — часть после точки и будет идентификатором ветки. - Не используйте порт
PSBouncer(сейчас6432) для CDC-конвейеров, подключающихся к PlanetScale Postgres, необходимо использовать стандартный порт5432. Любой из портов может использоваться только для конвейеров, выполняющих только начальную загрузку (initial-load only). - Убедитесь, что вы подключаетесь только к основной (primary) инстанции, так как подключение к репликам в настоящее время не поддерживается.
Что дальше?
Теперь вы можете создать свой ClickPipe и начать приём данных из вашего экземпляра Postgres в ClickHouse Cloud. Обязательно запишите параметры подключения, которые вы использовали при его настройке, так как они понадобятся вам при создании ClickPipe.