Перейти к основному содержанию
PlanetScale for Postgres сейчас доступен в рамках раннего доступа.

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

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

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

  1. Чтобы включить репликацию на экземпляре Postgres, нужно убедиться, что установлены следующие настройки:
    wal_level = logical
    
    Чтобы проверить это, можно выполнить следующую SQL-команду:
    SHOW wal_level;
    
    По умолчанию результат должен быть logical. Если это не так, войдите в консоль PlanetScale, перейдите в Cluster configuration->Parameters и прокрутите вниз до Write-ahead log, чтобы изменить этот параметр.
Изменение этого параметра в консоли PlanetScale ПРИВЕДЁТ к перезапуску.
  1. Кроме того, рекомендуется увеличить значение параметра max_slot_wal_keep_size по сравнению со значением по умолчанию 4GB. Это также делается через консоль PlanetScale: перейдите в Cluster configuration->Parameters, затем прокрутите вниз до Write-ahead log. Чтобы подобрать новое значение, ознакомьтесь с рекомендациями здесь.

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

Подключитесь к своему экземпляру PlanetScale Postgres под пользователем по умолчанию postgres.<...> и выполните следующие команды:
  1. Создайте отдельного пользователя для ClickPipes:
    CREATE USER clickpipes_user PASSWORD 'some-password';
    
  2. Предоставьте пользователю, созданному на предыдущем шаге, доступ к схеме в режиме только для чтения. В следующем примере показаны разрешения для схемы 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;
    
  3. Предоставьте пользователю привилегии репликации:
    ALTER USER clickpipes_user WITH REPLICATION;
    
  4. Создайте публикацию с таблицами, которые вы хотите реплицировать. Мы настоятельно рекомендуем включать в публикацию только необходимые таблицы, чтобы избежать лишних накладных расходов по производительности.
Любая таблица, включённая в публикацию, должна либо иметь определённый primary key, либо иметь параметр replica identity со значением FULL. Рекомендации по выбору охвата см. в FAQ по Postgres.
  • Чтобы создать публикацию для конкретных таблиц:
    CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
    
    • Чтобы создать публикацию для всех таблиц в конкретной схеме:
      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
      
Публикация clickpipes будет содержать набор событий изменений, сгенерированных для указанных таблиц, и в дальнейшем будет использоваться для приёма потока репликации.

Ограничения

  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.
Последнее изменение 10 июня 2026 г.