Перейти к основному содержимому
Перейти к основному содержимому

Настройка источника PlanetScale для Postgres

к сведению

PlanetScale для Postgres в настоящее время находится в раннем доступе.

Поддерживаемые версии Postgres

ClickPipes поддерживает версии Postgres 12 и выше.

Включение логической репликации

  1. Для включения репликации на вашем экземпляре Postgres необходимо убедиться, что установлены следующие настройки:
wal_level = logical

Чтобы проверить это, вы можете выполнить следующую SQL-команду:

SHOW wal_level;

По умолчанию вывод должен быть logical. Если это не так, пожалуйста, войдите в консоль PlanetScale и перейдите в Конфигурация кластера->Параметры, прокрутите вниз до Write-ahead log, чтобы изменить это.

Регулировка wal_level в консоли PlanetScale
предупреждение

Изменение этого в консоли PlanetScale ПРИВЕДЕТ к перезапуску.

  1. Кроме того, рекомендуется увеличить настройку max_slot_wal_keep_size с ее значения по умолчанию 4 ГБ. Это также делается через консоль PlanetScale, перейдя в Конфигурация кластера->Параметры, а затем прокрутив вниз до Write-ahead log. Чтобы помочь определить новое значение, пожалуйста, посмотрите здесь.
Регулировка max_slot_wal_keep_size в консоли PlanetScale

Создание пользователя с разрешениями и публикацией

Давайте создадим нового пользователя для ClickPipes с необходимыми разрешениями, подходящими для CDC, и также создадим публикацию, которую мы будем использовать для репликации.

Для этого вы можете подключиться к своему экземпляру PlanetScale Postgres, используя пользователя по умолчанию postgres.<...>, и выполнить следующие SQL-команды:

  CREATE USER clickpipes_user PASSWORD 'clickpipes_password';
  GRANT USAGE ON SCHEMA "public" TO clickpipes_user;
-- You may need to grant these permissions on more schemas depending on the tables you're moving
  GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user;
  ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user;

-- Give replication permission to the USER
  ALTER USER clickpipes_user REPLICATION;

-- Create a publication. We will use this when creating the pipe
-- When adding new tables to the ClickPipe, you'll need to manually add them to the publication as well. 
  CREATE PUBLICATION clickpipes_publication FOR TABLE <...>, <...>, <...>;
примечание

Не забудьте заменить clickpipes_user и clickpipes_password на желаемое имя пользователя и пароль.

Ограничения

  1. Чтобы подключиться к PlanetScale Postgres, текущая ветка должна быть добавлена к имени пользователя, созданному выше. Например, если созданный пользователь называется clickpipes_user, фактическое имя пользователя, предоставленное во время создания ClickPipe, должно быть clickpipes_user.branch, где branch относится к "id" текущей ветки PlanetScale Postgres ветвление. Чтобы быстро определить это, вы можете обратиться к имени пользователя пользователя postgres, которого вы использовали для создания пользователя ранее, часть после точки будет идентификатором ветки.
  2. Не используйте порт PSBouncer (в настоящее время 6432) для трубопроводов CDC, подключающихся к PlanetScale Postgres, должен использоваться обычный порт 5432. Любой порт может использоваться только для начальных трубопроводов загрузки.
  3. Пожалуйста, убедитесь, что вы подключаетесь только к основному экземпляру, подключение к репликам в настоящее время не поддерживается.

Что делать дальше?

Теперь вы можете создать свой ClickPipe и начать прием данных из вашего экземпляра Postgres в ClickHouse Cloud. Не забудьте записать данные для подключения, которые вы использовали при настройке вашего экземпляра Postgres, так как они понадобятся вам во время процесса создания ClickPipe.