De forma predeterminada, las consultas CREATE, DROP, ALTER y RENAME solo afectan al servidor actual en el que se ejecutan. En una configuración de clúster, es posible ejecutar estas consultas de forma distribuida mediante la cláusula ON CLUSTER.
Por ejemplo, la siguiente consulta crea la tabla all_hits de tipo Distributed en cada host del cluster:
CREATE TABLE IF NOT EXISTS all_hits ON CLUSTER cluster (p Date, i Int32) ENGINE = Distributed(cluster, default, hits)
Para ejecutar correctamente estas consultas, cada host debe tener la misma definición de clúster (para simplificar la sincronización de las configuraciones, se pueden usar sustituciones de ZooKeeper). También deben conectarse a los servidores de ZooKeeper.
La versión local de la consulta acabará ejecutándose en cada host del clúster, aunque algunos hosts no estén disponibles en ese momento.
Se garantiza el orden de ejecución de las consultas dentro de un mismo host.