我在Cassandra中有一个表,它的主键是text(string),只存储数字。
现在我想使用><
之类的数学运算符对此列执行CQL查询。
关于如何做到这一点的任何想法?
select * from ynapanalyticsteam.df_tran_order_info where order_header_key>'2018';
答案 0 :(得分:1)
为什么将它存储为文本,因为您的值是数字?
Cassandra有一些重要的概念:分区键和聚类键。
假设你有一张这样的表:
TABLE A (
...,
PRIMARY KEY ((pk1, pk2), ck1, ck2, ck3, ck4, ck5)
)
pk1和pk2是分区键,您的查询必须使用=包含它们。它用于确定数据所属节点的分区键。
聚类列(ck1,ck2,...,ck5)用于对数据进行排序,并使用=,&lt;,&gt;添加一些其他过滤。运营商。聚类列用于控制数据在分区中的排序方式。
您需要更改数据模型,以便将order_header_key作为群集密钥,并将另一列作为您的分区键。