HBASE и HIVE: что больше подходит для данных, которые однозначно определяются несколькими полями? - PullRequest
0 голосов
/ 01 декабря 2018

Мы строим инфраструктуру БД на основе систем Hadoop.Мы будем платить поставщику, чтобы сделать это, и я не думаю, что мы получаем правильные ответы от первого поставщика.Итак, мне нужна помощь некоторых экспертов, чтобы проверить, прав ли я или что-то упустил 1. У нас около 1600 полей в данных.Уникальная запись идентифицируется этими 1600 записями

Мы хотим, чтобы мы могли искать записи за определенный период времени (иначе, записи за определенный период времени)

Есть некоторые поля, которые меняются со временем (ежемесячно)

Поставщик заявил, что наилучший путь - это HBASE, и ему необходимо сделать выбор: (1) оптимизировать поиск для машинного обучения (2) выполнить специальные запросы.Для (1) потребуется объединенный ключ со всеми интересующими областями.Длина ключа будет определять, насколько медленным или быстрым будет поиск.

Я не думаю, что это правильно.1. Нам не нужно использовать HBASE.Мы можем использовать HIVE 2. Нам не нужно объединять имена полей.Мы можем перевести их в число и получить ключ как число 3. Я не думаю, что нам нужно выбирать один или другой.

Не могли бы вы дать мне знать, что вы думаете об этом?

1 Ответ

0 голосов
/ 02 декабря 2018

Все зависит от вашего варианта использования.Проще говоря, сам по себе Hive не годится, когда речь идет о interactive запросах, однако он один из лучших, когда речь заходит о аналитике.

Hbase, с другой стороны, действительно хорош для интерактивных запросов, однако заниматься аналитикой будет не так просто, как улей.

У нас есть около 1600 полей в данных.Уникальная запись идентифицируется этими 1600 записями

HBase

Hbase - это база данных Columbner NoSQL, которая хранит информацию в формате Map (Dictionary).Где каждая строка должна иметь один столбец, который уникально идентифицирует строку.Это называется key.

Вы можете использовать ключ как комбинацию нескольких столбцов, если у вас нет одного столбца, который может однозначно идентифицировать строку.И тогда вы можете искать записи, используя partial key.Однако это повлияет на производительность (по сравнению с одним ключом столбца).

Hive:

Hive имеет язык, похожий на SQL (HQL) для запросов HDFS, который можно использовать для аналитики.Однако для этого не требуется первичный ключ, поэтому при необходимости вы можете вставить дубликаты записей.

Поставщик заявил, что наилучший путь - это HBASE, и ему необходимо сделать выбор: (1) оптимизировать поиск для машинного обучения (2) выполнить специальные запросы.Для (1) потребуется объединенный ключ со всеми интересующими областями.Длина ключа будет определять, насколько медленным или быстрым будет поиск.

Таким образом, ваш поставщик работает правильно, как я объяснил ранее.

  1. Нам не нужно использовать HBASE.Мы можем использовать HIVE 2. Нам не нужно объединять имена полей.Мы можем перевести их в число и получить ключ как число 3. Я не думаю, что нам нужно выбирать одно или другое.

Погода, которую вы можете использовать HBASE или Hive зависит от вашего варианта использования.Однако, если вы планируете использовать Hive, вам даже не нужно генерировать pseudo key (номера строк, о которых вы говорите)

Существует еще один вариант, если у вас есть развертывание hortonworks.Рассмотрим Hive для аналитики и LLAP для интерактивных запросов.

...