Hive/Impala выбирает и усредняет все версии rowkey

Мне интересно, есть ли способ получить предыдущие версии определенного rowkey в HBase без необходимости писать программу MapReduce и усреднять значения. Мне было любопытно, возможно ли это с помощью Hive или Impala (или другой подобной программы) и как бы вы это сделали.

Моя таблица выглядит так:

  Composite keys          Values 
  (md5 + date + id) | (value)

Я хотел бы усреднить все значения для конкретной даты и подстроки идентификатора ("411") для всех версий.

Спасибо заранее.


person dunce1    schedule 13.04.2014    source источник
comment
Вы должны выполнять вычисления на сервере, а не в клиенте (Импала или другие). Конечные точки сопроцессора Hbase подходят для ваших нужд.   -  person Vincent Devillers    schedule 22.04.2014


Ответы (1)


Impala использует хранилище метаданных Hive для сопоставления своего логического понятия таблицы с данными, физически хранящимися в HDFS или HBase (дополнительные сведения см. в документация Cloudera).

Чтобы узнать больше о том, как сообщить хранилище метаданных Hive о данных, хранящихся в HBase, см. >Документация по улью.

К сожалению, как отмечено в документации Hive, указанной выше:

в настоящее время нет способа получить доступ к атрибуту временной метки HBase, и запросы всегда обращаются к данным с самой последней временной меткой.

Была проделана некоторая работа по добавлению этой функции в более старую версию Hive в HIVE-2828, хотя, к сожалению, эта работа еще не слита в транк.

Таким образом, для вашего приложения вам придется перепроектировать схему HBase, включив в нее столбец «версия», сообщить метахранилищу Hive об этом новом столбце и сделать так, чтобы ваше приложение знало об этом столбце.

person Jeff Hammerbacher    schedule 23.04.2014