8
votes

Comment interroger Cassandra par date de date

J'ai une camticade Cassandra (0.6.4) qui aura de nouvelles entrées d'utilisateurs. Je voudrais interroger Cassandra pour ces nouvelles entrées afin que je puisse traiter ces données dans un autre système.

Mon sens était que je pouvais utiliser un fuseau horaire comme la clé de mon entrée, puis interroger sur un porte-clés qui commence soit avec "" comme StartkeKey, ou quel que soit le laststartKey. Est-ce la méthode correcte?

Comment get_range_slice crée-t-elle réellement une plage? Cela n'a-t-il pas à connaître le type de données de la clé? Aucune déclaration du type de données de la clé nulle part. Dans le fichier de stockage_conf.xml, vous déclarez le type des colonnes, mais pas des touches. La clé suppose-t-elle être du même type que les colonnes? Ou fait-il que cette magie renifle de la magie à deviner?

J'ai aussi vu des implémentations de référence où les gens stockent TimeuUidType dans des colonnes. Cependant, cela semble avoir des problèmes d'échelle car cette clé particulière deviendrait alors "chaude" puisque chaque changement devrait le mettre à jour.

Tous les pointeurs dans ce cas seraient appréciés.


0 commentaires

3 Réponses :



1
votes

Doug,

Écrire dans une seule famille de colonnes Peut parfois créer un point chaud si vous utilisez un partitionneur de préservation de commande, mais pas si vous utilisez le partitionnaire aléatoire par défaut (sauf si un sous-ensemble d'utilisateurs crée beaucoup plus de données que tous les autres utilisateurs! ).

Si vous avez trié vos rangées par heure (à l'aide d'un partitionneur de préservation de commande), vous êtes probablement encore plus susceptible de créer des points chauds, car vous ajoutez des lignes séquentielles et un seul noeud sera responsable. Pour chaque gamme du clavier.


0 commentaires

1
votes

colonnes et clés peuvent être de n'importe quel type, car la clé de ligne n'est que la première colonne. Pratiquement, le cluster est un anneau de clé de hachage circulaire et les touches sont hachées par le partitionneur pour être distribuées autour du cluster.

Méfiez-vous d'utiliser des dates sous forme de touches de ligne, car même la randomisation du randompartitioner par défaut est limitée et que vous pourriez finir par encombrer vos données.

De plus, si cette date change, vous devez supprimer la ligne précédente puisque vous ne pouvez effectuer que des insertions en C *.

Voici ce que nous savons:


0 commentaires