Clés de clusters dans Cassandra
Sur un nœud physique, les lignes d'une partition donnée de la clé sont stockés dans l'ordre induit par le regroupement des touches de la récupération des lignes de cette clustering, particulièrement efficace. http://cassandra.apache.org/doc/cql3/CQL.html#createTableStmt Ce type de commande est induite par des clés de clusters?
Vous devez vous connecter pour publier un commentaire.
Supposons que vos clés de clusters sont
où ki est le i-ème nom de la clé et ti est la i ' eme type de clé. Ensuite, l'ordre des données est stocké dans est lexicographique de la commande où chaque dimension est comparée en utilisant le comparateur de ce type.
Si (a1, a2, ..., an) < (b1, b2, ..., bn) si a1 < b1 en utilisant t1 comparateur, ou a1=b1 et a2 < b2 à l'aide t2 comparateur, ou (a1=b1 et a2=b2) et a3 < b3 à l'aide de t3 comparateur, etc..
Cela signifie qu'il est efficace pour trouver toutes les lignes avec un certain k1=a, puisque les données sont stockées ensemble. Mais il est inefficace pour trouver toutes les lignes avec ki=x pour i > 1. En fait, une telle requête n'est pas autorisé - la seule clé de cluster contraintes qui sont autorisés à spécifier zéro, une ou plusieurs clés de clusters, à partir de la première avec aucune ne manque.
Par exemple, considérons le schéma
Si vous avez le suivant: les bagues de
puis ils sont stockés dans cet ordre sur le disque (de l'ordre
select * from clustering where x = 'x'
retours):k1
commande domine, puisk2
, puisk3
.