Mi az a HiveQL (Hive Query Language)?
A Hive CLI-t biztosít a Hive-lekérdezések Hive Query Language (HiveQL) használatával. A HQL szintaxis általában hasonló az SQL szintaxishoz, amelyet a legtöbb adatelemző ismer.
A Hive SQL által inspirált nyelve elválasztja a felhasználót a Map Reduce programozás bonyolultságától. A tanulás megkönnyítése érdekében újra felhasználja a relációs adatbázis-világból ismert fogalmakat, például a táblázatokat, a sorokat, az oszlopokat és a sémákat.
A legtöbb interakció általában egy parancssori felületen (CLI) keresztül zajlik. A Hive CLI-t biztosít a Hive-lekérdezések Hive Query Language (Hive-QL) használatával történő megírásához.
Általában a HiveQL szintaxisa hasonlít az SQL-szintaxishoz, amelyet a legtöbb adatelemző ismer. A Hive négy fájlformátumot támogat: TEXTFILE, SEQUENCEFILE, ORC és RCFILE (Oszlopfájl rögzítése).
- Egyfelhasználós metaadatok tárolásához a Hive derby adatbázist és
- Több felhasználói metaadatok vagy megosztott metaadatok esetén a Hive MYSQL-t használ
Beépített operátorok
A Hive beépített operátorokat biztosít az adatműveletekhez, amelyeket a Hive raktárában található táblákon kell végrehajtani.
Ezeket az operátorokat matematikai műveletekre használják operandusokon, és az adott logikának megfelelő specifikus értéket ad vissza.
A HIVE beépített operátorai a következők:
- Relációs operátorok
- Számtani operátorok
- Logikai operátorok
- Operátorok komplex típusokon
- Komplex típusú kivitelezők
Kapcsolati operátorok:
Relációs operátorokat használunk két operandus viszonyának összehasonlításához.
- Olyan operátorok, mint egyenlő, Nem egyenlő, kevesebb, nagyobb, mint… stb
- Az operandus típusok mindegyik számtípusok ezekben az operátorokban.
Az alábbi táblázat részleteket ad a relációs operátorokról és azok használatáról.
Beépített kezelő | Leírás | Operand |
X = Y | IGAZ, ha az X kifejezés egyenértékű az Y kifejezéssel, különben HAMIS. | Minden primitív típusra szükség van |
X! = Y | IGAZ, ha az X kifejezés nem egyenértékű az Y kifejezéssel, különben HAMIS. | Minden primitív típusra szükség van |
X IGAZ, ha az X kifejezés kisebb, mint az Y kifejezés, különben HAMIS. | Minden primitív típusra szükség van |
|
X <= Y | IGAZ, ha az X kifejezés kisebb vagy egyenlő az Y kifejezéssel, különben HAMIS. | Minden primitív típusra szükség van |
X> Y | IGAZ, ha az X kifejezés nagyobb, mint az Y kifejezés, különben HAMIS. | Minden primitív típusra szükség van |
X> = Y | IGAZ, ha az X kifejezés nagyobb vagy egyenlő az Y kifejezéssel, különben HAMIS. | Minden primitív típusra szükség van |
X NULL | IGAZ, ha az X kifejezés NULL értékűnek minősül, egyébként HAMIS. | Minden típusra szükség van |
X NEM NULL | HAMIS Ha az X kifejezés NULL értékűnek számít, egyébként IGAZ. | Minden típusra szükség van |
X LIKE Y | IGAZ, ha az X karakterlánc mintája megegyezik az Y jellel, egyébként HAMIS. | Csak húrokat vesz fel |
X SZERETETLEN Y | NULL, ha X vagy Y NULL, IGAZ, ha az X bármelyik szubstringje megegyezik az Y Java reguláris kifejezéssel, különben FALSE. | Csak húrokat vesz fel |
X REGEXP Y | Ugyanaz, mint a RLIKE. | Csak húrokat vesz fel |
Számtani operátorok :
Aritmetikai operátorokat használunk az operandusok számtani műveleteinek végrehajtására
- Számtani műveletek, például összeadás, kivonás, szorzás és osztás operandusok között, ezeket az operátorokat használjuk.
- Az operandus típusok mindegyike számtípus ezekben az operátorokban
Minta példa:
2 + 3 az 5. eredményt adja.
Ebben a példában a '+' az operátor, a 2 és a 3 operandus. A visszatérési érték 5
A következő táblázat részleteket ad számtani operátorokról
Beépített kezelő | Leírás | Operand |
X + Y | Visszaadja az X és Y érték összeadásának kimenetét. | Minden számtípusra szükség van |
X - Y | Visszaadja Y kimenetét X értékből. | Minden számtípusra szükség van |
X * Y | Visszaadja az X és Y értékek szorzását. | Minden számtípusra szükség van |
X / Y | Visszaadja az Y osztásának kimenetét X-ből. | Minden számtípusra szükség van |
X% Y | Visszaadja az X Y-vel való osztásával kapott maradékot. | Minden számtípusra szükség van |
X & Y | Visszaadja az X és Y bitenkénti AND kimenetét. | Minden számtípusra szükség van |
X | Y | Visszaadja X és Y bitenkénti OR kimenetét. | Minden számtípusra szükség van |
X Y | Visszaadja X és Y bitenkénti XOR kimenetét. | Minden számtípusra szükség van |
~ X | Visszaadja az X bitenkénti NOT kimenetét. | Minden számtípusra szükség van |
Logikai operátorok:
Logikai operátorokat használunk logikai műveletek végrehajtására operandusokon
- Logikai műveletek, például AND, OR, NOT operandusok között, ezeket az operátorokat használjuk.
- Az operandusok mindegyike BOOLEAN típusú ezekben az operátorokban
Az alábbi táblázat részleteket ad a logikai operátorokról
Operátorok | Leírás | Operandusok |
X ÉS Y | IGAZ, ha mind X, mind Y igaz, különben HAMIS. | Csak logikai típusok |
X && Y | Ugyanaz, mint X és Y, de itt a && szimbólumot használjuk | Csak logikai típusok |
X VAGY Y | IGAZ, ha X vagy Y, vagy mindkettő IGAZ, egyébként HAMIS. | Csak logikai típusok |
X || Y | Ugyanaz, mint X vagy Y, de itt a || -et használjuk szimbólum | Csak logikai típusok |
NEM X | IGAZ, ha X HAMIS, egyébként HAMIS. | Csak logikai típusok |
!X | Ugyanaz, mint NEM X, de itt használjuk! szimbólum | Csak logikai típusok |
Komplex típusok üzemeltetői:
Az alábbi táblázat részleteket ad a komplex típusú operátorokról. Ezek olyan operátorok, amelyek más mechanizmust fognak biztosítani az összetett típusú elemek eléréséhez.
Operátorok | Operandusok | Leírás |
A [n] | A tömb, n pedig egész típusú | Visszaadja az n tömböt az A tömbben. Az első elem indexe 0 |
M [gomb] | M egy térkép | Visszaadja a térkép kulcsához tartozó értékeket |
Komplex típusú kivitelezők:
Az alábbi táblázat részleteket ad a komplex típusú kivitelezőkről. Bonyolult adattípusokra épít fel példányokat. Ezek összetett adattípusok, például tömb, térkép és struktúra típusok a kaptárban.
Ebben a részben megnézzük a komplex típusú kivitelezőkön végrehajtott műveleteket.
Operátorok | Operandusok | Leírás |
sor | (val1, val2,…) | Létrehoz egy tömböt a megadott elemekkel, például a val1, val2 |
Create_ unió | (tag, val1, val2,…) | Létrehoz egy uniótípust a címke paraméter által említett értékekkel |
térkép | (kulcs1, érték1, kulcs2, érték2,…) | Létrehoz egy térképet a megadott kulcs / érték párokkal, amelyeket operandusokban említenek |
Named_struct | (név1, val1, név2, val2,…) | Létrehoz egy Struktúrát a megadott mezőnevekkel és operandusokban említett értékekkel |
SZERKEZET | (val1, val2, val3,…) | Létrehoz egy Struktúrát a megadott mezőértékekkel. A struktúramezők neve col1, col2,. |
Összegzés:
A Hive néhány beépített funkciót és operátort biztosít a Hive raktárában tárolt adatok kezelésére. A Hive hasonló az SQL nyelvhez, amely minden típusú adatműveletet és táblákon és adatbázisokban történő lekérdezést támogat.