如何使用Astyanax检索Cassandra中的行?
我有一个web应用程序,它需要在服务器端进行分页,数据库是cassandra。行键是一个UUID,而我在一行中只有几列,所以我尝试在行键上进行分页。
我已经想出了一个我并不完全满意的解决方案。问题是,当我根据从UI得到的搜索过滤器进行第一次搜索时,我不知道第一行的UUID,所以我准备了一个查询,它给了我前6条记录,我将第6条记录的键存储在映射中并将其放在会话中,因此当UI中的用户请求第二个页面时,我检索这个键(UUID),并将其作为下一组要检索的记录的开始。我在试着找到一种更干净的方法。
发布于 2012-09-10 09:55:28
根据问题更改进行编辑...
在这种情况下,听起来你做得很好。此外,听起来您使用的是OOP,否则行将不会按顺序排列。虽然playOrm的解决方案是更优雅地返回您存储在会话中的游标,但我认为您所拥有的已经很好了。
编辑,因为我们的代码更改了此链接中的第74行,这就是我们如何做到这一点的(您可以深入到那个cursor类,看看我们做了什么)。
如果您有10个行键,则只需传入键列表即可。
我不确定你说的分页是什么意思?您是说您有一个from和to行键,并希望它们之间的行?那么你是在使用按行键排序集群吗?
另一个完全不同的排序方向是playOrm,虽然它可以执行S-SQL,如果对象是分区的,您可以执行连接和其他类似操作(上面的链接实际上是指向playOrm中的一个文件)。
我真的不明白你说的“你身上没有行键”是什么意思。
稍后,Dean
https://stackoverflow.com/questions/12335409
复制相似问题