【问题标题】:Java ORMs on NoSQL DB like HBaseNoSQL DB 上的 Java ORM,如 HBase
【发布时间】:2012-02-22 00:39:34
【问题描述】:

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

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

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

谁能帮助我理解为什么我们会再次需要 SQL 之类的查询,如果整个目标是远离它?

还有人可以评论您使用 HBase 的 ORM 的经验吗?我从http://wiki.apache.org/hadoop/SupportingProjects 看了其中一些,然后开始关注昆德拉。

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

【问题讨论】:

    标签: nosql hbase kundera


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      使用昆德拉的原因:

      1) 如果在 HBase 上寻找类似 SQL 的支持。由于它建立在 HBase 原生 API 之上,因此它只是将这些 SQL 查询转换为相应的 GET 或 PUT 方法调用。 2) 目前仅支持 HBase-0.20.6。 Kundera-2.0.6 将支持 HBase 0-90.x 版本。 3) Kundera 没有做一些开箱即用的事情来提供 map reduce over SQL 之类的查询。但是,Kundera-2.0.6 将通过仅启用对 Hive 原生查询的支持来提供对此类事物的支持!

      它完全符合 JPA,因此无需学习新知识。它只是以极少的努力在开发人员级别隐藏了复杂性。

      类似 SQL 的查询是为了便于开发、快速开发、不易出错和可重用性!

      -Vivek

      【讨论】:

      猜你喜欢
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      相关资源
      最近更新 更多