任何人都知道 HBase 的良好 Java ORM 实现。这个对 Ruby 来说真的很好看
http://www.stanford.edu/~sqs/rhino/doc/
但是找不到Java的。
谢谢。
任何人都知道 HBase 的良好 Java ORM 实现。这个对 Ruby 来说真的很好看
http://www.stanford.edu/~sqs/rhino/doc/
但是找不到Java的。
谢谢。
最近发布了 kundera-2.0.4 的新版本,它是基于 Hbase 的 ORM。它提供了大量其他非常有用的东西,比如索引、跨数据存储持久性等。
我建议试一试 https://github.com/impetus-opensource/Kundera
可执行 jar 位于:
在我看来,HBase 的优势在于将动态列保留在静态列族中。根据我使用 HBase 开发应用程序的经验,我发现确定单元限定符和值并不像 SQL 那样容易。
例如,一本书有许多作者,根据您的访问模式、作者编辑、应用层缓存实现,您可能希望选择将整个作者保存在书表中(即作者驻留在 2 个表中,作者表和书表) 或只是作者 ID。此外,作者的集合可以作为 XML/JSON 保存到一个单元格中,也可以保存为单个作者的单个单元格。
有了这种理解,我得出结论,编写一个成熟的 ORM,比如 Hibernate,不仅非常困难,实际上可能还没有定论。所以我采取了不同的方法,更像是 iBatis 之于 Hibernate。
让我试着解释一下它是如何工作的。为此,我将使用此处和此处的源代码。
就是这样。如何使用它们可以在这里找到。它基本上使用 CommonReadDao、CommonWriteDao 来读写 HBase 的数据。常见的 read dao 在查询中实现多线程行到对象的转换,多线程通过 ids 获取,通过 id 获取,并具有类似 Hibernate Criteria 的 API 以通过 Scan 查询到 HBase(没有可用的聚合函数)。Common write dao 实现了与一些附加功能相关的通用写相关代码,例如乐观/悲观锁定、单元格覆盖/合并检查实体(不)存在时保存、更新、删除等。
这个 ORM 是为我们的内部目的而开发的,我已经到了我的脖子上,因此还不能做一些文档。但是,如果您有兴趣,请告诉我,我会花时间优先记录文档。
Hibernate OGM 是非 SQL 数据库的一个很好的解决方案。试试看。
datanucleus 怎么样:您可以使用 JPA 或 JDO 作为 API,使用 hbase 作为后端存储:http ://www.datanucleus.org/plugins/store.hbase.html
你可以试试这个:http ://code.google.com/p/hbase-ormlite/ 。这是 Java 中 HBase 的一种形式。
我们正在使用 HBase ORM - Surus https://github.com/mushkevych/surus/wiki
可能值得一提