Доступ к существующим строкам в таблице HBase через Hive

Есть ли способ получить доступ к существующим записям таблицы HBase через Hive?


person vishal    schedule 07.04.2012    source источник


Ответы (2)


Согласно вики-странице Hive HBase Integration, можно использовать команду создания таблицы, как показано ниже. :

CREATE TABLE hbase_table_1(key int, value string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val")
TBLPROPERTIES ("hbase.table.name" = "xyz");

Однако имейте в виду, что создание такой таблицы в Hive 0.8 и более ранних версиях позволит вам получить доступ только к данным из вашей таблицы HBase, которая была вставлена ​​через соответствующую таблицу Hive. Если бы у вас были какие-либо ранее существовавшие данные в таблице HBase, которые не были вставлены через таблицу Hive, вы также не смогли бы запросить их через таблицу Hive.

Начиная с Hive 0.9, будет доступна JIRA 1634, что позволяет таблице Hive получать доступ все данные, присутствующие в таблице HBase, независимо от того, как они были вставлены в нее.

person Mark Grover    schedule 25.04.2012

Да, это абсолютно возможно. Для этого интенсивно используется Hive, поскольку Hbase не предоставляет функции SQL, такие как «JOINS» и т. д. Кроме того, Hive упрощает работу для пользователей, которые плохо знакомы с терминологией NOSQL. Вам просто нужно создайте таблицу в Hive, которая обеспечивает сопоставление с существующей таблицей Hbase. Вы должны быть осторожны при создании этого сопоставления. Правильно включите все, что присутствует в таблицах Hbase. Я хотел бы добавить здесь одну важную вещь. .Мы не должны думать о Hive как о замене Hbase, так как он подходит для пакетной обработки, а не для приложений полного реального времени.

person Tariq    schedule 07.04.2012