开始卡桑德拉 - 使用昆德拉?别的什么?

Sha*_*man 8 jpa cassandra nosql kundera

我们正在和Cassandra一起弄湿脚.我们都没有这个特定平台的经验,但是经验丰富的开发人员使用JavaEE,JPA等.我遇到了Kundera库,它提供了与几个NoSQL数据存储兼容的JPA实现,包括Cassandra.

沿着这条路走下去很诱人,因为我们能够更快地起床和跑步.但是,这是正确的想法吗?使用像这样的库有什么权衡?它如何影响性能?有很大的不同吗?

我很想知道其他人使用这个库的经历.而且,如果还有其他什么我们应该看,而不是我喜欢听到它.

小智 10

将Jonathan(jbellis)提升到一个新的水平,恕我直言,像hibernate或JPA规范这样的ORM的目的是隐藏SQL的复杂性,因为应用程序开发人员在对象而不是SQL中处理得最好.同样,kundera隐藏了NoSQL的复杂性,但是以一种智能的方式允许它使用NoSQL的强大功能,但仍然使开发人员可以轻松使用传统的RDBMS范例.然而,正如Jonathan所提到的,你仍然应该理解Cassandra数据建模概念,否则,你最终会在Cassandra上创建另一个像怪物一样的SQL.Kundera通过使用嵌入式或一对多关系等优化技术自动转换为多个列而不是创建新的Columnfamilies(等效的RDBMS表)从而绕过创建物理关系模型,帮助进行NoSQL建模."工具与使用它的工匠/女人的技能一样好!"

  • 基于Lucene的索引是可选的.您可能想要使用Cassandra的二级索引.与原始的节俭等apis相比,目前的2.5版本性能开销非常小. (2认同)

jbe*_*lis 8

使用本机CQL驱动程序并阅读有关数据建模文档.假装Cassandra是一个关系数据库,就像Kundera所做的那样,是一个很好的方式,可以将自己描绘成一个角落而不太了解你是如何到达那里的.

  • 我会说这取决于用例的用例.Kundera并不将Cassandra作为关系模式,而是提供JPA方式来访问它.通过当前的CQL开发,Cassandra本身建议使用某种模式.因此,Kundera非常方便,它允许您:1.隐式处理Cassandra模式管理2.以JPA方式对Cassandra进行CRUD.3.当然Cassandra是非关系型分布式数据库,但我们仍然看到人们正在寻找像用例,多语言持久性这样的JPA的实例.昆德拉非常方便, (4认同)