Удалил неверное предложение.
2.3 KiB
toc_priority | toc_title |
---|---|
12 | MaterializedPostgreSQL |
MaterializedPostgreSQL
Создание таблицы
CREATE TABLE postgresql_db.postgresql_replica (key UInt64, value UInt64)
ENGINE = MaterializedPostgreSQL('postgres1:5432', 'postgres_database', 'postgresql_replica', 'postgres_user', 'postgres_password')
PRIMARY KEY key;
Требования
-
Настройка wal_level должна иметь значение
logical
, параметрmax_replication_slots
должен быть равен по меньшей мере2
в конфигурационном файле в PostgreSQL. -
Таблица, созданная с помощью движка
MaterializedPostgreSQL
, должна иметь первичный ключ — такой же, как индекс идентичности реплики (по умолчанию: первичный ключ) таблицы PostgreSQL (смотрите индекс идентичности реплики). -
Допускается только база данных Atomic.
Виртуальные столбцы
-
_version
(тип: UInt64) -
_sign
(тип: Int8)
Эти столбцы не нужно добавлять при создании таблицы. Они всегда доступны в SELECT
запросе.
Столбец _version
равен позиции LSN
в WAL
, поэтому его можно использовать для проверки актуальности репликации.
CREATE TABLE postgresql_db.postgresql_replica (key UInt64, value UInt64)
ENGINE = MaterializedPostgreSQL('postgres1:5432', 'postgres_database', 'postgresql_replica', 'postgres_user', 'postgres_password')
PRIMARY KEY key;
SELECT key, value, _version FROM postgresql_db.postgresql_replica;
!!! warning "Предупреждение" Репликация TOAST-значений не поддерживается. Для типа данных будет использоваться значение по умолчанию.