Cassandra:如何使用数学运算符来查询主键,例如>,<哪个是文字类型?

时间:2018-05-22 08:00:30

标签: cassandra datastax cql datastax-java-driver

我在Cassandra中有一个表,它的主键是text(string),只存储数字。 现在我想使用><之类的数学运算符对此列执行CQL查询。 关于如何做到这一点的任何想法?

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

1 个答案:

答案 0 :(得分:1)

  1. 为什么将它存储为文本,因为您的值是数字?

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

  3. 假设你有一张这样的表:

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

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

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

    您需要更改数据模型,以便将order_header_key作为群集密钥,并将另一列作为您的分区键。