Разница между Hive и HBase

Apache Hive и HBase - это технологии больших данных на основе Hadoop. Они оба использовали для запроса данных. Hive и HBase работают поверх Hadoop и отличаются по своим функциональным возможностям. Hive - это диалект SQL, основанный на уменьшении карты, тогда как HBase поддерживает только MapReduce. HBase хранит данные в форме пар ключ / значение или семейства столбцов, тогда как Hive не хранит данные.

Личные различия между Hive и HBase (Инфографика)

Ниже приведено 8 лучших отличий между Hive и HBase

Ключевые различия между Hive и HBase

  • Hbase совместим с кислотой, а Hive - нет.
  • Hive поддерживает критерии разбиения и фильтрации на основе формата даты, тогда как HBase поддерживает автоматическое разбиение.
  • Hive не поддерживает операторы обновления, тогда как HBase поддерживает их.
  • Hbase быстрее по сравнению с Hive при получении данных.
  • Hive используется для обработки структурированных данных, тогда как HBase, поскольку он не содержит схем, может обрабатывать данные любого типа.
  • Hbase обладает высокой (горизонтальной) масштабируемостью по сравнению с Hive.
  • Hive анализирует данные в HDFS с поддержкой SQL-запросов, а затем преобразует их в карту и сокращает количество заданий, тогда как в Hbase, поскольку потоковая передача выполняется в режиме реального времени, он непосредственно выполняет свои операции с базой данных, разбивая таблицы и семейства столбцов.
  • когда мы обращаемся к запросам данных, куст использует оболочку, известную как оболочка Hive, для выдачи команд, тогда как HBase, поскольку это база данных, мы будем использовать команду для обработки данных в HBase.
  • Чтобы перейти к оболочке Hive, мы будем использовать команду hive. После этого он будет выглядеть как куст>. В HBase мы просто указываем как Use HBase.

Hive vs HBase Сравнительная таблица

Основа для сравнения

улейHbase
Тип базы данныхЭто не база данныхПоддерживает базу данных NoSQL
Тип обработкиПоддерживает пакетную обработку т.е. OLAPОн поддерживает потоковую передачу данных в реальном времени, т. Е. OLTP
Модель базы данныхУлей поддерживает модель схемыHbase не содержит схем
ЗадержкаУлей имеет низкую задержкуHbase имеет высокую задержку
СтоимостьЭто дороже по сравнению с HBaseЭто экономически эффективно
когда использоватьHive можно использовать, когда мы не хотим писать сложный код MapReduceHBase может использоваться, когда мы хотим иметь произвольный доступ для чтения и записи большого количества данных
Случаи использованияОн должен использоваться для анализа данных, которые хранятся в течение определенного периода времениЕго следует использовать для анализа обработки данных в режиме реального времени.
ПримерыHubspot является примером для HiveFacebook - лучший пример для Hbase

Различия в кодировании между Hive и HBase

Давайте теперь обсудим основные различия между Hive и HBase в кодировании.

Основа для сравнения

улейHbase
Создать базу данныхСОЗДАТЬ БАЗУ ДАННЫХ (ЕСЛИ НЕ СУЩЕСТВУЕТ) ИМЯ БАЗЫ ДАННЫХ;Поскольку Hbase является базой данных, нам не нужно создавать конкретную базу данных
Чтобы удалить базу данныхDROP DATABASE (ЕСЛИ СУЩЕСТВУЕТ) ИМЯ БАЗЫ ДАННЫХ (ОГРАНИЧЕНИЕ ИЛИ КАСКАД);Не Доступно
Создать таблицуСОЗДАТЬ (ВРЕМЕННЫЙ ИЛИ ВНЕШНИЙ) СТОЛ (ЕСЛИ НЕ СУЩЕСТВУЕТ) НАИМЕНОВАНИЕ ТАБЛИЦЫ

((имя-столбца data_type (комментарий столбца-комментария), ….)) (комментарий table_comment) (формат строки ROW FORMAT) (сохраняется как формат файла)
СОЗДАЙТЕ '', ''
Изменить таблицуALTER TABLE name RENAME TO new-name

ALTER TABLE name DROP (COLUMN) столбец-имя

ALTER TABLE name ADD COLUMNS (col-spec (, col-spec ..))

ALTER TABLE name CHANGE имя-столбца new-name new-type

ALTER TABLE name ЗАМЕНИТЕ КОЛОННЫ (col-spec (, col-spec ..))

ALTER 'TABLE-NAME', NAME => 'COLUMN-NAME', VERSIONS =>
Отключение таблицыНе Доступноотключить 'TABLE-NAME' -> чтобы отключить указанное имя таблицы

disable_all 'r *' -> чтобы отключить все таблицы, которые соответствуют регулярному выражению

Включение таблицыНе Доступновключить 'TABLE-NAME'
Бросить столDROP TABLE ЕСЛИ СУЩЕСТВУЕТ table-nameЕсли мы хотим удалить таблицу, то сначала нужно отключить ее

отключить «имя таблицы»

сбросьте имя таблицы

Точно так же мы можем использовать disable_all и drop_all, чтобы удалить таблицы, которые соответствуют указанному регулярному выражению.

К списку баз данныхпоказывать базы данных;Не Доступно
Чтобы отобразить таблицы в базе данныхпоказывать таблицы;список
Описать схему таблицыописать имя таблицы;опишите «имя таблицы»

Интеграция Hive против HBase

  • Установите и настройте Hive.
  • Установите и настройте HBase.
  • Для интеграции Hive и HBase мы используем HANDLERS STORAGE в Hive.
  • Обработчики хранилища - это комбинация SERDE, InputFormat, OutputFormat, которая принимает любую внешнюю сущность в виде таблицы в Hive.
  • Таким образом, эта функция помогает пользователю выполнять запросы SQL, независимо от того, присутствует ли таблица в Hadoop или в базе данных на основе NOSQL, такой как HBase, MongoDB, Cassandra, Amazon DynamoDB.
  • Теперь рассмотрим один пример подключения Hive к HBase с использованием HiveStorageHandler:
  • Сначала нам нужно создать таблицу Hbase с помощью команды.

создать 'Student', 'personalinfo', 'отдел информации'

-> Personalinfo и dept info создают две разные семейства столбцов в таблице Student.

  • Нам нужно вставить некоторые данные в таблицу Student. Например, как упомянуто ниже.

положить 'student', 'sid01 ′, ' personalinfo: name ', ' Ram '
положить 'student', 'sid01 ′, ' personalinfo: mailid ', ' '
положить 'student', 'sid01 ′, ' deptinfo: deptname ', ' Java '
put 'Student', 'sid01', 'deptinfo: joinyear', '1994 ′

-> Точно так же мы можем создать данные для sid02, sid03…

  • Теперь нам нужно создать таблицу Hive, указывающую на таблицу HBase.
  • Для каждого столбца в Hbase мы создадим одну конкретную таблицу для этого столбца в Hive. В этом случае мы создадим 2 таблицы в Hive.

create external table student_hbase(sid String, name String, mailid String)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler with serdeproperties("hbase.columns.mapping"=":key, personalinfo:name, personalinfo:mailid")
tblproperties("hbase.table.name"="student");
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

-> Точно так же, нам нужно создать таблицу сведений об отделе в улье.

  • Теперь мы можем написать SQL-запрос в улье, как указано ниже.

select * from student_hbase;

Таким образом, мы можем интегрировать Hive с HBase.

Вывод - Hive vs HBase

Как уже говорилось, обе они представляют собой разные технологии, которые обеспечивают разные функциональные возможности, в которых Hive работает с использованием языка SQL, и его также можно назвать HQL и HBase, использующим пары ключ-значение для анализа данных. Hive и HBase работают лучше, если их объединять, поскольку Hive имеет низкую задержку и может обрабатывать огромное количество данных, но не может поддерживать актуальные данные, а HBase не поддерживает анализ данных, но поддерживает обновления на уровне строк в большом количестве. данных.

Рекомендуемая статья

Это было руководство по Hive vs HBase, их значению, сравнению лицом к лицу, ключевым различиям, сравнительной таблице и выводам. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Apache Pig против Apache Hive - Лучшие 12 полезных отличий
  2. Узнайте 7 лучших различий между Hadoop и HBase
  3. 12 лучших сравнений Apache Hive и Apache HBase (Инфографика)
  4. Hadoop vs Hive - узнай лучшие отличия