首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hector Cassandra和JDBC的差异

Hector Cassandra和JDBC的差异
EN

Stack Overflow用户
提问于 2013-09-03 18:04:58
回答 4查看 6.3K关注 0票数 5

我目前正在启动一个使用Cassandra Apache的项目。所以我对从Java访问我的数据库cassandra很感兴趣。为此,我用赫克托·卡桑德拉。但是,我对通过Hector或JDBC进行访问之间的区别有什么疑问(具体来说是:https://code.google.com/a/apache-extras.org/p/cassandra-jdbc/)。

我相信以下几点(虽然我不确定我是否正确):

  • 两者之间的一个区别可能是不同级别的API (我认为Hector Cassandra是一个比JDBC Cassandra更高级别的API )?
  • 在JDBC中,使用CQL访问/修改数据库,而Hector Cassandra不使用CQL (只使用为此提供的方法)。

如果有人能帮助我,告诉我在前面的行中我是否正确/错误,以及两者之间是否有更多的差异,我将非常感激(Hector和JDBC Cassandra)。

提前感谢!

EN

回答 4

Stack Overflow用户

发布于 2013-09-04 11:17:51

官方的Cassandra驱动程序(https://github.com/datastax/java-driver)可能是一个新项目的最佳选择(IMHO,唯一的选择),原因如下:

新特征

所有其他Cassandra客户端(Hector、Astyanax等)都是基于遗留的Thrift协议的。RPC“每个请求一个响应”模型有严重的限制,例如,它不允许在单个连接或流大ResultSets中同时处理多个请求。

因此,DataStax开发了一种没有RPC限制的新协议。节约API不会获得新的特性,它只为向后兼容性而保留。相反,Java驱动程序是积极开发的,以结合Cassandra2.0的新特性,如条件更新、批处理准备语句等。新特性的概述如下:http://www.datastax.com/dev/blog/cql-in-cassandra-2-0

便利性

在早期的卡桑德拉时代(0.7),在我们的公司,我们已经使用了内部低水平的色拉客户。后来,我们在各种项目中使用了Hector、Pelops和Astyanax。我可以说,基于Java驱动程序的客户端在我看来是最简单和最干净的。

性能

我们对Cassandra Java驱动程序与其他客户端进行了一些性能测试。在大多数情况下,性能大致相同。但是,在某些情况下,Cassandra Java驱动程序由于其异步特性而明显优于其他客户端。

顺便说一句,有几个相关的问题有很好的答案:

编辑:当我写这篇文章时,我不知道在另一个答案中提到的阿基里斯(https://github.com/doanduyhai/Achilles)有通过Java工作的CQL实现。为了同样的完整性,我必须说,在CQL之上的阿喀琉斯的DAO可能(或有一天会成为)可行的替代普通CQL通过Java驱动程序。

票数 11
EN

Stack Overflow用户

发布于 2013-09-03 19:44:27

@mol

如果要启动一个新项目,为什么要限制Hector和cassandra?

还有许多其他有趣的选择:

票数 4
EN

Stack Overflow用户

发布于 2013-09-03 18:13:59

赫克托确实是一个更高级的API。在内部,它将使用Cassandra的Thrift来执行它的功能。它不会将它们转换为等效的CQL调用。但是它的API也提供访问到CQL。在这种情况下,它将把CQL (通过Th深层)传递给Cassandra的CQL API。

Cassandra中的CQL是一种类似SQL的语言,它通过Cassandra工作。因此,它在使用Cassandra方面并没有提供比API更多的功能,但确实使它有时更容易使用。如果您正在考虑使用赫克托,我也会看一看阿斯泰纳,这是一个较新的针对Cassandra的高级Java。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18598745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档