NoSQL DB上的Java ORM,如HBase

时间:2012-02-22 00:39:34

标签: nosql hbase kundera

我最近开始熟悉NoSQL(HBase)。我绝对是个菜鸟。

我正在调查可以在HBase上使用的ORM和高级客户端,并且遇到了一些。

像昆德拉这样的一些ORM库正在提供SQL之类的数据查询功能。我发现这有点反直觉。

任何人都可以帮助我理解为什么我们再次需要SQL来查询整个目标是否要远离它?

也有人评论你对HBase的ORM经验吗?我从http://wiki.apache.org/hadoop/SupportingProjects看了几个,开始看昆德拉。

另一个相关问题 - 使用Kundera运行地图的数据查询是否会在内部减少作业?

2 个答案:

答案 0 :(得分:4)

kundera或Spring数据可能会在NoSQL数据库上提供用户友好的ORM层,但底层实体模型仍然必须是NoSQL友好的。这意味着NoSQL用户不应盲目遵循RDBMS建模策略,而应以这种方式设计ORM实体,以便可以使用所有NoSQL功能。 作为一个拇指规则,kundera ORM实体应该使用查询优先策略设计,其中首先需要定义查询以便创建主键并且还确保尽可能少地使用关系模型。应该避免查询随机列和完整扫描,因此可能必须跨实体复制数据以减少多个实体查找。此外,还需要规划交易管理。仅供参考,kundera不支持交易(超出Hbase / Cassandra支持的单行TX)。

答案 1 :(得分:3)

使用昆德拉的原因:

1)如果寻找支持HBase的SQL。由于它构建在HBase本机API之上,因此它只是将这些SQL查询转换为相应的GET或PUT方法调用。 2)目前它仅支持HBase-0.20.6。 Kundera-2.0.6将支持HBase 0-90.x版本。 3)Kundera没有开箱即用,提供地图减少SQL等查询。但是,只有支持Hive本机查询才能在Kundera-2.0.6中提供对此类内容的支持!

完全符合JPA标准,因此无需学习新内容。它只需极少的工作量就可以隐藏开发人员级别的复杂性。

像查询这样的SQL是为了方便开发,快速开发,减少错误和可重用性!

-Vivek