2016-10-17 45 views
-1

當我在卡桑德拉像這樣的表:卡桑德拉選擇上表計數器where子句

CREATE TABLE大寫金額( ID INT, 日期時間戳, countValue計數器, PRIMARY KEY((ID) ,日期));

我知道分區鍵的如下聲明:Difference between partition key, composite key and clustering key in Cassandra? 但計數器不能是主鍵的一部分。 現在我想查詢基於countValue例如像這樣:

SELECT * from amount WHERE countValue > 10; 

當然,這會給一個未定義的名稱例外。但有沒有可能實現這樣的查詢,而不需要像SELECT * FROM amount;這樣的事情,然後通過數據集?我想獲取我需要的數據集。

+0

如果您有DSE(DataStax Enterprise Cassandra),那麼您可以使用內置的Solr索引將其關閉。但是沒有直接的方法,除了按鍵之外,不支持計數器掃描。 – Sreekar

+0

@Sreekar我想我會爲它使用SQL。在SQL環境旁邊有一個非常大的Cassandra數據庫,所以它很容易切換。 – Proliges

回答

2

這不是你可以在卡桑德拉做的事情。您將需要使用其他一些過程,例如您建議的客戶端過濾。

另一種選擇是代替在表中執行計數器,您可以將記錄分開保存,並在Spark中進行一些後處理。

+0

好的客戶端過濾可能不是執行此操作的最佳方式,我必須在不斷增長的數據庫中進行選擇。也許我會在SQL中這樣做,但也許我可以創建一個tabel,其中'countValue'是一個整數。然後,如果我是正確的,我應該能夠循環。 – Proliges