<keeper_map_path_prefix>.
Par exemple :
Créer une table
root_path- chemin ZooKeeper dans lequeltable_namesera stocké. Ce chemin ne doit pas contenir le préfixe défini par la config<keeper_map_path_prefix>, car celui-ci sera automatiquement ajouté àroot_path. De plus, le formatauxiliary_zookeeper_cluster_name:/some/pathest également pris en charge, oùauxiliary_zookeeper_clusterest un cluster ZooKeeper défini dans la config<auxiliary_zookeepers>. Par défaut, le cluster ZooKeeper défini dans la config<zookeeper>est utilisé.keys_limit- nombre de clés autorisées dans la table. Cette limite est une limite souple, et il est possible que, dans certains cas particuliers, la table contienne davantage de clés.primary_key_name– n’importe quel nom de colonne dans la liste des colonnes.- la
primary keydoit être spécifiée et ne peut contenir qu’une seule colonne. La clé primaire sera sérialisée en binaire commenode namedans ZooKeeper. - les colonnes autres que la clé primaire seront sérialisées en binaire dans l’ordre correspondant et stockées comme valeur du nœud résultant défini par la clé sérialisée.
- les requêtes avec un filtrage sur la clé par
equalsouinseront optimisées en recherche de plusieurs clés depuisKeeper, sinon toutes les valeurs seront récupérées.
(v1, v2, v3), sera stockée dans /keeper_map_tables/keeper_map_table/data/serialized_key dans Keeper.
De plus, le nombre de clés aura une limite souple fixée à 4.
Si plusieurs tables sont créées sur le même chemin ZooKeeper, les valeurs sont conservées tant qu’au moins une table l’utilise.
Par conséquent, il est possible d’utiliser la clause ON CLUSTER lors de la création de la table et de partager les données entre plusieurs instances ClickHouse.
Bien sûr, il est aussi possible d’exécuter manuellement CREATE TABLE avec le même chemin sur des instances ClickHouse non liées afin d’obtenir le même effet de partage des données.
Opérations prises en charge
Insertions
KeeperMap, si la clé n’existe pas, une nouvelle entrée est créée pour cette clé.
Si la clé existe et que le paramètre keeper_map_strict_mode est défini sur true, une exception est levée ; sinon, la valeur associée à la clé est écrasée.
Exemple :
Suppressions
DELETE ou de TRUNCATE.
Si la clé existe et que le paramètre keeper_map_strict_mode est défini sur true, la récupération et la suppression des données ne peuvent aboutir que si elles sont exécutées de manière atomique.
Mises à jour
ALTER TABLE. La clé primaire ne peut pas être mise à jour.
Si le paramètre keeper_map_strict_mode est défini sur true, la récupération et la mise à jour des données ne réussiront que si elles sont exécutées de façon atomique.