hbase中是不是有任何自动提交的概念?
Posted
技术标签:
【中文标题】hbase中是不是有任何自动提交的概念?【英文标题】:Is there any concept of auto commit in hbase?hbase中是否有任何自动提交的概念? 【发布时间】:2016-12-06 07:43:47 【问题描述】:我是 hbase 新手,想了解更多。我只是想知道 HBASE 中是否有任何自动提交概念?
【问题讨论】:
【参考方案1】:HBase documentation 它不是一个符合 ACID 的数据库。但是,它确实保证了某些特定属性。 本规范列举了 HBase 的 ACID 属性。
它们是HBase中AutoFlush的概念,类似于autocommit。
如果您使用Apache Phoenix 来获取或更新HBase 中的数据,那么您可以将属性phoenix.connection.autoCommit
设置为true,默认为false。
【讨论】:
【参考方案2】:提交主要出现在两个地方:插入/更新(放入 HBase)和删除(在 HBase 中删除)
由于我们处于大数据环境中,当您摄取大量数据时,要求会有所不同。
如文档中所述,autoCommit 应设置为 false - 以获得更好的性能,而不是单独维护每条记录。它通常有助于处理缓冲区并在 HBase 的区域服务器上加载。
删除
HBase 不会就地修改数据,因此删除是通过创建称为墓碑的新标记来处理的。这些墓碑,连同死值,在主要的compactions上被清理了
关于 Phoenix 的最后一句话,HBase 之上的任何层最终都将基于 HBase 架构工作。希望这对您的设计有所帮助
【讨论】:
以上是关于hbase中是不是有任何自动提交的概念?的主要内容,如果未能解决你的问题,请参考以下文章