Улей или Hbase, когда нам нужно извлечь большее количество столбцов?

#hadoop #hive #hbase

#hadoop #улей #hbase

Вопрос:

У меня есть структура данных в Hadoop со 100 столбцами и несколькими сотнями строк. В большинстве случаев мне нужно запросить 65% столбцов. В этом случае, что лучше использовать HBASE или HIVE? Пожалуйста, посоветуйте.

Комментарии:

1. Спасибо за ответ!! Это имеет смысл.

Ответ №1:

Просто количество столбцов, к которым вы обращаетесь, НЕ является критерием для выбора hbase или hive.

УЛЕЙ (SQL) :

Используйте Hive, когда у вас есть потребности в хранении, и вы хорошо разбираетесь в SQL и не хотите писать задания MapReduce. Однако один важный момент: запросы Hive преобразуются в соответствующее задание MapReduce под капотом, которое выполняется в вашем кластере и выдает вам результат. Улей делает трюк за вас. Но каждая проблема не может быть решена с помощью HiveQL. Иногда, если вам нужна действительно мелкозернистая и сложная обработка, вам может потребоваться убежище MapReduce.

Hbase (база данных NoSQL):

Вы можете использовать Hbase для этой цели. Если у вас есть какие-то данные, к которым вы хотите получить доступ в режиме реального времени, вы можете сохранить их в Hbase.

hbase get 'rowkey' эффективен, когда вы знаете свой шаблон доступа

Hbase следует CP из CAP Theorm

Согласованность:

Каждый узел в системе содержит одни и те же данные (например, у реплик никогда не бывает недостатка в данных)

Доступность:

Каждый запрос к исправному узлу в системе возвращает ответ

Допуск раздела:

Системные свойства (согласованность и / или доступность) сохраняются, даже если система разделена (связь потеряна) и данные потеряны (узел потерян)

введите описание изображения здесь

также взгляните на это

Ответ №2:

Очень сложно ответить на вопрос в одной строке.

HBASE — это база данных NoSQL: ваши данные должны хранить денормализованные данные, потому что HBASE очень вреден для joi

ning таблицы.

Улей: вы можете хранить данные в аналогичном формате (нормализованном) в Hive, но преимущества будут видны только при выполнении пакетной обработки.