关于Java Cassandra Client,哪一个更好?CQL怎么样?

fah*_*hmi 17 cassandra kundera

我正在尝试使用Hive作为数据库开发应用程序,然后我也发现noSQL解决方案作为它的替代方案.

现在决定使用Cassandra进行开发,我的下一个问题是关于我应该使用哪个客户端?哪一个更好,Hector - 一个纯java解决方案,还是带有JPA开发的Kundera?

我更喜欢赫克托,但我对昆德拉很好奇.有没有人使用昆德拉?哪个更好?


我很好奇CQL(Cassandra查询语言).它可以与赫克托耳集成吗?

小智 13

Hector正在慢慢走向CQL集成.已经做了第一步,但由于API不稳定的经验,开发人员似乎推迟了新版本.CQL API相当新,因为它应该几乎等同于SQL语法.我在CRUD操作中做了一些基本步骤,以验证是否可以通过CQL写入和读取数据.

尽管如此,CQL JAR现在不像标准JDBC驱动程序那样开箱即用,并且错过了一些重要的功能方面.看一下或多或少难以理解的thrift API和不那么简单的hector API,我相信CQL将成为Cassandra 0.8.1和1.0版本中最先进的访问API ,thrift将保留原生,原始访问一段时间.

两种API之间的竞争与Hector的决定无关.Hector本身提供了群集中的故障和连接处理等附加服务.这些功能既不是节俭也不是CQL.

我真的不相信所有其他的O/R地图制作者,甚至那些声称提供完整的JPA的人.我无法想象这应该如何运作.


DNA*_*DNA 7

回答有关客户端的问题 - Hector本质上提供对Cassandra原生API(列,列族,行等)的访问,而Kundera旨在隐藏这些细节并提供对象 - 数据库映射.

因此,Kundera可能更容易将一系列Java对象快速地保存到Cassandra中 - 但可能无法提供有效的映射,可能会失去一些noSQL方法提供的性能.

Hector希望您适应Cassandra数据模型 - 这将是更难的工作,但可能会提供更高的性能.

  • 请注意,Kundera使用Solandra实现索引,这是除了全文搜索之外的任何其他方法. (5认同)

DNA*_*DNA 6

现在有一个新客户Astyanax,由Netflix于2012年1月发布.

"Astyanax是一个Java Cassandra客户端.它借用了Hector的许多概念,但在连接池实现以及客户端API方面存在分歧.主要设计考虑因素之一是在连接池和Cassandra API之间提供一个干净的抽象,以便每个可以单独定制和改进.Astyanax提供了一种流畅的样式API,可以指导调用者将查询从一个密钥缩小到另一个列,并为我们遇到的更复杂的用例提供查询.Astyanax对Hector的操作优势包括更低的延迟,减少延迟差异,以及更好的错误处理."

Astyanax的源代码托管在Github:https://github.com/Netflix/astyanax