MaterializedPostgreSQL
Создает таблицу ClickHouse с исходным дампом данных таблицы PostgreSQL и запускает процесс репликации, т.е. выполняется применение новых изменений в фоне, как эти изменения происходят в таблице PostgreSQL в удаленной базе данных PostgreSQL.
Если требуется более одной таблицы, вместо движка таблиц рекомендуется использовать движок баз данных MaterializedPostgreSQL и с помощью настройки materialized_postgresql_tables_list указывать таблицы, которые нужно реплицировать. Это будет намного лучше с точки зрения нагрузки на процессор, уменьшит количество подключений и количество слотов репликации внутри удаленной базы данных PostgreSQL.
Создание таблицы
Параметры движка
host:port— адрес сервера PostgreSQL.database— имя базы данных на удалённом сервере.table— имя таблицы на удалённом сервере.user— пользователь PostgreSQL.password— пароль пользователя.
Требования
-
Настройка wal_level должна иметь значение
logical, параметрmax_replication_slotsдолжен быть равен по меньшей мере2в конфигурационном файле в PostgreSQL. -
Таблица, созданная с помощью движка
MaterializedPostgreSQL, должна иметь первичный ключ — такой же, как replica identity index (по умолчанию: первичный ключ) таблицы PostgreSQL (смотрите replica identity index). -
Допускается только база данных Atomic.
Виртуальные столбцы
_version— счетчик транзакций. Тип: UInt64._sign— метка удаления. Тип: Int8. Возможные значения:1— строка не удалена,-1— строка удалена.
Эти столбцы не нужно добавлять при создании таблицы. Они всегда доступны в SELECT запросе.
Столбец _version равен позиции LSN в WAL, поэтому его можно использовать для проверки актуальности репликации.
Репликация TOAST-значений не поддерживается. Для типа данных будет использоваться значение по умолчанию.