【问题标题】:Cassandra: How to query primary key using mathematical operators like >,< which is of type text?Cassandra:如何使用数学运算符查询主键,例如>,<这是文本类型?
【发布时间】:2018-10-31 22:09:35
【问题描述】:

我在 Cassandra 中有一个表,其主键类型为文本(字符串)并且只存储数字。 现在我想使用 &gt;&lt; 等数学运算符对此列执行 CQL 查询。 关于如何实现这一点的任何想法?

select * from ynapanalyticsteam.df_tran_order_info where order_header_key>'2018';

【问题讨论】:

    标签: cassandra datastax cql datastax-java-driver


    【解决方案1】:
    1. 既然您的值是数字,为什么要将其存储为文本?

    2. Cassandra 有一些重要的概念:分区键和集群键。

    假设你有一张这样的桌子:

    TABLE A (
      ...,
      PRIMARY KEY ((pk1, pk2), ck1, ck2, ck3, ck4, ck5)
    )
    

    pk1 和 pk2 是分区键,您的查询必须使用 = 包含它们。用于确定数据所属节点的分区键。

    聚类列 (ck1, ck2, ..., ck5) 用于对数据进行排序并使用 =、 运算符添加一些其他过滤。聚类列用于控制数据在分区中的排序方式。

    您需要更改数据模型,使 order_header_key 成为集群键,并让另一列成为您的分区键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-14
      • 1970-01-01
      • 2014-05-12
      • 2021-06-10
      • 2016-05-12
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多