Skip to main content
Par défaut, les requêtes CREATE, DROP, ALTER et RENAME n’affectent que le serveur actuel 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 de type Distributed sur chaque hôte du cluster :
Pour exécuter correctement ces requêtes, chaque hôte doit avoir la même définition de cluster (pour simplifier la synchronisation des configurations, vous pouvez utiliser des substitutions provenant de ZooKeeper). Chaque hôte doit également se connecter aux serveurs ZooKeeper. En règle générale, la version locale de la requête finira par être exécutée sur chaque hôte du cluster, même si certains hôtes sont actuellement indisponibles. Toutefois, ces requêtes sont stockées dans une file d’attente, et la durée pendant laquelle un élément reste dans la file d’attente est limitée par plusieurs paramètres. Par conséquent, si un hôte reste indisponible suffisamment longtemps, il risque de ne pas exécuter la requête lorsqu’il redevient disponible.
L’ordre d’exécution des requêtes sur un même hôte est garanti tant que distributed_ddl.pool_size est défini sur 1.