database tutorial Nombre de lignes d'une famille de colonnes à Cassandra




cql cassandra (5)

Si vous travaillez sur un ensemble de données volumineux et que vous avez une bonne approximation, je vous recommande vivement d'utiliser la commande suivante:

nodetool --host <hostname> cfstats

Cela affichera une liste de chaque famille de colonnes ressemblant à ceci:

Column Family: widgets
SSTable count: 11
Space used (live): 4295810363
Space used (total): 4295810363
Number of Keys (estimate): 9709824
Memtable Columns Count: 99008
Memtable Data Size: 150297312
Memtable Switch Count: 434
Read Count: 9716802
Read Latency: 0.036 ms.
Write Count: 9716806
Write Latency: 0.024 ms.
Pending Tasks: 0
Bloom Filter False Postives: 10428
Bloom Filter False Ratio: 1.00000
Bloom Filter Space Used: 18216448
Compacted row minimum size: 771
Compacted row maximum size: 263210
Compacted row mean size: 1634

La rangée "Nombre de clés (estimation)" permet de deviner les performances du cluster et les performances sont bien plus rapides que les méthodes de décompte explicites.

Existe-t-il un moyen d'obtenir un nombre de lignes (nombre de clés) d'une famille à une colonne dans Cassandra? get_count ne peut être utilisé que pour obtenir le nombre de colonnes.

Par exemple, si j'ai une famille de colonnes contenant des utilisateurs et voulant obtenir le nombre d'utilisateurs. Comment pourrais-je le faire? Chaque utilisateur est sa propre ligne.


Il y a toujours carte / réduire mais cela va probablement de soi. Si vous avez cela avec ruche ou cochon, vous pouvez le faire pour n’importe quelle table du cluster, même si je ne suis pas sûr que les suiveurs de tâches connaissent la localité de Cassandra et il se peut qu’il doive alors diffuser toute la table sur le réseau afin que vous puissiez obtenir des suivis de tâches sur cassandra. Les nœuds mais les données qu'ils reçoivent peuvent provenir d'un autre nœud de cassandra :(. J'aimerais bien savoir si quelqu'un le sait avec certitude.

NOTE: Nous mettons en place map / reduction sur cassandra principalement parce que si nous voulons un index plus tard, nous pouvons le mapper / réduire en cassandra.


[Edit: Cette réponse est obsolète à partir de Cassandra 0.8.1 - veuillez consulter l’ entrée Compteurs dans le wiki de Cassandra pour connaître la bonne façon de gérer les colonnes de compteurs dans Cassandra.]

Je suis nouvelle dans Cassandra, mais j'ai beaucoup bousillé avec App Engine de Google. Si aucune autre solution ne se présente, vous pouvez envisager de conserver un compteur séparé sur une plate-forme prenant en charge les opérations d'incrémentation atomique telles que memcached. Je sais que Cassandra travaille sur la fonctionnalité d’incrémentation / décrémentation des compteurs atomiques, mais elle n’est pas encore prête pour les heures de grande écoute.

Je ne peux publier qu'un seul lien hypertexte car je suis nouveau. Pour en savoir plus sur les services d'assistance, voir le lien dans mon commentaire ci-dessous.

Notez que ce fil suggère ZooKeeper, memcached et redis comme solutions possibles. Ma préférence personnelle serait mémorisée.

http://www.mail-archive.com/[email protected]/msg03965.html


Je reçois les chiffres comme celui-ci après avoir converti les données en un hachage en PHP.






rowcount