Какво е HiveQL (Hive Query Language)?
Hive предоставя CLI за писане на Hive заявки, използвайки Hive Query Language (HiveQL). Обикновено синтаксисът на HQL е подобен на синтаксиса на SQL, с който повечето анализатори на данни са запознати.
Вдъхновеният от SQL език на Hive отделя потребителя от сложността на програмата Map Reduce. Той използва повторно познати концепции от света на релационните бази данни, като таблици, редове, колони и схеми, за да улесни обучението.
Повечето взаимодействия обикновено се осъществяват през интерфейса на командния ред (CLI). Hive предоставя CLI за писане на Hive заявки, използвайки Hive Query Language (Hive-QL).
Като цяло синтаксисът на HiveQL е подобен на синтаксиса на SQL, който повечето анализатори на данни познават. Hive поддържа четири файлови формата, това са TEXTFILE, SEQUENCEFILE, ORC и RCFILE (Record Columnar File).
- За съхранение на метаданни за един потребител Hive използва база данни на derby и
- За многопотребителски метаданни или споделен случай на метаданни Hive използва MYSQL
Вградени оператори
Hive осигурява вградени оператори за операции с данни, които да бъдат изпълнени върху таблиците, намиращи се в склада на Hive.
Тези оператори се използват за математически операции над операндите и те ще върнат специфична стойност според приложената логика.
Видовете вградени оператори в HIVE са:
- Релационни оператори
- Аритметични оператори
- Логически оператори
- Оператори на сложни типове
- Конструктори от сложен тип
Релационни оператори:
Използваме релационни оператори за сравнение на връзките между два операнда.
- Оператори като равни, Не равни, по-малки от, по-големи от ... и т.н.
- Типовете операнди са всички типове числа в тези Оператори.
Следващата таблица ще ни даде подробности за релационните оператори и тяхното използване.
Вграден оператор | Описание | Операнд |
X = Y | ИСТИНА, ако изразът X е еквивалентен на израз Y В противен случай FALSE. | Взима всички примитивни типове |
X! = Y | TRUE, ако изразът X не е еквивалентен на израз Y В противен случай FALSE. | Взима всички примитивни типове |
X ИСТИНА, ако изразът X е по-малък от израз Y В противен случай FALSE. | Взима всички примитивни типове |
|
X <= Y | ИСТИНА, ако изразът X е по-малък или равен на израз Y В противен случай FALSE. | Взима всички примитивни типове |
X> Y | ИСТИНА, ако изразът X е по-голям от израз Y В противен случай FALSE. | Взима всички примитивни типове |
X> = Y | TRUE, ако изразът X е по-голям или равен на израз Y В противен случай FALSE. | Взима всички примитивни типове |
X Е НУЛЕН | ИСТИНА, ако изразът X изчислява на NULL иначе FALSE. | Отнема всички видове |
X НЕ Е НУЛНО | FALSE Ако изразът X изчислява на NULL иначе TRUE. | Отнема всички видове |
X КАТО Y | ИСТИНА Ако шаблонът на низ X съвпада с Y, в противен случай FALSE. | Отнема само струни |
X СРАВНЕТЕ 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 | Той ще върне изхода на битови NOT на 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 | TRUE, ако X е FALSE, в противен случай FALSE. | Само булеви типове |
!Х | Същото като NOT X, но тук използваме! символ | Само булеви типове |
Оператори на сложни типове:
Следващата таблица ще ни даде подробности за операторите от сложен тип. Това са оператори, които ще осигурят различен механизъм за достъп до елементи от сложни типове.
Оператори | Операнди | Описание |
A [n] | A е масив, а n е цяло число | Той ще върне n-ия елемент в масива А. Първият елемент има индекс 0 |
M [ключ] | M е карта | Той ще върне стойностите, принадлежащи на ключа в картата |
Конструктори от сложен тип:
Следващата таблица ще ни даде подробности за конструктори от сложен тип. Той ще конструира екземпляри на сложни типове данни. Това са сложни типове данни като типове масив, карта и структура в кошера.
В този раздел ще видим операциите, извършени върху конструктори от сложен тип.
Оператори | Операнди | Описание |
масив | (val1, val2, ...) | Той ще създаде масив с дадените елементи, както е споменато като val1, val2 |
Създайте_ съюз | (таг, val1, val2, ...) | Той ще създаде тип обединение със стойностите, за които се споменава от параметъра tag |
карта | (ключ1, стойност1, ключ2, стойност2, ...) | Той ще създаде карта с дадените двойки ключ / стойност, споменати в операндите |
Named_struct | (име1, вал1, име2, вал2, ...) | Той ще създаде структура със зададените имена на полета и стойности, споменати в операндите |
СТРУКТ | (val1, val2, val3, ...) | Създава структура с дадените стойности на полето. Имената на полетата на структурата ще бъдат col1, col2,. |
Резюме:
Hive предоставя някои вградени функции и оператори за манипулиране на данните, съхранявани в склада на Hive. Hive е подобен на езика SQL, който поддържа всички видове операции с данни и заявки за таблици и бази данни.