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-значений не поддерживается. Для типа данных будет использоваться значение по умолчанию.