【问题标题】:Astyanax retrieve by UUID通过 UUID 检索 Astyanax
【发布时间】:2012-09-08 23:50:39
【问题描述】:

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

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

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

【问题讨论】:

    标签: cassandra uuid astyanax


    【解决方案1】:

    针对问题更改进行编辑...

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

    编辑因为我们的代码改变了 此链接中的第 74 行是我们的操作方式(您可以深入到该游标类基本上以查看我们的操作)。

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

    如果您有 10 个行键,您只需在键列表中传递。

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

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

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

    后来, 院长

    【讨论】:

    • 感谢您的回复。让我换个更好的方式。它是一个具有搜索页面的 Web 应用程序,用户输入一个值让我们说一个带有名称值的文件,例如 name="xyz",现在我只想获取与条件匹配的前 5 条记录,当用户转到第 2 页时UI,我得到接下来的 5 条记录。基本分页.....
    猜你喜欢
    • 2013-06-20
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 2012-07-20
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多