首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HBase是否支持嵌套事务(或类似的事务)?

HBase是否支持嵌套事务(或类似的事务)?
EN

Stack Overflow用户
提问于 2018-11-09 16:54:12
回答 1查看 947关注 0票数 0

我希望运行修改数据的测试,断言更改是正确的,然后回滚更改。在典型的数据库术语中,这将被称为启动事务,然后回滚事务。

我受到MySql的限制,因为应用程序代码使用事务,所以测试不能在事务中进一步封装应用程序的更改。

如果我切换到HBase (我有其他考虑的理由,例如规模),我能做这样的事情吗?这是一个不确定的情况,谷歌的目的是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-10 22:25:16

首先,很少有数据库支持真正嵌套的事务。然而,MySQL和Postgres都支持SAVEPOINT,它可以用来完成您想要做的事情。如果您使用的是rails这样的ORM,它应该已经能够处理这样的用例了。

事务在HBase中的应用

Apache不支持传统意义上的事务,也就是说,它不提供启动和回滚operation.The仅由HBase提供的事务性保证的能力:

  1. 行级操作的原子性。
  2. 在HBase区域上运行的任何扫描操作都会看到数据的状态,就像扫描开始时的状态一样。当扫描运行时,它将不会看到写入该区域的新数据。

我的建议是,不要像从关系数据库那样对NoSQL数据库抱有类似的期望。HBase擅长处理数十兆字节的数据,用于进行高容量的点更新、点读取和范围扫描。但是,管理HBase集群比管理MySQL实例要复杂得多。在迁移到HBase时,您需要删除关系数据库中的许多需求。

尽管如此,对于您想要做的事情有一些解决办法,根据您的确切设置,这些方法可能有效,也可能不起作用。您可以在每个测试开始之前清理整个DB/表。

处理这一问题的另一种方法是在HBase之上使用另一个提供类似SQL语义的引擎。阿帕奇凤凰就是这样一个项目,它拥有一个非常活跃的开发人员社区。他们在最新的版本中推出了跨行事务支持(这种支持仍然处于测试版,当然,这里也没有嵌套的事务)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53230129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档