Учебное пособие по HiveQL (Hive Query Language): встроенные операторы

Содержание:

Anonim

Что такое 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 (файл столбца записи).

  • Для однопользовательского хранилища метаданных Hive использует базу данных derby и
  • Для многопользовательских метаданных или случая общих метаданных Hive использует MYSQL

Встроенные операторы

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

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

Типы встроенных операторов в HIVE:

  • Операторы отношения
  • Арифметические операторы
  • Логические операторы
  • Операторы сложных типов
  • Конструкторы сложного типа

Операторы отношения:

Мы используем операторы отношения для сравнения отношений между двумя операндами.

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

В следующей таблице приведены подробные сведения об операторах отношения и их использовании.

Встроенный оператор Описание Операнд
X = Y ИСТИНА, если выражение X эквивалентно выражению Y В противном случае - ЛОЖЬ. Принимает все примитивные типы
Х! = Y ИСТИНА, если выражение X не эквивалентно выражению Y В противном случае - ЛОЖЬ. Принимает все примитивные типы
X ИСТИНА, если выражение X меньше выражения Y, иначе - ЛОЖЬ. Принимает все примитивные типы
X <= Y ИСТИНА, если выражение X меньше или равно выражению Y, иначе - ЛОЖЬ. Принимает все примитивные типы
X> Y ИСТИНА, если выражение X больше выражения Y, иначе ЛОЖЬ. Принимает все примитивные типы
X> = Y ИСТИНА, если выражение X больше или равно выражению Y, в противном случае - ЛОЖЬ. Принимает все примитивные типы
X НУЛЬ ИСТИНА, если выражение X оценивается как ПУСТО (NULL), иначе ЛОЖЬ. Принимает все типы
X НЕ НУЛЬ ЛОЖЬ Если выражение X оценивается как ПУСТО (NULL), иначе ИСТИНА. Принимает все типы
X НРАВИТСЯ Y ИСТИНА Если образец строки X соответствует Y, иначе - ЛОЖЬ. Принимает только строки
X R LIKE 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 ИСТИНА, если и X, и Y - ИСТИНА, иначе ЛОЖЬ. Только логические типы
X && Y То же, что X AND Y, но здесь мы используем символ && Только логические типы
X ИЛИ Y ИСТИНА, если либо X, либо Y, либо оба ИСТИНА, в противном случае - ЛОЖЬ. Только логические типы
X || Y То же, что X OR Y, но здесь мы используем || символ Только логические типы
НЕ X ИСТИНА, если X - ЛОЖЬ, иначе ЛОЖЬ. Только логические типы
!ИКС То же, что и НЕ X, но здесь мы используем! символ Только логические типы

Операторы сложных типов:

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

Операторы Операнды Описание
A [n] A - это массив, а n - целочисленный тип Он вернет n-й элемент в массиве A. Первый элемент имеет индекс 0.
M [ключ] M - это Map , а ключ имеет тип K Он вернет значения, принадлежащие ключу на карте

Конструкторы сложного типа:

Следующая таблица даст нам подробную информацию о конструкторах сложного типа. Он будет создавать экземпляры для сложных типов данных. Это сложные типы данных, такие как типы Array, Map и Struct в Hive.

В этом разделе мы увидим операции, выполняемые над конструкторами сложного типа.

Операторы Операнды Описание
множество (значение1, значение2,…) Он создаст массив с заданными элементами, как упоминалось, например, val1, val2
Create_ union (тег, значение1, значение2,…) Он создаст тип объединения со значениями, которые упоминаются параметром тега
карта (ключ1, значение1, ключ2, значение2,…) Он создаст карту с заданными парами ключ / значение, указанными в операндах.
Named_struct (имя1, значение1, имя2, значение2,…) Он создаст структуру с заданными именами полей и значениями, указанными в операндах.
СТРУКТУРА (значение1, значение2, значение3,…) Создает структуру с заданными значениями поля. Имена полей структуры будут col1, col2,.

Резюме:

Hive предоставляет некоторые встроенные функции и операторы для управления данными, хранящимися в хранилище Hive. Hive похож на язык SQL, который поддерживает все типы операций с данными и запросы к таблицам и базам данных.