Comment obtenir le nombre de lignes dans la table Cassandra
C'est une question super basique mais ça m'embête depuis des jours. Est-il un bon moyen pour obtenir l'équivalent d'un COUNT(*)
du tableau de Cassandra?
Je vais déplacer plusieurs centaines de millions de lignes en C* pour certains tests de charge et j'aimerais au moins obtenir un nombre de lignes sur certains exemples de travaux ETL avant de déplacer des quantités massives de données sur le réseau.
La meilleure idée que j'ai est de faire une boucle sur chaque ligne avec Python et d'incrémenter automatiquement un compteur. Existe-t-il un meilleur moyen de déterminer (ou même d'estimer) la taille de ligne d'une table C*? J'ai également fouillé autour de Datastax Ops Center pour voir si je peux déterminer la taille de la ligne là-bas. Si vous le pouvez, Je ne vois pas comment c'est possible.
Quiconque nécessaire pour obtenir un count(*)
d'un tableau en C*? Si oui, comment feriez-vous pour faire cela?
6 réponses
Oui, vous pouvez utiliser COUNT(*)
. Voici la documentation .
Une expression SELECT utilisant COUNT(*) renvoie le nombre de lignes correspondant à la requête. Vous pouvez également utiliser COUNT(1) pour obtenir le même résultat.
Comptez le nombre de lignes dans la table users:
SELECT COUNT(*) FROM users;
Vous pouvez également obtenir des estimations à partir de nodetool cfhistograms
si vous n'avez pas besoin d'un compte exact (ces valeurs sont des estimations).
Vous pouvez également utiliser spark si vous utilisez DSE.
nodetool tablestats
peut être très pratique pour obtenir rapidement des estimations de ligne (et d'autres statistiques de table).
nodetool tablestats <keyspace.table>
pour une table spécifique
Vous pouvez utiliser copy pour éviter le délai d'attente de cassandra qui se produit généralement sur count (*)
cqlsh -e "copy keyspace.table_name (first_partition_key_name) to '/dev/null'" | sed -n 5p | sed 's/ .*//'
Pour ceux qui utilisent L'Adaptateur de Composant C # Linq, vous pouvez utiliser:
var t = new Table<T>(session);
var count = t.Count().Execute();
Nodetool cfstats / grep-a 1000 KEYSPACE
Remplacez L'espace de clés pour obtenir les détails de toutes les tables de cet espace de clés