Распределенные DDL-запросы (секция ON CLUSTER)
Запросы CREATE
, DROP
, ALTER
, RENAME
поддерживают возможность распределённого выполнения на кластере.
Например, следующий запрос создает распределенную (Distributed) таблицу all_hits
на каждом хосте в cluster
:
CREATE TABLE IF NOT EXISTS all_hits ON CLUSTER cluster (p Date, i Int32) ENGINE = Distributed(cluster, default, hits)
Для корректного выполнения таких запросов необходимо на каждом хосте иметь одинаковое определение кластера (для упрощения синхронизации конфигураций можете использовать подстановки из ZooKeeper). Также необходимо подключение к ZooKeeper-серверам. Локальная версия запроса в конечном итоге будет выполнена на каждом хосте кластера, даже если некоторые хосты в данный момент недоступны. Гарантируется упорядоченность выполнения запросов в рамках одного хоста.