2016-07-18 4 views
1

J'ai une structure de table cassandra comme suitclause limite Cassandra pour l'horodatage (timeuuid)

create table demo (user_id text , comment_id text , timestamp timeuuid , PRIMARY KEY (user_id , comment_id , timestamp)) 

maintenant dans l'interface utilisateur Je veux la pagination telle que le clic de bouton suivant, je devrais obtenir la valeur de 10 à 20 puis 20 à 30 et ainsi de suite.

Je sais que nous ne pouvons pas initions une requête dans cassandra comme

select * from demo limit 10,20 

Donc, si je crée une requête comme

select * from demo where timestamp = 'sometimestampvalue' limit 10; 

Cela donnera 10 valeurs de « sometimestampvalue » à 10 prochaines valeurs.

stocker ensuite la dernière valeur d'horodatage de la ligne dans une variable (par exemple X), puis lancer la prochaine requête comme

select * from demo where timestamp = 'X' limit 10; 

Et ainsi de suite, cela fonctionnera? ou quelque chose de mieux peut être fait comme je suis prêt à changer la structure de la table aussi avec des colonnes de compteur ajouté comme fondamentalement je devrais être capable de faire la pagination basée sur n'importe quelle colonne.

Répondre

1

Voir cette réponse: Cassandra Limit 10,20 clause

Fondamentalement, vous devrez gérer dans votre code d'application. Votre suggestion semble fonctionner, avec un peu de peaufinage.

+0

Salut Alec, merci pour la réponse, au fond, je besoin de cela pour la pagination dans l'interface utilisateur, mais j'allais bien le doc cassandra, je suppose qu'ils ont radiomessagerie API qui sert le but sans avoir à s'inquiéter de ce que j'avais proposé dans la question. S'il vous plaît suggérer si je me trompe! et juste pour le plaisir si vous pouviez indiquer dans la réponse exactement ce qui est nécessaire. –