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

时间:2013-05-01 15:25:17

标签: jpa nosql cassandra kundera

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

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

我很想知道其他人使用这个库的经历。而且,如果还有别的东西我们应该看一下,我很乐意听到它。

3 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:8)

使用native CQL driver并阅读documentation on data modeling。以昆德拉的方式假装Cassandra是一个关系型数据库,这是一种很好的方式,可以让自己画上一个角落而不太了解你是如何到达那里的。

答案 2 :(得分:2)

PlayOrm是一个noSql映射层,并且在遵循许多noSQL模式的情况下并非符合JPA标准。 noSQL不是关系型的。实际上,它可能不应该在PlayORM中具有R,因为它也不是完全关系的。你仍然在noSQL中有关系。它不仅仅是一个RDBMS。