Porovnání interních a externích tabulek Hive

Zajímá vás, jaké jsou různé typy tabulek Hive a jak se od sebe liší?

Pokud jsme probrali základy tabulek Hive v datových modelech Hive, prozkoumejme nyní hlavní rozdíly mezi interními a externími tabulkami Hive.

V tomto článku probereme dva různé typy tabulek Hive, kterými jsou interní tabulka (Managed table) a externí tabulka. V článku jsou pak vyjmenovány rozdíly mezi interními a externími tabulkami Hive. Ukážeme si také různé případy, kdy můžeme tyto tabulky Hive použít.

Začneme tedy interními tabulkami Hive a externími tabulkami.

Sledujte nejnovější technologické trendy
Přidejte se k DataFlair na Telegramu!!

Úvod do interních a externích tabulek Hive

interní a externí tabulky Hive

V zásadě zná Hive dva různé typy tabulek: Interní tabulku a Externí tabulku. Interní tabulka je také známá jako spravovaná tabulka.

Interní nebo Externí tabulky můžeme identifikovat pomocí příkazu DESCRIBE FORMATTED table_name v Úlu, který podle typu tabulky zobrazí buď MANAGED_TABLE, nebo EXTERNAL_TABLE.

Interní tabulka Úlu

Úl vlastní data pro interní tabulky.

Je to výchozí tabulka v Úlu. Když uživatel vytvoří tabulku v systému Hive, aniž by ji určil jako externí, pak se ve výchozím nastavení vytvoří interní tabulka v určitém umístění v systému HDFS.

Ve výchozím nastavení se interní tabulka vytvoří v cestě ke složce podobné adresáři /user/hive/warehouse systému HDFS. Výchozí umístění můžeme při vytváření tabulky přepsat pomocí vlastnosti location.

Pokud zrušíme spravovanou tabulku nebo oddíl, data tabulky a metadata spojená s touto tabulkou budou ze systému HDFS odstraněna.

Vnější tabulka Úlu

Úl nespravuje data vnější tabulky.

Vnější tabulku vytváříme pro vnější použití, jako když chceme použít data mimo Úl.

Vnější tabulky jsou uloženy mimo adresář skladu. Mohou přistupovat k datům uloženým ve zdrojích, jako jsou vzdálená umístění HDFS nebo svazky úložiště Azure.

Kdykoli externí tabulku zrušíme, odstraní se pouze metadata spojená s tabulkou, data tabulky zůstanou v Hive nedotčena.

Externí tabulku můžeme vytvořit zadáním klíčového slova EXTERNAL v příkazu Hive create table.

Rozdíl mezi interní a externí tabulkou Hive

interní a externí tabulka Hiveinterní a externí tabulka Hive

Podívejme se nyní na rozdíl mezi oběma tabulkami Hive. Hlavní rozdíly v interních a externích tabulkách Hive jsou:

Sémantika načítání

Sémantika načítání se v obou tabulkách liší. Podívejme se na rozdíly v sémantice načítání mezi interní a externí tabulkou.

a. Interní tabulka

Pokud načítáme data do interní tabulky, pak Hive přesune data do adresáře skladu.

Například:

V tomto příkladu vytváříme tabulku ‚internaldemo‘. Když do tabulky ‚internaldemo‘ načteme data, pak Hive přesune data do adresáře warehouse.

Návod k instalaci Apache Hive na Ubuntu pro spouštění dotazů Hive.

vytvořit interní tabulku - hive interní a externí tabulka

Nyní načteme data do výše vytvořené interní tabulky. nahrát data do interní tabulky - hive interní a externí tabulky

Při popisu tabulky vidíme, že data tabulky jsou přesunuta do adresáře Hive warehouse.popsat interní tabulku - hive interní a externí tabulky

b. Externí tabulka

Pomocí klíčového slova EXTERNÍ ví Hive, že data tabulky nespravuje, a proto data nepřesouvá do svého adresáře skladu. Hive ani nekontroluje, zda externí umístění v okamžiku jeho definování existuje, nebo ne.

Příklad:

V tomto příkladu vytváříme externí tabulku ‚external_demo‘ na zadaném umístění, kterým je ‚/home/dataflair/‘. Při načítání dat do externí tabulky Úl nepřesune data tabulky do adresáře svého skladu.

vytvořit externí tabulku - interní a externí tabulky Úlu

Nyní načteme data do výše vytvořené externí tabulky. nahrát data do externí tabulky - hive interní a externí tabulky

Při prohlížení tabulky vidíme, že data tabulky Hive nejsou přesunuta do adresáře Hive warehouse. Jsou uložena v umístění zadaném při vytváření tabulky.popis externí tabulky - interní a externí tabulky hive

Sémantika dropu

Stejně jako sémantika načítání se i sémantika dropu v obou tabulkách liší. Podívejme se na rozdíl v sémantice drop mezi interní a externí tabulkou.

a. Interní tabulka

Spuštěním interní tabulky se odstraní data tabulky a také metadata spojená s tabulkou.

Například:

V tomto příkladu spouštíme spravovanou tabulku ‚internaldemo‘. Vidíte, že se odstraní jak metadata tabulky, tak i data tabulky.

odstranění interní tabulky - hive internal and external tables

umístění interní tabulky - hive internal and external tables

Data tabulky se také odstraní ze systému HDFS.

b. Externí tabulka

Smazáním externí tabulky se odstraní pouze metadata tabulky. Obsah tabulky zůstane nedotčen.

Příklad:

V tomto příkladu vidíme, že při odstranění externí tabulky ‚external demo‘ je obsah tabulky stále přítomen v umístění HDFS.

odstranění externí tabulky - tabulky hive

umístění externí tabulky - tabulky hive

podpora TRUNCATE

Příkaz TRUNCATE funguje pouze pro interní tabulku.

Příklad:

V tomto příkladu se snažíme použít příkaz truncate s tabulkou ‚externaldemo‘. Zobrazí se nám chybové hlášení, které říká ‚Nelze zkrátit nespravovanou tabulku externaldemo‘.

zkrátit externí tabulku - tabulky úlu

Podpora ACID

ACID/transakce funguje pouze pro interní tabulku. Pro externí tabulku nefungují.

Query Result Caching

Query Result Caching, který ukládá výsledky provedeného dotazu Hive pro opakované použití při dalších dotazech, funguje pouze pro interní tabulku.

Takže toto jsou některé rozdíly mezi interní a externí tabulkou Hive.

Podívejme se nyní, kdy použít kterou tabulku Hive.

Kdy použít interní a externí tabulku?

Interní tabulka Hive

Interní tabulku můžeme použít v případech:

  • Při generování dočasných tabulek.
  • Když je potřeba, aby Hive spravoval životní cyklus tabulky.
  • A když nechceme data tabulky po smazání.

Externí tabulka Úlu

Externí tabulku můžeme použít v případech:

  • Když nevytváříme tabulku na základě existující tabulky.
  • Když je požadováno použití dat mimo Úl. Například soubory s daty jsou čteny a zpracovávány existujícím programem, který soubory nezamkne.
  • Když nechceme data tabulky úplně smazat ani po DROP.
  • Když data nemají být vlastní Hive.

Takže to vše bylo v interních a externích tabulkách Hive. Doufám, že se vám náš výklad líbil.

Závěr

Po přečtení článku můžeme konstatovat, že tabulky Úlu jsou dvojího typu – interní tabulka, známá také jako spravovaná tabulka, a externí tabulka.

Data interní tabulky dostává do správy Úl. Úl není zodpovědný za správu dat Externí tabulky.

Při smazání interní tabulky Úlu se smažou data i metadata tabulky a při smazání Externí tabulky Úlu se smažou pouze metadata tabulky.

Podívejte se také-

  • Různé způsoby konfigurace úložiště Hive Metastore
  • Nejlepší knihy o Apache Hive pro výuku Hive pro začátečníky

Nějaké dotazy při práci s interními a externími tabulkami Hive? Ptejte se níže.

Učte se dál!!!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.