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中是不是有任何自动提交的概念?的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以在特定时间自动提交 git 中的更改

即使自动提交为假,从连接创建新语句是不是会提交所有内容?

HBase性能优化方法总结 (转)

提交表单后如何自动创建客户表

JS采坑记录 - form表单中只有一个input时,按回车键后表单自动提交

按Enter键后Form表单自动提交的问题