Как получить доступ к таблице HBase в Hive и наоборот?

как разработчик, я создал таблицу HBase для нашего проекта, импортируя данные из существующей таблицы MySQL с помощью sqoop job. Проблема в том, что наша команда Data analyst знакома с синтаксисом MySQL, подразумевает, что они могут запросить HIVE таблица легко. Для них мне нужно выставить таблицу HBase в HIVE. Я не хочу дублировать данные, снова заполняя данные в HIVE. Кроме того, дублирование данных может иметь проблемы с согласованностью в будущем.

могу ли я выставить таблицу HBase в HIVE без дублирования данные? Если да, то как это сделать? Кроме того, если я insert/update/delete данные в моей таблице HBase обновленные данные появятся в HIVE без каких-либо проблем?

иногда наша аналитическая команда данных создает таблицу и заполняет данные в улье. Могу ли я подвергнуть их воздействию HBase? Если да, то как?

1 ответов


Интеграция HBase-Hive:

создания external table в hive для таблицы HBase позволяет запрашивать данные HBase o запрашиваться в Hive без необходимости дублирования данных. Вы можете просто обновлять или удалять данные из таблицы HBase, а также просматривать измененную таблицу в Hive.

пример:

рассмотрим у вас есть таблица hbase со столбцами id, name и email.

пример команды внешней таблицы для улей:

CREATE EXTERNAL TABLE hivehbasetable(key INT, id INT,  username STRING, password STRING, email STRING) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,id:id,name:username,name:password,email:email") TBLPROPERTIES("hbase.table.name" = "hbasetable");

дополнительные сведения о Hive-для HBase интеграции посмотри здесь