cassandra 通过聚类键选择

KoL*_*Ber 0 cassandra scylla

我对 cassandra 有问题(ScyllaDB(不支持索引!))

在我的场景中,我有一个包含三列的表格

CREATE TABLE test (a text , b text , c text , PRIMARY KEY ( a , b ,c ) );

现在我想通过第二个集群键( c )选择数据,但需要 b 。

我的目标但不正确的查询是:

SELECT * FROM test WHERE c='...' ALLOW FILTERING

正确的查询是这样的:

SELECT * FROM test WHERE b='...' AND c='...' ALLOW FILTERING

我的问题是否有任何解决方案可以在选择查询中仅使用 b 集群键?

tbs*_*ing 5

你可以查询

  • 一种 SELECT * FROM test WHERE a='...'
  • 一个和一个 SELECT * FROM test WHERE a='...' AND b='...'
  • a 和 b 和 c SELECT * FROM test WHERE a='...' AND b='...' AND c='...'

但不是 a 和 c。这是因为您需要分区键 + 零个或多个按定义顺序排列的集群键。

化妆品:在CREATE TABLE()周围a是不需要的,因为你不适用的复合分区键:

CREATE TABLE test (a text, b text, c text, PRIMARY KEY (a, b, c))
Run Code Online (Sandbox Code Playgroud)