当所有集群列都不可用时,读取cql中的查询

  • 本文关键字:读取 cql 查询 cassandra cql
  • 更新时间 :
  • 英文 :


在cql中,当我们编写读取查询时,我们需要按照主键定义中提到的顺序提供列,并且所有列都必须存在。但是,如果我们没有可用于某些集群列的值,该如何编写查询。

例如,如果主键被定义为一个表的主键((state),city,name),该表包含用户的记录,用户的state,city和name是主键的一部分,那么如何编写查询来从一个州中查找所有具有给定名称的用户,而不考虑他们的城市?类似的东西

Select * from USERS where state ='....', name='....';

不会起作用。

这里有两个选项。

  1. PRIMARY KEY ((state),name)上键控的原始表旁边创建一个查询表。

  2. 对以上查询调用ALLOW FILTERING指令,该指令仅对statename进行筛选。

虽然通常不鼓励使用ALLOW FILTERING(并且有充分的理由),但在这种情况下,情况并没有那么糟糕。通过指定state,您为查询提供了定位包含数据的节点的能力。是的,你仍然是";过滤";以非性能的方式通过数据,但至少不会跨多个节点。

相关内容

  • 没有找到相关文章

最新更新