Skip to main content
По умолчанию запросы CREATE, DROP, ALTER и RENAME затрагивают только текущий сервер, на котором они выполняются. В кластере такие запросы можно выполнять распределённо с помощью предложения ON CLUSTER. Например, следующий запрос создаёт таблицу all_hits Distributed на каждом хосте в кластере cluster:
Чтобы эти запросы выполнялись корректно, на каждом хосте должно быть одинаковое описание кластера (чтобы упростить синхронизацию конфигураций, можно использовать substitutions из ZooKeeper). Они также должны подключаться к серверам ZooKeeper. Как правило, локальная версия запроса в конечном итоге будет выполнена на каждом хосте кластера, даже если некоторые хосты в данный момент недоступны. Однако такие запросы хранятся в очереди, а время нахождения элемента в очереди ограничено рядом настроек. Поэтому, если хост остаётся недоступным достаточно долго, после восстановления он может так и не выполнить запрос.
Порядок выполнения запросов на одном хосте гарантируется, если параметр distributed_ddl.pool_size имеет значение 1.