Как получить доступ к таблице 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 интеграции посмотри здесь