Par défaut, les requêtes CREATE, DROP, ALTER et RENAME n’affectent que le serveur courant sur lequel elles sont exécutées. Dans une configuration en cluster, il est possible d’exécuter ces requêtes de manière distribuée à l’aide de la clause ON CLUSTER.
Par exemple, la requête suivante crée la table all_hits Distributed sur chaque hôte du cluster :
CREATE TABLE IF NOT EXISTS all_hits ON CLUSTER cluster (p Date, i Int32) ENGINE = Distributed(cluster, default, hits)
Pour exécuter correctement ces requêtes, chaque hôte doit avoir la même définition de cluster (pour simplifier la synchronisation de la configuration, vous pouvez utiliser des substitutions depuis ZooKeeper). Chaque hôte doit également se connecter aux serveurs ZooKeeper.
La version locale de la requête sera finalement exécutée sur chaque hôte du cluster, même si certains hôtes sont temporairement indisponibles.
L’ordre d’exécution des requêtes sur un même hôte est garanti.