Cassandra

允許過濾未按預期工作

  • August 28, 2014

ALLOW FILTERING我在上班時遇到問題。在我們的 Cassandra 1.2 數據庫中,我們有一個這樣的表:

CREATE TABLE some_table
   partition_key text,
   other_key     text,
   non_key       text,
   PRIMARY KEY (partition_key, other_key)

根據文件,這個查詢應該可以工作:

SELECT *
FROM some_table
WHERE 
   partition_key = 'foo'
   AND other_key > 'bar'
   AND non_key = 'baz'
LIMIT 100
ALLOW FILTERING

但是,我收到此錯誤:

無法在“您的鍵空間”上執行 CQL 腳本:使用 Equal 運算符的 by-columns 子句中不存在索引列

即使這個更簡單的查詢也會失敗並出現相同的錯誤:

SELECT *
FROM some_table
WHERE 
   partition_key = 'foo'
   AND other_key = 'bar'
   AND non_key = 'baz'
LIMIT 100
ALLOW FILTERING

是的,我知道您可以將二級索引添加到表中,但我認為重點ALLOW FILTERING是在您對可能進行大量掃描的事實感到滿意時啟用異常。

好像ALLOW FILTERING徹底壞掉了。為什麼他們這行不通?

看來此功能具有欺騙性,您嘗試做的事情尚不可能。計劃用於 v3。

https://issues.apache.org/jira/browse/CASSANDRA-6377

引用自:https://dba.stackexchange.com/questions/75139