Могу ли я объединить таблицу Hive в кластере A с таблицей Hbase в кластере B - PullRequest
0 голосов
/ 26 мая 2018

У моего клиента есть вычислительный сценарий, в котором некоторые данные были сохранены в Hive в кластере A, а некоторые другие данные были сохранены в Hbase в кластере B, затем они хотят выполнить некоторую операцию соединения с двумя типами таблиц.

поэтому есть способ разрешить мне сделать это в Hive следующим образом:

select hive_table.col1, hbase_table.col2 from hive_table inner join hbase_table on hive_table.id = hbase_table.id    

таблица кустов и таблица hbase существуют в другом кластере.

1 Ответ

0 голосов
/ 31 июля 2018

Да, возможно объединение таблицы Hive (таблица1 при условии, что она находится в HDFS) с таблицей Hbase (таблица table2-hbase) .Но это не рекомендуется, потому что HBase неэффективен с полным сканированием таблицы, когда вы пытаетесь присоединиться.Лучший способ сделать это - преобразовать таблицу Hbase в паркет или AVRO.Теперь table1 из Hive и table2 из Hbase находятся в HDFS, что делает его эффективным.

В двух словах, мы можем объединить любые таблицы, которые хранятся в метастазах Hive.Неважно, построены ли таблицы Hive поверх HDFS, Hbase.До тех пор, пока у нас есть схема в хранилище метаданных куста, мы можем присоединиться к ним.

Предполагается, что метасторье Hive содержит схемы для обеих таблиц.

select hive_table.col1, hbase_table.col2 from hive_table inner join hbase_table on (hive_table.id = hbase_table.id);

...