【问题标题】:how to make a subselect in cassandra db如何在 cassandra db 中进行子选择
【发布时间】:2017-09-06 20:42:54
【问题描述】:

我正在尝试恢复我的对象的最后一个状态,但是这个子选择不起作用,我已经看到新版本的 cassandra db 支持聚合操作和子查询。

select * from event_store 
   where event_version = (select max(event_version) from event_store) 
    ALLOW FILTERING;

SyntaxException:第 1:49 行在输入“select”处没有可行的替代方案(...from event_store where event_version = [(]select...)

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    您可以使用 2 个单独的查询来做到这一点:

    select max(event_version) from event_store;
    

    然后

    select * from event_store where event_version = 2 allow filtering;
    

    我可能有点过时了,但似乎没有子选择支持:

    此票的工作已停止

    https://issues.apache.org/jira/browse/CASSANDRA-8846

    有一些尝试这样做:

    https://github.com/jobmthomas/Cassandra-SubQuery

    但总体而言,cassandra 不支持此功能。

    【讨论】:

    • 一个潜在的问题是子选择可能会返回大量的事件版本......(数百万)这不是 Cassandra 预期能够在后端执行的操作。
    猜你喜欢
    • 2018-02-05
    • 2023-04-03
    • 2013-07-29
    • 2021-04-27
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    相关资源
    最近更新 更多