Есть ли способ доступа к существующим записям таблицы HBase через Hive?Доступ к существующим строкам в таблице HBase через Hive
ответ
Согласно Hive HBase Integration wiki page, можно с помощью команды создать таблицу, как следующее:
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");
Однако, имейте в виду, что при создании таблицы, как это в улье 0,8 и до только позволит вам получить доступ к данным из вашей таблицы HBase, которая была вставлена через вашу соответствующую таблицу Hive. Если в вашей таблице HBase, которая не была вставлена в таблицу Hive, у вас были какие-либо ранее существовавшие данные, вы также не смогли бы запросить ее через таблицу Hive.
Start Hive 0.9, JIRA 1634, будет доступен, что позволяет таблице Hive получать доступ ко всем данным, содержащимся в таблице HBase, независимо от того, как она была вставлена в нее.
Да, это абсолютно возможно. Интенсивный куст в большой степени используется для этого, поскольку Hbase не предоставляет функции SQL, такие как JOINS и т. Д. Также Hive облегчает пользователям, которые являются новичками в терминологии NOSQL. Вам просто нужно создать таблицу в Hive, которая обеспечивает сопоставление с существующей таблицей Hbase. Вы должны быть осторожны при создании этого сопоставления. Собственно включите все вещи, которые присутствуют в таблицах Hbase. Я бы хотел добавить один Важная вещь здесь. Мы не должны думать о Hive как о замене Hbase, поскольку он подходит для пакетной обработки, а не для приложений реального времени в реальном времени.