1

我们如何使用 Astyanax 在 Cassandra 中检索一行?

我有一个需要在服务器端进行分页的 Web 应用程序,数据库是 cassandra。行键是一个 UUID,我一行中有几列,所以我试图对行键进行分页。

我已经制定了一个我并不完全满意的解决方案。问题是,当我根据从 UI 获得的搜索过滤器进行第一次搜索时,我不知道第一行的 UUID,所以我准备了一个查询,它给出了前 6 条记录,我存储了MAP 中的第 6 条记录并将其放入会话中,因此当用户从 UI 请求第二页时,我检索此键(UUID)并将其作为要检索的下一组记录的开始。我试图找到一种更清洁的方法。

4

1 回答 1

3

编辑以响应问题更改...

在这种情况下,听起来你做得很好。听起来您也正在使用 OOP,否则行不按顺序排列。虽然 playOrm 的解决方案更优雅地返回您存储在会话中的光标,但我认为您所拥有的一切都很好。

编辑因为我们的代码更改了此链接中的第 74 行,我们就是这样做的(您基本上可以深入到该游标类以查看我们所做的事情)。

https://github.com/deanhiller/playorm/blob/master/src/main/java/com/alvazan/orm/layer9z/spi/db/cassandra/Cas​​sandraSession.java

如果您有 10 个行键,则只需传入键列表即可。

不知道你说的分页是什么意思???你是说你有一个 from 和 to 行键并想要它们之间的行吗?您是否使用按行键对集群进行排序?

另一个完全不同的排序方向是 playOrm,尽管它可以执行 S-SQL,如果事情被分区,您可以执行连接和其他类似操作(上面的链接实际上是 playOrm 中的一个文件)。

我真的不确定你的意思是“你没有带行键”

后来,迪恩

于 2012-09-10T01:55:27.563 回答