Что такое улей?

Apache Hive - это система хранилища данных, разработанная на основе платформы Hadoop с открытым исходным кодом и используемая для суммирования данных, запроса больших данных, анализа данных и т. Д.

Улей был разработан Facebook, и позднее он перешел к Apache Software Foundation, который в дальнейшем разработал его как открытый исходный код под названием Apache Hive.

Определение:

Это не реляционная база данных, и поэтому она не подходит для оперативной обработки транзакций и запросов в реальном времени с обновлениями на уровне строк. Улей предназначен для онлайн аналитической обработки или OLAP. Он также предоставляет язык запросов под названием HiveQL. Это масштабируемый, быстрый и расширяемый. Он преобразует запросы, похожие почти на SQL, в задания MapReduce для простого выполнения и обработки большого количества данных. Apache hive - это один из компонентов Hadoop, который обычно используется аналитиками данных, тогда как apache pig также используется для той же задачи, но в большей степени используется исследователями и программистами. Apache hive, являющийся системой хранилищ данных с открытым исходным кодом, используется для запроса и анализа огромных наборов данных, хранящихся в хранилище Hadoop. Hive лучше всего подходит для пакетных заданий, а не для онлайновых типов обработки транзакций. Он также не поддерживает запросы в реальном времени. Hive использует SQL как язык запросов и в основном используется для создания отчетов. Hive обычно развертывается на стороне сервера и поддерживает структурированные данные. Hive также поддерживает интеграцию с инструментами JDBC и BI.

Понимание улья:

Ниже приведены основные компоненты улья:

Мета-магазин:

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

Водитель:

При выполнении оператора языка запросов Hive драйвер получает оператор и контролирует его в течение полного цикла выполнения. Наряду с выполнением оператора драйвер также сохраняет метаданные, сгенерированные в результате выполнения. Он также создает сеансы для мониторинга прогресса и жизненного цикла различных исполнений. После завершения операции сокращения заданием MapReduce драйвер собирает все данные и результаты запроса.

Составитель:

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

Оптимизатор:

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

Исполнитель:

После шага компиляции и оптимизации основной задачей исполнителя является выполнение задач. Основная задача исполнителя - взаимодействовать с системой отслеживания заданий Hadoop для планирования задач, готовых к запуску.

Пользовательский интерфейс, Thrift-сервер и CLI:

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

Ниже приведены шаги, показывающие взаимодействие улья с фреймворком Hadoop:

Выполнение запроса:

Запрос отправляется драйверу из интерфейсов улья, таких как командная строка или веб-интерфейс. Драйвером может быть любой драйвер базы данных, например JDB или ODBC и т. Д.

Получение плана:

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

Получение метаданных:

Мета-хранилище может находиться в любой базе данных, и компилятор делает запрос на доступ к метаданным.

Отправка метаданных:

По запросу компилятора мета-хранилище отправляет метаданные.

Отправка плана:

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

Выполнение плана:

План выполнения отправляется в механизм выполнения драйвером.

Выполнение работы:

Выполнение задания - это задание MapReduce, которое выполняется в бэкэнде. Затем он следует обычному соглашению платформы Hadoop - механизм выполнения отправит задание на средство отслеживания заданий, которое находится на узле имени, а узел имени, в свою очередь, назначит задание на средство отслеживания заданий, которое находится в примечании к данным. Задание MapReduce выполняется здесь.

Метаданные ops:

При выполнении задания механизм выполнения может выполнять операции метаданных с мета-хранилищем.

Получение результата:

Узлы данных после завершения обработки передают результат в механизм исполнения.

Отправка результата

Драйвер получает результат от механизма исполнения.

Отправка результата:

Наконец, интерфейсы Hive получают результат от драйвера.

Таким образом, при выполнении вышеописанных шагов выполняется полное выполнение запроса в Hive.

Как Hive облегчает работу?

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

Лучшие компании:

Крупные организации, работающие с большими данными, использовали улей - например, Facebook, Amazon, Walmart и многие другие.

Что вы можете сделать с Hive?

Есть много функций улья, таких как запрос данных, суммирование данных и анализ данных. Hive поддерживает язык запросов, называемый HiveQL или Hive Query Language. Запросы языка запросов Hive преобразуются в задание MapReduce, которое обрабатывается в кластере Hadoop. Помимо этого, Hiveql также уменьшает сценарий, который может быть добавлен в запросы. Таким образом, HiveQL увеличивает гибкость проектирования схемы, которая также поддерживает десериализацию данных и сериализацию данных.

Работа с Hive:

Ниже приведены некоторые подробности в Hive. Типы данных улья в целом подразделяются на четыре типа, как указано ниже:

  • Типы столбцов
  • литералы
  • Нулевые значения
  • Сложные типы

1. Типы столбцов:

Это типы данных столбца улья. Они классифицируются как ниже:

  • Интегральные типы: целочисленные данные представляются с использованием интегрального типа данных. Символ INT. Любым данным, превышающим верхний предел INT, должен быть присвоен тип данных BIGINT. Таким же образом любые данные ниже нижнего предела INT должны быть назначены SMALLINT. Есть еще один тип данных, называемый TINYINT, который даже меньше SMALLINT.
  • Строковые типы: строковый тип данных представлен в улье одинарной кавычкой (') или двойными кавычками (“). Это может быть двух типов - VARCHAR или CHAR.
  • Временная метка : временная метка Hive поддерживает формат java.sql.Timestamp «гггг-мм-дд чч: мм: сс.фффффффффф» и формат «ГГГГ-ММ-ДД ЧЧ: ММ: СС.fffffffff».
  • Дата: Дата представлена ​​в улье в формате ГГГГ-ММ-ДД, представляющем год-месяц-день.
  • Десятичные числа : Десятичные числа в улье представлены в формате большого десятичного числа java и используются для представления неизменяемой произвольной точности. Представляется в формате Decimal (точность, масштаб).
  • Типы объединения: Союз используется в улье для создания коллекции разнородного типа данных. Это может быть создано с помощью создания союза.

Ниже приведен пример:

UNIONTYPE
(0:1)
(1:2.0)
(2:("three", "four"))
(3:("a":5, "b":"five"))
(2:("six", "seven"))
(3:("a":8, "b":"eight"))
(0:9)
(1:10.0)
UNIONTYPE
(0:1)
(1:2.0)
(2:("three", "four"))
(3:("a":5, "b":"five"))
(2:("six", "seven"))
(3:("a":8, "b":"eight"))
(0:9)
(1:10.0)

2. Литералы:

В улье мало литералов. Они как ниже:

  • Тип с плавающей запятой : они представлены в виде чисел с десятичной запятой. Они очень похожи на двойной тип данных.
  • Десятичный тип : этот тип данных содержит только данные десятичного типа, но с более высоким диапазоном значения с плавающей запятой, чем тип данных double. Диапазон десятичного типа составляет от -10 -308 до 10 308.

3. Нулевое значение:

Специальное значение NULL представляет пропущенные значения в улье.

4. Сложные типы:

Ниже приведены различные сложные типы, найденные в улье:

  • Массивы : Массивы представлены в улье в той же форме, что и в Java. Синтаксис похож на ARRAY.
  • Карты : Карты представлены в улье в том же виде, что и в Java. Синтаксис похож на MAP
  • ,
  • Структуры : Структуры в улье представлены как сложные данные с комментариями. Синтаксис похож на STRUCT.

Помимо всего этого, мы можем создавать базы данных, таблицы, разделять их и много других функций.

  • Базы данных: это пространства имен, содержащие коллекцию таблиц. Ниже приведен синтаксис для создания базы данных в улье.

CREATE DATABASE (IF NOT EXISTS) sampled;

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

DROP DATABASE (IF EXISTS) sampled;

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

CREATE (TEMPORARY) (EXTERNAL) TABLE (IF NOT EXISTS) (db_name.) table_nam
((col_name data_type (COMMENT col_comment), …)) (COMMENT table_comment
(ROW FORMAT row_format) (STORED AS file_format)

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

DROP TABLE (IF EXISTS) table_name;

преимущества

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

Он включает в себя очистку, преобразование и моделирование данных для предоставления полезной информации о различных бизнес-аспектах, которые помогут получить выгоду для организации. Анализ данных включает множество различных аспектов и подходов, которые охватывают различные методы с различными именами в разных бизнес-моделях, областях социальных наук и т. Д. Hive очень удобен для пользователей и позволяет пользователям одновременно получать доступ к данным, увеличивая время отклика. По сравнению с другими типами запросов к огромным наборам данных время отклика улья намного быстрее, чем у других. Это также значительно повышает производительность при добавлении дополнительных данных и увеличении количества узлов в кластере.

Почему мы должны использовать Улей?

Наряду с анализом данных куст предоставляет широкий спектр возможностей для хранения данных в HDFS. Hive поддерживает различные файловые системы, такие как плоский файл или текстовый файл, файл последовательности, состоящий из двоичных пар ключ-значение, RC-файлы, в которых столбец таблицы хранится в столбчатой ​​базе данных. В настоящее время файл, который лучше всего подходит для Hive, называется файлами ORC или файлами столбцов Optimized Row.

Зачем нам нужен Улей?

В современном мире Hadoop ассоциируется с наиболее распространенными технологиями, которые используются для обработки больших данных. Очень богатая коллекция инструментов и технологий, которые используются для анализа данных и другой обработки больших данных.

Кто является подходящей аудиторией для изучения технологий Hive?

В основном люди могут иметь опыт разработки, аналитики Hadoop, системных администраторов, хранилищ данных, специалистов по SQL и администрирования Hadoop.

Как эта технология поможет вам в карьерном росте?

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

Вывод:

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

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

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

  1. Команды улья
  2. Hive Интервью Вопросы
  3. Что такое лазурь?
  4. Что такое технология больших данных?
  5. Улей Архитектура | Определение
  6. Использование функции ORDER BY в Hive