Cassandra:如何使用数学运算符查询主键,例如>,<这是文本类型?
Posted
技术标签:
【中文标题】Cassandra:如何使用数学运算符查询主键,例如>,<这是文本类型?【英文标题】:Cassandra: How to query primary key using mathematical operators like >,< which is of type text? 【发布时间】:2018-10-31 22:09:35 【问题描述】:我在 Cassandra 中有一个表,其主键类型为文本(字符串)并且只存储数字。
现在我想使用 ><
等数学运算符对此列执行 CQL 查询。
关于如何实现这一点的任何想法?
select * from ynapanalyticsteam.df_tran_order_info where order_header_key>'2018';
【问题讨论】:
【参考方案1】:既然您的值是数字,为什么要将其存储为文本?
Cassandra 有一些重要的概念:分区键和集群键。
假设你有一张这样的桌子:
TABLE A (
...,
PRIMARY KEY ((pk1, pk2), ck1, ck2, ck3, ck4, ck5)
)
pk1 和 pk2 是分区键,您的查询必须使用 = 包含它们。用于确定数据所属节点的分区键。
聚类列 (ck1, ck2, ..., ck5) 用于对数据进行排序并使用 =、 运算符添加一些其他过滤。聚类列用于控制数据在分区中的排序方式。
您需要更改数据模型,使 order_header_key 成为集群键,并让另一列成为您的分区键。
【讨论】:
以上是关于Cassandra:如何使用数学运算符查询主键,例如>,<这是文本类型?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Cassandra 3.7 中使用 LIKE 运算符查询“%”字符?
使用 Spring-data-cassandra 查询具有复合主键的表
使用Spring-data-cassandra查询具有复合主键的表