【问题标题】:IF condition based on count in cassanda基于 cassandra 计数的 IF 条件
【发布时间】:2019-05-31 01:23:27
【问题描述】:

我需要一个 group by 查询以及基于计数的 if 条件,并且我在下面的 mysql 中有工作查询。 select notification,subject,max(time) as recent,value,IF(COUNT(event.value) > 1, 'Abnormal', 'Normal') AS NewResult from event where time between date_add(now(), interval -10 minute) and now() group by device,value order by time;

cassandra 中是否有任何相关查询。

【问题讨论】:

    标签: cassandra cql cassandra-3.0 cql3


    【解决方案1】:

    没有。这将需要过滤并至少在所有令牌范围内进行分散收集(如果使用索引),并且可能需要全表扫描。两者都不能很好地扩展,因此几乎不支持,因此在 cql 语法中根本不允许使用更复杂的表达式。

    在 cassandra 中,您围绕查询设计表,而不是围绕数据设计查询。您可能真的想考虑使用 spark 或 hadoop 进行更复杂的批量处理,但实际上您并没有将数据库用于其设计目的。如果它只是一次运行的即席查询,您可以编写一个客户端应用程序,将所有数据下拉、聚合和过滤。

    如果您有机会考虑更改您的数据模型(如果需要读取)。

    【讨论】:

      猜你喜欢
      • 2013-12-19
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 2019-11-07
      相关资源
      最近更新 更多