2015-05-08 3 views
6

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

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

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

ответ

6

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

Создание в улье для HBase таблицы в external table позволяет запрашивать данные о HBase быть запрошены в улье без необходимости дублирования данных. Вы можете просто обновить или удалить данные из таблицы 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"); 

Для получения дополнительной информации об интеграции Улей-Hbase выглядеть here

+0

насчет реверса? У меня таблица HIVE и выставляю ее HBase? – Abhishek

+0

@Abhishek Пока вы пишете на таблицу HIVE, хранящуюся в HBaseStorageHandler, таблица и данные, которые она связывает, будут храниться в HBase. Ваша команда может создавать столько HBase-хранимых таблиц (внешних или нет), как им нравится в HIVE, и «INSERT ... SELECT ...» в них, данные будут немедленно доступны в HBase после завершения запроса. Попробуй. –

+0

Получил это .. Спасибо :) – Abhishek

Смежные вопросы