HBase是否像Hive一样支持ACID?

问题描述

正如https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions所说,Hive支持某些有限的ACID交易。因此,如果我只需要行级事务,Hive是否足够? HBase的优势会越来越少吗?

谢谢。

解决方法

可以使用Apache Phoenix在HBase中进行ACID事务,https://phoenix.apache.org/transactions.html是HBase的一层,提供用于处理数据的SQL接口。

要使用事务,请在安装Phoenix后在hbase-site.xml中将属性phoenix.transactions.enabled设置为true,然后在创建表时使用TRANSACTIONAL选项。例如:

CREATE TABLE my_table (id INTEGER PRIMARY KEY,val VARCHAR) TRANSACTIONAL=true;

在此之后,您通常可以通过JDBC或其他接口使用SQL与表进行正常交互。 (请注意,您也可以将现有的非事务处理表更改为事务性表。)

有关更多信息,您可以在项目的网站上阅读有关Phoenix及其交易支持的信息:

{{3}}