Úvod do Externí Tabulky v Úlu
Externí tabulky je tabulka, která popisuje schéma nebo metadata z externích souborů. Zásadně existují dva typy tabulek v hive spravovaných nebo Interních tabulkách a externích tabulkách. Primárním účelem definování externí tabulky je přístup a provádění dotazů na data uložená mimo úl. Tyto datové soubory mohou být uloženy v jiných nástrojích, jako je Pig, Azure storage Volumes (ASV) nebo jakékoliv vzdálené umístění HDFS. Hive předpokládá, že nemá žádné vlastnictví dat pro externí tabulky, a proto nevyžaduje správu dat jako ve spravovaných nebo interních tabulkách. Také pro externí tabulky, data nejsou smazána při pádu tabulky.
práce a vytváření externích tabulek v Hive
ve výchozím nastavení je v hive table directory vytvořen pod adresářem databáze. Výjimkou je výchozí databáze. Umístění user / hive / warehouse nemá adresář, takže výchozí databázové tabulky budou mít svůj adresář přímo vytvořený pod tímto umístěním. Pokud nechceme použít výchozí umístění, doporučujeme vytvořit externí tabulky.
Začněte Svůj Volný Dat Vědy Kurzu,
Hadoop, Data Science, Statistiky & ostatní
externí tabulky se obvykle používá, když údaje se nachází mimo Hnízdo.
vytvoříme externí tabulku pomocí klíčového slova „externí“ pomocí níže uvedeného příkazu.
CREATE EXTERNAL TABLE if not exists students
(
Roll_id Int,
Class Int,
Name String,
Rank Int)
Row format delimited fields terminated by ‘,’
Location ‘/data/students_details’;
Výstup:
externí tabulky mohou být také vytvořeny zkopírováním schématu a dat z existující tabulky, s níže příkaz:
CREATE EXTERNAL TABLE if not exists students_v2 LIKE students
Location ‘/data/students_details’;
Pokud vynechat EXTERNÍ klíčové slovo, pak nové tabulky vytvořené bude vnější, pokud základní tabulka je externí. Podobně, pokud je základní tabulka spravována pomocí externího klíčového slova, nová vytvořená tabulka bude externí.
k identifikaci typu vytvořené tabulky lze použít klauzuli popsat formátovaný. Na konci podrobného popisu tabulky bude typ výstupní tabulky buď „spravovaná tabulka“ nebo „externí tabulka“.
rozdělené tabulky pomáhají rozdělit data na logické dílčí segmenty nebo oddíly, což zefektivňuje výkon dotazu. Rozdělená tabulka může být vytvořena, jak je vidět níže.
CREATE EXTERNAL TABLE if not exists students
( roll_id Int,
name String,
Rank Int)
partitioned by (class Int)
Row format delimited fields terminated by ‘\t’
výstup:
Tam Mohou Být Případy, kdy Oddíl nebo Struktury Externí Tabulky Se změní, Pak Pomocí Tohoto Příkazu Metadata Informace Mohou Být automaticky Obnovovány:
MSCK REPAIR TABLE external_table_name
1. Externí tabulka s oddíly
při vytváření externí tabulky bez rozdělení je vyžadována klauzule umístění. Ale pro rozdělenou externí tabulku to není nutné. Příkaz ALTER TABLE je nutné přidat oddíly spolu s klauzulí umístění.
ALTER TABLE students ADD PARTITION (class =10)
Location ‘here://master_server/data/log_messages/2012/01/02’;
z úlu v0.8.0 dále lze do stejného dotazu přidat více oddílů. Umístění oddílu lze také změnit níže uvedeným dotazem, aniž by došlo k přesunu nebo odstranění dat ze starého umístění.
ALTER TABLE students_v2 partition( class = 10)
Set location ‘s2n://buckets/students_v2/10’;
drop oddíl, níže dotaz:
ALTER TABLE students DROP IF EXISTS PARTITION (class = 12);
Tento příkaz smaže data a metadata oddílu pro spravované nebo vnitřní stoly. U externích tabulek se však data nevymažou.
2. Operace na externí tabulce
operace jako SELECT, JOINS, ORDER BY, GROUP BY, CLUSTER BY a další jsou implementovány na externí tabulky. Externí tabulky lze snadno spojit s jinými tabulkami a provádět složité manipulace s daty. Koncepty rozdělení, bucketingu a indexování jsou také implementovány na externích tabulkách stejným způsobem jako u spravovaných nebo interních tabulek. Všechny vlastnosti konfigurace v úlu jsou použitelné i pro externí tabulky. Například nastavením přeskočit.záhlaví.řádek. Count = 1, můžeme přeskočit řádek záhlaví z datového souboru.
všechny formáty souborů, jako jsou ORC, AVRO, TEXTFILE, sekvenční soubor nebo parkety, jsou podporovány pro interní a externí tabulky Hive. Při vytváření tabulky se pro vložení dat do sloupce používá poziční mapování a toto pořadí je zachováno.
datové typy v externích tabulkách: v externích tabulkách jsou podporovány také datové typy sběru spolu s primitivními datovými typy (jako celé číslo, řetězec, znak). Je nutné specifikovat oddělovače prvků datových typů sběru (jako pole, struktura a mapa).
kdy použít externí tabulky v úlu?
obecně se vnitřní tabulky vytvářejí v úlu. Pro určité scénáře však může být užitečná externí tabulka. Jedná se o:
- když jsou data umístěna mimo umístění úlu nebo HDFS, vytvoření externí tabulky pomáhá jako ostatní nástroje, které mohou tabulku používat, tyto soubory nezamyká.
- externí tabulku lze vytvořit, pokud data nejsou přítomna v žádné existující tabulce (tj. pomocí klauzule SELECT).
- externí tabulka musí být vytvořena, pokud nechceme, aby Hive vlastnil data nebo měl jiné ovládací prvky dat.
- externí tabulky také zabraňuje náhodné ztrátě dat, jako na vrácení externí tabulky, základní data jsou odstraněna. To funguje jako bezpečnostní prvek v úlu. To je důvod, proč TRUNCATE také nebude fungovat pro externí tabulky.
funkce
v úlu jsou určité funkce, které jsou dostupné pouze pro spravované nebo externí tabulky. Jedná se o:
- příkazy jako ARCHIVE / UNARCHIVE/TRUNCATE/CONCATENATE / MERGE fungují pouze pro interní tabulky.
- kyselina funguje pouze pro spravované nebo interní tabulky.
- klauzule DROP odstraní pouze metadata pro externí tabulky. Vymaže však podkladová data i pro interní tabulky.
- ukládání výsledků dotazu do mezipaměti je možné pouze pro spravované tabulky.
- omezení RELY je povoleno pouze na externích tabulkách.
- některé funkce zhmotněných pohledů fungují pouze pro spravované tabulky.
závěr
v tomto tutoriálu jsme viděli, kdy a jak používat externí tabulky v úlu. Vrcholem tohoto tutoriálu je vytvořit pozadí na jiných tabulkách, než je spravovaná a analyzovaná data mimo úl.
doporučené články
Toto je průvodce externí tabulkou v úlu. Zde diskutujeme o zavedení externích tabulek v úlu a funkcích a dotazech. Můžete také projít si naše další související články se dozvědět více,
- Rozdělení do Úlu,
- Mapa Připojit v Úlu
- Úlu Datové Typy
- Úlu Instalace
- Návod k Podregistru Clusteru