Reputation: 21147
I may want to use erlacassa to communicate between Cassandra and Eralng. It is a CQL client. So I was wondering, what are the limitations of CQL (cassandra query language) compared to cassandra accessed by thrift?
For example I have found over the internet that:
CQL has some current limitations and does not support operations such as GROUP BY, ORDER BY
Upvotes: 3
Views: 831
Reputation: 8032
Aside from syntax differences, the biggest difference is that CQL pretends to be SQL whereas the thrift APIs make no such pretension. Developers will see the SQL and make relational assumptions that simply don't apply to Cassandra. For example, there is discussion here advocating for using order by. In the world of Cassandra, it is far better to denormalize materialized views of every way that you wish to access the data rather than by changing the query.
Don't get me wrong. I see a lot of value in replacing the thrift interface with a DSL such as http://glennengstrand.info/nosql/cassandra/cql but I believe that the familiarity with SQL as a way to access relational data will lead developers into using Cassandra in ways that will simply not scale.
Upvotes: 2
Reputation: 5670
This partly depends on the version of Cassandra that you are using. For example, CQL did not support composite columns until CQL 3.0 (which is available in Cassandra 1.1 but not turned on by default). But for the most part all major features are available both in the thrift API and in CQL.
As for group by
this is not supported by either CQL or the thrift API. Order by
is in CQL 3.0, but it is only used to specify a reversed ordering (which is the same limitation you would have through Thrift). It sounds like the article you found was comparing Cassandra to a traditional SQL database.
Upvotes: 4