Поддерживает ли HBase ACID так же, как и Hive?

#hive #transactions #hbase #acid

#улей #транзакции #hbase #acid

Вопрос:

как https://cwiki.apache.org/confluence/display/Hive/Hive Transactions говорит, что Hive поддерживает некоторые ограниченные транзакции ACID. ИТАК, если мне просто нужны транзакции на уровне строк, достаточно ли Hive? Преимущества HBase становятся все меньше и меньше?

Спасибо.

Ответ №1:

В HBase можно выполнять транзакции ACID с помощью Apache Phoenix, слоя для HBase, который предоставляет интерфейс SQL для обработки данных.

Чтобы использовать транзакции, после установки Phoenix вы устанавливаете свойство phoenix.transactions.enabled true в hbase-site.xml , затем используйте эту TRANSACTIONAL опцию при создании своей таблицы. Например:

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

После этого вы просто взаимодействуете со своей таблицей обычным образом, с SQL через JDBC или другой интерфейс. (Обратите внимание, что вы также можете изменить существующую нетранзакционную таблицу на транзакционную.)

Подробнее о Phoenix и его поддержке транзакций вы можете прочитать на веб-сайте проекта:

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