|
|
1
2
我们碰到了同样的问题。 我为hbase开发了一个商业插件,用于处理您提到的事务和关系问题。具体来说,我们将datanucleus用于符合jdo的环境。我们的插件列在这个页面上 http://www.datanucleus.org/products/accessplatform_3_0/datastores.html 或者你可以直接去我们的小博客 http://www.inciteretail.com/?page_id=236 . 我们利用JTA提供交易服务。因此,在您的情况下,我们将处理关系问题以及索引表的任何插入(如果没有索引查找和排序,很难有一个应用程序!). |
|
|
2
1
如果没有额外的日志,您将无法保证这两个对象之间的完整性。hbase只有行级别的原子更新。不过,您可能可以使用该属性创建一个tx日志,该日志可以在失败后恢复。 |
|
|
3
0
如果必须作为一个工作单元执行两次插入,这意味着您必须使用事务管理器来保留acid属性。我知道没有别的办法来考虑这个问题。 成本是一个不太关心的参考完整性。正确地编写代码,不要担心性能。您的代码将首先查找性能问题,而不是事务管理器。 |
|
|
4
0
逻辑关系模型使用两种主要的关系:一对多和 多对多。关系数据库将前者直接建模为外键(无论 由数据库显式强制作为约束,或由 应用程序作为查询中的连接列)和后者作为连接表(附加 表,其中每一行表示两个main之间关系的一个实例 表)。hbase中没有直接的映射,通常可以归结为de- 规范化数据。 首先要注意的是,hbase没有任何内置连接或约束, 对明确的关系没有什么用处。您也可以轻松地放置- 在hbase表中有许多。但是 这只是一种关系,因为前一个表中的行的某些部分碰巧 对应于后一个表中的部分行键。hbase对这种关系一无所知- 所以你的应用程序可以处理它(如果有的话)。 |