Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

About Java Cassandra Client, which one is better? How about CQL? [closed]

I am trying to develop application using Hive as the Database, and then I also find noSQL solutions as an alternative to it.

Now decided to develop using Cassandra, my next problem is about what client should I use? which one is better, Hector -- a pure java solutions, or Kundera with JPA like development?

I prefer Hector, but I am curious about Kundera. Is there anyone using Kundera? Which is better?


I'm curious about CQL (Cassandra Query Language). Can it integrate with Hector?

like image 642
fahmi Avatar asked May 27 '11 10:05

fahmi


Video Answer


2 Answers

Hector is slowly moving towards CQL integration. The first steps have been made, but because of the experience of an unstable API, the developers seem to have postponed a new release. The CQL API is rather new, as it should be nearly equivalent to a SQL syntax. I made some basic steps with CRUD operations to verify that data could be written and read via CQL.

Nevertheless, the CQL JAR is not usable out of the box like a standard JDBC driver as of now, and misses some important feature aspects. Having a look at the more or less difficult to understand thrift API and the not really much simpler hector API, I am convinced that CQL will be established as the state-of-the-art access API for Cassandra in version 0.8.1 and 1.0, where thrift will remain the native, raw access for some time.

The competition between both APIs has nothing to do with the decision of Hector. Hector itself provides additional services like failure and connection handling in the cluster. These are features being addressed by neither thrift nor CQL.

I don't really believe in all other O/R mappers, or even those claiming to provide a full-fledged JPA. I cannot imagine how this should work.

like image 71
Lars Avatar answered Oct 07 '22 15:10

Lars


Answering your question about clients - Hector essentially provides access to the Cassandra native API (columns, column families, rows etc) whereas Kundera aims to hide these details and provide object-database mapping.

Kundera therefore probably makes it easier to quickly persist a range of Java objects into Cassandra - but may not provide an efficient mapping, perhaps losing some of the performance that noSQL approaches provide.

Hector expects you to adapt to the Cassandra data model - this will be harder work, but is likely to deliver more performance.

like image 7
DNA Avatar answered Oct 07 '22 17:10

DNA