2012-08-29 79 views
2

我已經閱讀了大量有關在Cassandra中構建反向索引的文檔,但是我沒有看到如何使用這些結果來獲取適用的行。Cassandra 1.1:查詢多行鍵,但不是範圍

我知道關於行切片,但這不適用於此。我的問題是:如何根據行鍵獲取大量特定的行?

在僞SQL:

SELECT * FROM table where Primark_Key IN (2, 32, 76, 1000, 2427) 

回答

4

我覺得multiget_slice是你在找什麼。提取密鑰列表以獲取。值得注意的是它並不是特別有效;儘管通常是唯一的選擇。

+0

謝謝。你能否詳細說明爲什麼這不是有效的? – IamIC

+1

當然 - 基本上,因爲每個密鑰都可以存儲在你的環上不同的地方,所以cassandra可以做的並不是很多優化,而且一次只能獲得一個。這可能是完全正確的,它的值得思考的問題尤其是如果你的multiget最終需要大量的密鑰。 – BigBen

+2

爲了澄清,當你執行一個multiget時,協調器將並行地請求來自不同節點的單個行。當單個節點必須讀取多行時,它基本上是順序的。總的來說,多部件不一定高效;應儘可能使用寬行模型(通常需要非規範化)。 –

3

您發佈的僞SQL也是有效的CQL查詢