Перейти к основному содержанию
Пользователям ClickHouse Cloud рекомендуется использовать ClickPipes для репликации PostgreSQL в ClickHouse. ClickPipes изначально поддерживает высокопроизводительный CDC (фиксация изменений данных) для PostgreSQL.
Создает таблицу ClickHouse с начальным дампом данных из таблицы PostgreSQL и запускает процесс репликации, то есть выполняет фоновую задачу, применяющую новые изменения по мере их появления в таблице PostgreSQL в удаленной базе данных PostgreSQL.
Этот движок таблицы является экспериментальным. Чтобы использовать его, установите allow_experimental_materialized_postgresql_table в значение 1 в файлах конфигурации или с помощью команды SET:
Если требуется реплицировать несколько таблиц, настоятельно рекомендуется использовать движок базы данных MaterializedPostgreSQL вместо движка таблицы и параметр materialized_postgresql_tables_list, который задает таблицы для репликации (также появится возможность добавить schema базы данных). Это значительно эффективнее с точки зрения нагрузки на CPU, количества соединений и числа слотов репликации в удаленной базе данных PostgreSQL.

Создание таблицы

Параметры движка
  • host:port — адрес сервера PostgreSQL.
  • database — имя удалённой базы данных.
  • table — имя удалённой таблицы.
  • user — пользователь PostgreSQL.
  • password — пароль пользователя.

Требования

  1. Параметр wal_level должен иметь значение logical, а параметр max_replication_slots — значение не менее 2 в конфигурационном файле PostgreSQL.
  2. Таблица с движком MaterializedPostgreSQL должна иметь первичный ключ — тот же, что и индекс replica identity (по умолчанию это первичный ключ) таблицы PostgreSQL (см. подробнее об индексе replica identity).
  3. Допускается только база данных Atomic.
  4. Движок таблицы MaterializedPostgreSQL работает только с PostgreSQL версии >= 11, поскольку для его реализации требуется функция PostgreSQL pg_replication_slot_advance.

Виртуальные столбцы

  • _version — Счётчик транзакций. Тип: UInt64.
  • _sign — Метка удаления. Тип: Int8. Возможные значения:
    • 1 — строка не удалена,
    • -1 — строка удалена.
Эти столбцы не нужно указывать при создании таблицы. Они всегда доступны в запросе SELECT. Столбец _version соответствует позиции LSN в WAL, поэтому его можно использовать, чтобы проверить, насколько актуальна репликация.
Репликация значений TOAST не поддерживается. Вместо них будет использоваться значение по умолчанию для соответствующего типа данных.
Последнее изменение 19 июня 2026 г.