HBase 是否像 Hive 一样支持 ACID?

Does HBase support ACID just as Hive does?

正如 https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions 所说,Hive 支持一些有限的 ACID 事务。那么,如果我只需要行级事务,Hive 就足够了吗? HBase的优势是不是越来越少了?

谢谢。

可以使用 Apache Phoenix 在 HBase 中执行 ACID 事务,HBase 的一个层提供了一个 SQL 接口来处理数据。

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

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

之后,您只需通过 JDBC 或其他界面与 SQL 进行正常的 table 交互。 (请注意,您还可以将现有的非事务性 table 更改为事务性。)

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

https://phoenix.apache.org/transactions.html