Úvod do HiveQL
HiveQL, běžně známý jako HQL, je dotazovací jazyk podobný SQL pro zpracování velkých kousků dat z prostředí Hadoop. Původně vyvinutý Facebookem kolem roku 2007, se Hive později stal open-source projektem Apache. Dotazy na úly se syntaxí podobnou SQL se dnes mezi datovými analytiky staly populárními. HiveQL používající HDFS pro ukládání a MapReduce pro zpracování pomáhá při získávání poznatků pro velké uživatele dat s minimálním zážitkem z kódování. S HiveQL lze použít různé další distribuované výpočetní stroje, jako jsou Apache Tez a Apache Spark, pro rychlejší zpracování rozsáhlé analytiky dat. Různé způsoby, jak používat HiveQL, jsou - CLI (Command Line Interface), komerční produkty jako Karmasphere, cloudový open source Hue a Qubole.
Práce s HiveQL
Úl poskytuje dialekt jako dialekt pro manipulaci s daty, což eliminuje potřebu, abychom psali úlohy MapReduce s nízkou úrovní pro načítání dat (pomocí Mapperu) a agregování konečných výsledků (prostřednictvím modulů Reducer).
-
Provádění dotazu na úl
Kroky zapojené do provádění dotazu Úl jsou:
- Rozhraní podregistru (prostřednictvím rozhraní CLI nebo Web UI) odešle dotaz ovladači (což je JDBC, ODBC nebo Thrift Server), aby zkompiloval, optimalizoval a provedl. Kontroluje dotaz pomocí kompilátoru z hlediska syntaxe a plánu provádění.
- Kompilátor odešle žádost Metastore a jako odpověď obdrží metadata.
- Kompilátor sdělí plán provádění zpět ovladači, který jej dále odešle do spouštěcího modulu.
- Prováděcí modul spolupracuje s Job Trackerem, což je uzel Name, aby dokončil práci.
- Paralelně vykonávací engine také provádí metadatovou operaci.
- Uzel s názvem získá úlohu pomocí nástroje Sledování úloh nebo Datových uzlů.
- Výsledky, které jsou sdíleny s prováděcím modulem, se pak zobrazují rozhraní prostřednictvím ovladače.
-
Optimalizace dotazů
Ladění HiveQL pro lepší optimalizaci dotazů. Pomocí níže uvedených příkazů můžeme přepsat výchozí konfigurace a umožnit rychlejší provádění dotazů.
1 . SET hive.execution.engine = tez
Ve výchozím nastavení je spouštěcí modul nastaven jako Mapreduce, ale můžeme jej explicitně nastavit na tez (pouze pro Hadoop 2) nebo Spark (pro Hive 1.1.0 0 dále).
2 . SET hive.mapred.mode = unstrict
Toto je pro dynamické rozdělení, což je užitečné pro načítání velkých datových sad. Statické rozdělení je však nastaveno jako výchozí, což se děje v „přísném“ režimu.
3 . SET hive.vectorized.execution = true
set hive.vectorized.execution.enabled = true
Vektorizované provádění dotazů umožňuje provádět operace jako - agregáty, filtry nebo spojení v dávkách 1024 řádků namísto jednoho řádku najednou.
4 . SET hive.auto.convert.join = true
Při spojení velké datové sady s velmi malou datovou sadou jsou spojení map efektivnější a lze je nastavit pomocí výše uvedeného příkazu.
5 . SET hive.exec.parallel = true
Úlohy MapReduce jsou prováděny paralelně v Hadoopu. Někdy, pokud dotazy nejsou na sobě závislé, může být upřednostňováno paralelní provádění vedoucí k lepší správě paměti.
6 . SET hive.exec.compress.output = true
To umožňuje, aby byl finální výstup uložen v HDFS v komprimovaném formátu.
7 . SET hive.exec.compress.output = true
To umožňuje, aby byl finální výstup uložen v HDFS v komprimovaném formátu.
Vlastnosti HiveQL
- Protože se jedná o jazyk vysoké úrovně, jsou dotazy podregistru implicitně převedeny na úlohy s omezením map nebo na složité DAG (směrované acyklické grafy). Pomocí klíčového slova „Vysvětlit“ před dotazem můžeme získat plán dotazů.
- Rychlejší provádění dotazů pomocí úložiště metadat ve formátu RDMS a replikuje data, což usnadňuje vyhledávání v případě ztráty.
- Pro urychlení dotazů se provádí indexování bitmap.
- Zvyšuje výkon tím, že umožňuje rozdělení dat.
- Podregistr může zpracovávat různé typy komprimovaných souborů, čímž šetří místo na disku.
- Pro manipulaci s řetězci, celými čísly nebo daty podporuje HiveQL rozšíření uživatelských funkcí (UDF) a řešení problémů, které nejsou podporovány vestavěnými UDF.
- Poskytuje řadu dalších rozhraní API pro vytváření přizpůsobeného vyhledávače.
- Podporovány jsou různé formáty souborů, jako jsou Textfile, Sequencefile, ORC (Optimized Row Columnar), RCFile, Avro a Parquet. Formát souboru ORC je nejvhodnější pro zlepšení výkonu dotazů, protože ukládá data nejoptimalizovanějším způsobem, což vede k rychlejšímu provádění dotazů.
- Je to efektivní nástroj pro analýzu dat a ETL pro velké datové sady 10. Snadné psaní dotazů, protože je podobné SQL. Příkazy DDL (jazyk definice dat) v podregistru se používají ke specifikaci a změně struktury databáze nebo tabulek v podregistru. Tyto příkazy jsou přetažení, vytvoření, zkrácení, změna, zobrazení nebo popis.
Omezení
- Dotazy na úly mají vyšší latenci, protože Hadoop je dávkově orientovaný systém.
- Vnořené nebo dílčí dotazy nejsou podporovány.
- Operaci aktualizace, odstranění nebo vložení nelze provést na úrovni záznamu.
- Zpracování nebo dotazování dat v reálném čase není nabízeno prostřednictvím Hive Scope of HQL.
Díky petabajtům dat, od miliard až po biliony záznamů, má HiveQL velký prostor pro profesionály s velkými daty.
Rozsah HiveQL
Níže jsou uvedeny způsoby, jak se rozsah HiveQL rozšiřuje a lépe slouží účelu analýzy humungous dat generovaných uživateli každý den.
Zabezpečení: Spolu se zpracováním velkých dat poskytuje Hive zabezpečení dat. Tato úloha je pro distribuovaný systém složitá, protože k vzájemné komunikaci je třeba více komponent. Podpora autorizace Kerberos umožňuje ověřování mezi klientem a serverem.
Zamykání: Tradičně Hive chybí zamykání na řádcích, sloupcích nebo dotazech. Úl může využít podporu Apache Zookeeper pro zajištění zámku.
Workflow Management : Apache Oozie je plánovač pracovního postupu, který automatizuje různé dotazy HiveQL tak, aby se prováděly sekvenčně nebo paralelně.
Vizualizace: Notebook Zeppelin je webový notebook, který umožňuje interaktivní analýzu dat. Podporuje Hive and Spark pro vizualizaci dat a spolupráci.
Závěr
HiveQL je široce používán napříč organizacemi k řešení složitých případů použití. S ohledem na vlastnosti a omezení nabízená tímto jazykem se dotazovací jazyk Hive používá v telekomunikačních, zdravotnických, maloobchodních, bankovních a finančních službách a dokonce i v systému hodnocení klimatu v laboratoři NASA Test Propulsion Laboratory. Snadné psaní účtů SQL jako dotazy a příkazy pro širší přijetí. Rostoucí pracovní příležitost v této oblasti láká čerstvější a profesionály z různých odvětví k získání praktických zkušeností a znalostí o oboru.
Doporučené články
Toto je průvodce HiveQL. Zde diskutujeme Úvod do HiveQL, Optimalizace dotazů a jeho omezení a funkce. Další informace naleznete také v souvisejících článcích -
- Co jsou typy dat Úl?
- Alternativy úlu Zjistěte funkce
- Nejlepší komponenty příkazů podregistru
- Top 10 otázek z Hive Interview