Что такое HiveQL (язык запросов Hive)?
Hive предоставляет интерфейс командной строки для написания запросов Hive с использованием языка запросов Hive (HiveQL). Обычно синтаксис HQL аналогичен синтаксису SQL , знакомому большинству аналитиков данных.
Язык Hive, основанный на SQL, отделяет пользователя от сложности программирования Map Reduce. Он использует знакомые понятия из мира реляционных баз данных, такие как таблицы, строки, столбцы и схемы, для облегчения обучения.
Большинство взаимодействий обычно происходит через интерфейс командной строки (CLI). Hive предоставляет интерфейс командной строки для написания запросов Hive с использованием языка запросов Hive (Hive-QL).
Обычно синтаксис HiveQL аналогичен синтаксису SQL, с которым знакомо большинство аналитиков данных. Hive поддерживает четыре формата файлов: TEXTFILE, SEQUENCEFILE, ORC и RCFILE (Record Columnar File).
- Для хранения метаданных для одного пользователя Hive использует базу данных derby и
- Для многопользовательских метаданных или общих метаданных Hive использует MYSQL
Встроенные операторы
Hive предоставляет встроенные операторы для операций с данными, которые должны быть реализованы в таблицах, находящихся внутри хранилища Hive.
Эти операторы используются для математических операций над операндами и возвращают определенное значение в соответствии с применяемой логикой.
Типы встроенных операторов в HIVE:
- Операторы отношений
- Арифметические Операторы
- Логические Операторы
- Операторы на сложных типах
- Конструкторы сложного типа
Реляционные операторы:
Мы используем реляционные операторы для сравнения отношений между двумя операндами.
- Такие операторы, как равно, не равно, меньше, больше, чем … и т. Д.
- Все типы операндов — это числовые типы в этих операторах.
Следующая таблица даст нам подробную информацию о реляционных операторах и их использовании.
Встроенный оператор | Описание | Операнд |
X = Y | TRUE,
если выражение X эквивалентно выражению Y, иначе FALSE. |
Он принимает все примитивные типы |
X! = Y | TRUE,
если выражение X не эквивалентно выражению Y, иначе FALSE. |
Он принимает все примитивные типы |
X <Y | TRUE,
если выражение X меньше, чем Y, иначе FALSE. |
Он принимает все примитивные типы |
X <= Y | TRUE,
если выражение X меньше или равно выражению Y, иначе FALSE. |
Он принимает все примитивные типы |
X> Y | TRUE,
если выражение X больше, чем выражение Y, иначе FALSE. |
Он принимает все примитивные типы |
X> = Y | TRUE,
если выражение X больше или равно выражению Y, иначе FALSE. |
Он принимает все примитивные типы |
X НУЛЬ | TRUE, если выражение X имеет значение NULL, иначе FALSE. | Требуется все типы |
X НЕ НУЛЬ | FALSE
Если выражение X имеет значение NULL, иначе TRUE. |
Требуется все типы |
X как Y | TRUE
Если строковый шаблон X соответствует Y, иначе FALSE. |
Принимает только строки |
X RLIKE Y | NULL, если X или Y NULL, TRUE, если любая подстрока X соответствует регулярному выражению Java Y, иначе FALSE. | Принимает только строки |
X REGEXP Y | Так же, как RLIKE. | Принимает только строки |
Арифметические операторы :
Мы используем арифметические операторы для выполнения арифметических операций над операндами
- Арифметические операции, такие как сложение, вычитание, умножение и деление между операндами, мы используем эти операторы.
- Все типы операндов являются типами чисел в этих Операторах.
Пример примера:
2 + 3 дает результат 5.
В этом примере «+» — оператор, а 2 и 3 — операнды. Возвращаемое значение 5
Следующая таблица даст нам подробную информацию об арифметических операторах
Встроенный оператор | Описание | Операнд |
X + Y | Он вернет результат сложения значений X и Y. | Требуется все типы чисел |
X — Y | Он вернет результат вычитания Y из значения X. | Требуется все типы чисел |
X * Y | Он вернет результат умножения значений X и Y. | Требуется все типы чисел |
X / Y | Он вернет результат деления Y на X. | Требуется все типы чисел |
X% Y | Он вернет остаток, полученный в результате деления X на Y. | Требуется все типы чисел |
X & Y | Он вернет выход побитового И X и Y. | Требуется все типы чисел |
X | Y | Он вернет вывод побитового ИЛИ X и Y. | Требуется все типы чисел |
X ^ Y | Он вернет вывод побитового XOR X и Y. | Требуется все типы чисел |
~ X | Он вернет выход побитового НЕ X. | Требуется все типы чисел |
Логические операторы:
Мы используем логические операторы для выполнения логических операций над операндами
- Логические операции, такие как И, ИЛИ, НЕ между операндами, мы используем эти операторы.
- Все типы операндов имеют тип BOOLEAN в этих операторах.
Следующая таблица даст нам подробную информацию о логических операторах
операторы | Описание | Операнды |
X И Y | TRUE, если X и Y TRUE, иначе FALSE. | Только логические типы |
X && Y | То же, что X и Y, но здесь мы используем символ && | Только логические типы |
X ИЛИ Y | TRUE, если X или Y или оба TRUE, иначе FALSE. | Только логические типы |
X || Y | То же, что X ИЛИ Y, но здесь мы используем || символ | Только логические типы |
НЕ Х | ИСТИНА, если Х ЛОЖЬ, иначе ЛОЖЬ. | Только логические типы |
!ИКС | То же, что НЕ X, но здесь мы используем! символ | Только логические типы |
Операторы на сложных типах:
Следующая таблица даст нам подробную информацию об операторах сложного типа. Это операторы, которые предоставляют другой механизм для доступа к элементам сложных типов.
операторы | Операнды | Описание |
А [п] | A является массивом, а n является целочисленным типом | Он вернет n-й элемент в массиве A. Первый элемент имеет индекс 0 |
M [ключ] | M — это карта <K, V>, а ключ имеет тип K | Возвращает значения принадлежащие ключу на карте |
Конструкторы сложного типа:
Следующая таблица даст нам подробную информацию о конструкторах сложного типа. Он будет создавать экземпляры на сложных типах данных. Это сложные типы данных, такие как Array, Map и Struct в Hive.
В этом разделе мы рассмотрим операции, выполняемые над конструкторами сложного типа.
операторы | Операнды | Описание |
массив | (val1, val2, …) | Это создаст массив с заданными элементами, как упомянуто как val1, val2 |
Create_ union | (тег, val1, val2, …) | Это создаст тип объединения со значениями, на которые указывает параметр tag |
карта | (ключ1, значение1, ключ2, значение2, …) | Это создаст карту с заданными парами ключ / значение, упомянутыми в операндах |
Named_struct | (name1, val1, name2, val2, …) | Это создаст Struct с заданными именами полей и значениями, упомянутыми в операндах |
STRUCT | (val1, val2, val3, …) | Создает структуру с заданными значениями поля. Имена полей структуры будут col1, col2,. |
Резюме:
Hive предоставляет некоторые встроенные функции и операторы для управления данными, хранящимися в хранилище Hive. Hive похож на язык SQL, который поддерживает все типы операций с данными и запросов к таблицам и базам данных.