Search code examples
javacassandrahectorcql

Hector or CQL,Which one should i use


I am new to cassandra. I have to write an application that uses cassandra. I wanted to know which one will be better for me so that i will not face much problem in future. Which api should i use for my application.


Solution

  • Sunil, you're addressing a reasonable question, and I think it's wholly appropriate that you've asked it before coding away at a problem. You might reach a more widely accepting audience if it were phrased something like, "What are the pros and cons I should look for between these two approaches to help me decide between them?"

    The Hector client supports a programmatic interface for communicating with Cassanda, as well as a way to parse CQL statements, so your choice isn't necessarily between Hector and CQL, but more like programmatic vs. CQL, or a combination of the two. You could face that same question even if choosing between Hector and Astyanax clients.

    Reasons to choose CQL:

    • CQL is easy to store, retrieve, and compare revisions.
    • CQL is easy to read and reveiw, especially as DDL.
    • CQL is easy to log for troubleshooting and auditing purposes.
    • Developers with a history of RDBMS may acclimate more quickly to CQL, reducing training time or increasing a pool of candidates for hire.
    • Community development is trending toward JDBC-like handling of CQL.

    Reasons to choose Programmatic:

    [AMENDMENT]

    It appears some of my knowledge was outdated. Based on jbellis' comment (the Jonathan Ellis, I presume), CQL is currently more performant than thrift, and also supports prepared statements. I'm at a loss for a good argument against a CQL-based approach.