Erlang cql限制

Erlang cql限制,erlang,cassandra,cql,Erlang,Cassandra,Cql,我可能想使用在和之间进行通信。它是一个CQL客户端。所以我想知道,与thrift访问的cassandra相比,CQL(cassandra查询语言)有什么局限性 例如,我在互联网上发现: CQL目前有一些限制,不支持此类操作 作为分组依据,订单依据 这部分取决于您使用的Cassandra版本。例如,CQL在CQL 3.0之前不支持复合列(在Cassandra 1.1中可用,但默认情况下未启用)。但在大多数情况下,所有主要功能都可以在thrift API和CQL中使用 至于groupby,CQL或t

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

例如,我在互联网上发现:

CQL目前有一些限制,不支持此类操作 作为分组依据,订单依据


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


至于
groupby
,CQL或thrift API都不支持这一点
Order by
在CQL 3.0中,但它仅用于指定反向排序(这与您通过节俭获得的限制相同)。听起来你找到的那篇文章把Cassandra与传统的SQL数据库进行了比较。

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


别误会我。我认为用DSL取代thrift接口很有价值,但我相信,熟悉SQL作为访问关系数据的一种方式,会让开发人员以一种无法扩展的方式使用Cassandra。

CQL 3确实支持按排序,这是非常有效的,值得的。是的,您是对的,
orderby
在CQL中(请参阅)。我已经更新了答案,以更好地反映其工作原理。