Hector或CQL,我应该使用哪一个

时间:2012-09-02 17:13:36

标签: java cassandra hector cql

我是cassandra的新手。我必须编写一个使用cassandra的应用程序。我想知道哪一个对我更好,这样我将来不会遇到太多问题。我应该在申请时使用哪种API。

2 个答案:

答案 0 :(得分:6)

Sunil,你正在解决一个合理的问题,我认为在编码问题之前你已经问过它是完全合适的。你可能会接触到更广泛接受的观众,如果它的措辞是“我应该在这两种方法之间寻找哪些优点和缺点来帮助我在它们之间做出决定?”

Hector客户端支持用于与Cassanda通信的编程接口,以及解析CQL语句的方法,因此您的选择不一定在Hector和CQL之间,但更像是编程与CQL,或者是二。即使在Hector和Astyanax客户之间做出选择,你也可能面临同样的问题。

选择CQL的原因:

  • CQL易于存储,检索和比较修订版。
  • CQL易于阅读和启发,特别是作为DDL。
  • CQL易于记录以进行故障排除和审核。
  • 具有RDBMS历史的开发人员可以更快地适应CQL,缩短培训时间或增加招聘人员。
  • 社区发展趋向于类似JDBC的CQL处理。

选择程序化的理由:

[修正]

看来我的一些知识已经过时了。根据jbellis的评论( Jonathan Ellis,我认为),CQL目前比thrift更高效,并且还支持预处理语句。对于基于CQL的方法的好争论,我感到很茫然。

答案 1 :(得分:0)

另一个完全不同的选项是playOrm,因此您可以无限制地进行连接。 playOrm允许你做“可扩展的JQL”,如下所示。您只需要决定如何对数据进行分区。

@NoSqlQuery(name =“findJoinOnNullPartition”,query =“PARTITIONS t(:partId)select t FROM TABLE as t INNER JOIN t.security as s where s.securityType =:type and t.numShares =:shares”)