Пользователям ClickHouse Cloud рекомендуется использовать ClickPipes для репликации PostgreSQL в ClickHouse. ClickPipes изначально поддерживает высокопроизводительный CDC (фиксация изменений данных) для PostgreSQL.
Этот движок таблицы является экспериментальным. Чтобы использовать его, установите
allow_experimental_materialized_postgresql_table в значение 1 в файлах конфигурации или с помощью команды SET:materialized_postgresql_tables_list, который задает таблицы для репликации (также появится возможность добавить schema базы данных). Это значительно эффективнее с точки зрения нагрузки на CPU, количества соединений и числа слотов репликации в удаленной базе данных PostgreSQL.
Создание таблицы
host:port— адрес сервера PostgreSQL.database— имя удалённой базы данных.table— имя удалённой таблицы.user— пользователь PostgreSQL.password— пароль пользователя.
Требования
-
Параметр wal_level должен иметь значение
logical, а параметрmax_replication_slots— значение не менее2в конфигурационном файле PostgreSQL. -
Таблица с движком
MaterializedPostgreSQLдолжна иметь первичный ключ — тот же, что и индексreplica identity(по умолчанию это первичный ключ) таблицы PostgreSQL (см. подробнее об индексеreplica identity). - Допускается только база данных Atomic.
-
Движок таблицы
MaterializedPostgreSQLработает только с PostgreSQL версии >= 11, поскольку для его реализации требуется функция PostgreSQL pg_replication_slot_advance.
Виртуальные столбцы
-
_version— Счётчик транзакций. Тип: UInt64. -
_sign— Метка удаления. Тип: Int8. Возможные значения:1— строка не удалена,-1— строка удалена.
SELECT.
Столбец _version соответствует позиции LSN в WAL, поэтому его можно использовать, чтобы проверить, насколько актуальна репликация.
Репликация значений TOAST не поддерживается. Вместо них будет использоваться значение по умолчанию для соответствующего типа данных.