Co to jest HiveQL (język zapytań Hive)?
Hive zapewnia interfejs wiersza polecenia do pisania zapytań programu Hive przy użyciu języka zapytań Hive (HiveQL). Ogólnie składnia języka HQL jest podobna do składni języka SQL, którą zna większość analityków danych.
Język Hive inspirowany SQL oddziela użytkownika od złożoności programowania Map Reduce. Ponownie wykorzystuje znane koncepcje ze świata relacyjnych baz danych, takie jak tabele, wiersze, kolumny i schematy, aby ułatwić naukę.
Większość interakcji odbywa się za pośrednictwem interfejsu wiersza poleceń (CLI). Hive zapewnia interfejs wiersza polecenia do pisania zapytań programu Hive przy użyciu języka zapytań Hive (Hive-QL).
Ogólnie składnia HiveQL jest podobna do składni SQL, którą zna większość analityków danych. Hive obsługuje cztery formaty plików: TEXTFILE, SEQUENCEFILE, ORC i RCFILE (Record Columnar File).
- W przypadku magazynu metadanych pojedynczego użytkownika Hive używa bazy danych Derby i
- W przypadku metadanych wielu użytkowników lub przypadku udostępnionych metadanych Hive używa MYSQL
Wbudowane operatory
Hive udostępnia wbudowane operatory dla operacji na danych, które mają być implementowane w tabelach znajdujących się w magazynie Hive.
Operatory te są używane do operacji matematycznych na operandach i zwracają określoną wartość zgodnie z zastosowaną logiką.
Typy operatorów wbudowanych w HIVE to:
- Operatorzy relacyjni
- Operatory arytmetyczne
- Operatory logiczne
- Operatory na typach złożonych
- Konstruktory typu złożonego
Operatorzy relacyjni:
Używamy operatorów relacyjnych do porównań relacji między dwoma operandami.
- Operatory takie jak równa się, nie równa się, mniejsza niż, większa niż… itd
- Wszystkie typy operandów są typami liczbowymi w tych operatorach.
Poniższa tabela zawiera szczegółowe informacje na temat operatorów relacyjnych i ich wykorzystania.
Wbudowany operator | Opis | Operand |
X = Y | PRAWDA, jeśli wyrażenie X jest równoważne wyrażeniu Y W przeciwnym razie FAŁSZ. | Przyjmuje wszystkie prymitywne typy |
X! = Y | PRAWDA, jeśli wyrażenie X nie jest równoważne wyrażeniu Y W przeciwnym razie FAŁSZ. | Przyjmuje wszystkie prymitywne typy |
X PRAWDA, jeśli wyrażenie X jest mniejsze niż wyrażenie Y W przeciwnym razie FAŁSZ. | Przyjmuje wszystkie prymitywne typy |
|
X <= Y | PRAWDA, jeśli wyrażenie X jest mniejsze lub równe wyrażeniu Y W przeciwnym razie FAŁSZ. | Przyjmuje wszystkie prymitywne typy |
X> Y | PRAWDA, jeśli wyrażenie X jest większe niż wyrażenie Y W przeciwnym razie FAŁSZ. | Przyjmuje wszystkie prymitywne typy |
X> = Y | PRAWDA, jeśli wyrażenie X jest większe lub równe wyrażeniu Y W przeciwnym razie FAŁSZ. | Przyjmuje wszystkie prymitywne typy |
X JEST ZEROWE | PRAWDA, jeśli wartość wyrażenia X ma wartość NULL, w przeciwnym razie FAŁSZ. | Zajmuje wszystkie typy |
X NIE JEST ZEROWE | FALSE Jeśli wyrażenie X ma wartość NULL, w przeciwnym razie PRAWDA. | Zajmuje wszystkie typy |
X JAK Y | TRUE Jeśli wzorzec łańcucha X pasuje do Y, w przeciwnym razie FALSE. | Pobiera tylko ciągi |
X RLIKE Y | NULL, jeśli X lub Y ma wartość NULL, TRUE, jeśli dowolny podciąg X pasuje do wyrażenia regularnego Java Y, w przeciwnym razie FALSE. | Pobiera tylko ciągi |
X REGEXP Y | To samo co RLIKE. | Pobiera tylko ciągi |
Operatory arytmetyczne :
Używamy operatorów arytmetycznych do wykonywania operacji arytmetycznych na operandach
- Operacje arytmetyczne, takie jak dodawanie, odejmowanie, mnożenie i dzielenie między operandami, używamy tych operatorów.
- Wszystkie typy operandów są typami liczbowymi w tych operatorach
Przykładowy przykład:
2 + 3 daje wynik 5.
W tym przykładzie „+” to operator, a 2 i 3 to operandy. Wartość zwracana to 5
Poniższa tabela zawiera szczegółowe informacje na temat operatorów arytmetycznych
Wbudowany operator | Opis | Operand |
X + Y | Zwróci wynik dodania wartości X i Y. | Przyjmuje wszystkie typy liczb |
X - Y | Zwróci wynik odejmowania Y od wartości X. | Przyjmuje wszystkie typy liczb |
X * Y | Zwróci wynik pomnożenia wartości X i Y. | Przyjmuje wszystkie typy liczb |
X / Y | Zwróci wynik dzielenia Y od X. | Przyjmuje wszystkie typy liczb |
X% Y | Zwróci resztę wynikającą z podzielenia X przez Y. | Przyjmuje wszystkie typy liczb |
X i Y | Zwróci wynik bitowego AND z X i Y. | Przyjmuje wszystkie typy liczb |
X | Y | Zwróci wynik bitowego OR z X i Y. | Przyjmuje wszystkie typy liczb |
X Y | Zwróci wynik bitowej XOR X i Y. | Przyjmuje wszystkie typy liczb |
~ X | Zwróci wynik bitowego NIE z X. | Przyjmuje wszystkie typy liczb |
Operatory logiczne:
Używamy operatorów logicznych do wykonywania operacji logicznych na operandach
- Operacje logiczne, takie jak AND, OR, NOT pomiędzy operandami, używamy tych operatorów.
- Wszystkie typy operandów są typu BOOLEAN w tych operatorach
Poniższa tabela zawiera szczegółowe informacje na temat operatorów logicznych
Operatorzy | Opis | Operandy |
X I Y | PRAWDA, jeśli X i Y mają wartość PRAWDA, w przeciwnym razie FAŁSZ. | Tylko typy logiczne |
X && Y | To samo co X AND Y, ale tutaj używamy symbolu && | Tylko typy logiczne |
X LUB Y | PRAWDA, jeśli X lub Y lub oba mają wartość PRAWDA, w przeciwnym razie FAŁSZ. | Tylko typy logiczne |
X || Y | To samo co X OR Y, ale tutaj używamy || symbol | Tylko typy logiczne |
NIE X | PRAWDA, jeśli X ma wartość FAŁSZ, w przeciwnym razie FAŁSZ. | Tylko typy logiczne |
! X | To samo co NOT X, ale tutaj używamy! symbol | Tylko typy logiczne |
Operatory na typach złożonych:
Poniższa tabela zawiera szczegółowe informacje na temat operatorów typu złożonego. Są to operatory, które zapewnią inny mechanizm dostępu do elementów w typach złożonych.
Operatorzy | Operandy | Opis |
Na] | A jest tablicą, a n jest typem całkowitym | Zwróci n-ty element tablicy A. Pierwszy element ma indeks 0 |
M [klucz] | M to Mapa | Zwróci wartości należące do klucza w mapie |
Konstruktorzy typu złożonego:
Poniższa tabela zawiera szczegółowe informacje na temat konstruktorów typu złożonego. Konstruuje instancje na złożonych typach danych. Są to złożone typy danych, takie jak Array, Map i Struct w Hive.
W tej sekcji zobaczymy operacje wykonywane na konstruktorach typu złożonego.
Operatorzy | Operandy | Opis |
szyk | (wart1, wart2,…) | Utworzy tablicę z podanymi elementami, jak wspomniano, takimi jak val1, val2 |
Create_ union | (tag, wart1, wart2,…) | Utworzy typ unii z wartościami, o których wspomina parametr znacznika |
mapa | (klucz1, wartość1, klucz2, wartość2,…) | Stworzy mapę z podanymi parami klucz / wartość wymienionymi w operandach |
Named_struct | (nazwa1, wart1, nazwa2, wart2,…) | Utworzy strukturę z podanymi nazwami pól i wartościami wymienionymi w operandach |
STRUKTURA | (wart1, wart2, wart3,…) | Tworzy Struct z podanymi wartościami pól. Nazwy pól struktur będą miały postać kol1, kol2,. |
Podsumowanie:
Hive udostępnia wbudowane funkcje i operatory służące do manipulowania danymi przechowywanymi w magazynie Hive. Hive jest podobny do języka SQL, który obsługuje wszystkie typy operacji na danych oraz zapytania dotyczące tabel i baz danych.