ClickHouse/docs/ru/engines/table-engines/integrations/materialized-postgresql.md
Dmitriy 387136dc84 Add settings
Добавил настройки, перевел табличный движок MaterializedPostgreSQL.
2021-08-02 22:45:01 +03:00

2.5 KiB
Raw Blame History

toc_priority toc_title
12 MaterializedPostgreSQL

MaterializedPostgreSQL

Движок MaterializedPostgreSQL позволяет выполнять запросы SELECT и INSERT над данными, хранящимися на удалённом PostgreSQL сервере.

Создание таблицы

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;

Требования

  1. Настройка wal_level должна иметь значение logical, параметр max_replication_slots должен быть равен по меньшей мере 2 в конфигурационном файле в PostgreSQL.

  2. Таблица, созданная с помощью движка MaterializedPostgreSQL, должна иметь первичный ключ — такой же, как индекс идентичности реплики (по умолчанию: первичный ключ) таблицы PostgreSQL (смотрите индекс идентичности реплики).

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