Ú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:

  1. 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í.
  2. Kompilátor odešle žádost Metastore a jako odpověď obdrží metadata.
  3. 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.
  4. Prováděcí modul spolupracuje s Job Trackerem, což je uzel Name, aby dokončil práci.
  5. Paralelně vykonávací engine také provádí metadatovou operaci.
  6. Uzel s názvem získá úlohu pomocí nástroje Sledování úloh nebo Datových uzlů.
  7. 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

  1. 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ů.
  2. 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.
  3. Pro urychlení dotazů se provádí indexování bitmap.
  4. Zvyšuje výkon tím, že umožňuje rozdělení dat.
  5. Podregistr může zpracovávat různé typy komprimovaných souborů, čímž šetří místo na disku.
  6. 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.
  7. Poskytuje řadu dalších rozhraní API pro vytváření přizpůsobeného vyhledávače.
  8. 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ů.
  9. 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í

  1. Dotazy na úly mají vyšší latenci, protože Hadoop je dávkově orientovaný systém.
  2. Vnořené nebo dílčí dotazy nejsou podporovány.
  3. Operaci aktualizace, odstranění nebo vložení nelze provést na úrovni záznamu.
  4. 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 -

  1. Co jsou typy dat Úl?
  2. Alternativy úlu Zjistěte funkce
  3. Nejlepší komponenty příkazů podregistru
  4. Top 10 otázek z Hive Interview

Kategorie: