2012-05-29 25 views
3

我可能要使用erlacassaCassandraEralng之間進行通信。這是一個CQL客戶端。所以我想知道,與通過節儉訪問cassandra相比,CQL(cassandra查詢語言)有哪些侷限性?CQL限制

例如,我已經找到了,互聯網:

CQL有一定的電流限制和不支持的操作, 如GROUP BY,ORDER BY

回答

4

這部分取決於版本你正在使用的Cassandra。例如,CQL在CQL 3.0之前不支持複合列(在Cassandra 1.1中可用,但默認情況下未打開)。但大多數情況下,所有主要功能都可以在節儉API和CQL中使用。

至於group by這不受任一CQL或節儉API支持。 Order by在CQL 3.0中,但它僅用於指定顛倒的順序(這與您通過Thrift的限制相同)。這聽起來像你發現的文章是將Cassandra與傳統的SQL數據庫進行比較。

+0

CQL 3不支持'爲了by'哪裏會是有效的,對於它的價值。 –

+0

是的,你說得對,'爲了by'是CQL(參見[CASSANDRA-3925(https://issues.apache.org/jira/browse/CASSANDRA-3925))。我已經更新了答案,以更好地反映它的工作原理。 – psanford

2
從語法差異

除此之外,最大的區別是,CQL僞裝成SQL,而節儉的API使沒有這樣的預緊力。開發人員將看到SQL並做出關係假設,這些假設根本不適用於Cassandra。例如,這裏有討論,主張使用order by。在Cassandra的世界中,對要訪問數據的每種方式的物化視圖進行規範化處理要比改變查詢要好得多。

不要誤解我的意思。我看到很多的價值與DSL等http://www.dynamicalsoftware.com/nosql/cassandra/cql更換節儉接口,但我相信,隨着SQL熟悉的方式來訪問關係型數據將導致開發商進入,將不能進行擴展的方式使用卡桑德拉。