cql限制

时间:2012-05-29 08:53:55

标签: erlang cassandra cql

我可能希望使用erlacassaCassandraEralng之间进行通信。它是一个CQL客户端。所以我想知道,与thrift访问的cassandra相比,CQL(cassandra查询语言)的局限性是什么?

例如我在互联网上找到了:

  

CQL有一些当前的限制,不支持这样的操作   作为GROUP BY,ORDER BY

2 个答案:

答案 0 :(得分:4)

这部分取决于您使用的Cassandra版本。例如,CQL在CQL 3.0之前不支持复合列(在Cassandra 1.1中可用,但默认情况下不启用)。但是在大多数情况下,所有主要功能都可以在thrift API和CQL中使用。

对于group by,CQL或thrift API都不支持。 Order by在CQL 3.0中,但它仅用于指定反向排序(与Thrift相同的限制)。听起来你发现的文章是将Cassandra与传统的SQL数据库进行比较。

答案 1 :(得分:2)

除了语法差异之外,最大的区别在于CQL假装是SQL,而thrift API没有这样的假装。开发人员将看到SQL并制定关系假设,这些假设根本不适用于Cassandra。例如,这里有讨论主张使用order by。在Cassandra的世界中,对你希望访问数据的每种方式的物化视图进行非规范化而不是更改查询要好得多。

别误会我的意思。我认为用http://www.dynamicalsoftware.com/nosql/cassandra/cql等DSL替换thrift接口有很多价值,但我相信熟悉SQL作为一种访问关系数据的方式会导致开发人员以不会扩展的方式使用Cassandra。

相关问题