Руководство по настройке источника 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 с таблицами, которые вы хотите реплицировать. Настоятельно рекомендуем включать в публикацию только необходимые таблицы, чтобы избежать лишних накладных расходов на производительность.
ПримечаниеЛюбая таблица, включённая в публикацию, должна либо иметь определённый первичный ключ, либо её 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. Обязательно запишите параметры подключения, которые вы использовали при настройке экземпляра Postgres, так как они понадобятся вам для создания ClickPipe.