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