Introduktion til ekstern tabel i Hive
en ekstern tabel er en tabel, der beskriver skemaet eller metadataene for eksterne filer. Grundlæggende er der to typer tabeller i HIVE – administrerede eller interne tabeller og eksterne tabeller. Det primære formål med at definere en ekstern tabel er at få adgang til og udføre forespørgsler på data, der er gemt uden for Hive. Disse datafiler kan gemmes i andre værktøjer som f.eks. Hive antager, at det ikke har noget ejerskab af dataene til eksterne tabeller, og det kræver derfor ikke at administrere dataene som i administrerede eller interne tabeller. Også for eksterne tabeller slettes data ikke ved at droppe tabellen.
arbejde og oprette eksterne tabeller i Hive
som standard oprettes Hive table directory under databasekataloget. Undtagelsen er standarddatabasen. Placeringsbrugeren / hive / lageret har ikke en mappe, så standarddatabasetabellerne får sin mappe direkte oprettet under denne placering. Det anbefales at oprette eksterne tabeller, hvis vi ikke vil bruge standardplaceringen.
Start dit gratis Datavidenskabskursus
Hadoop, datavidenskab, statistik & andre
en ekstern tabel bruges generelt, når data er placeret uden for bikuben.
lad os oprette en ekstern tabel ved hjælp af nøgleordet “ekstern” med nedenstående kommando.
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’;
Output:
en ekstern tabel kan også oprettes ved at kopiere skemaet og dataene i en eksisterende tabel med nedenstående kommando:
CREATE EXTERNAL TABLE if not exists students_v2 LIKE students
Location ‘/data/students_details’;
hvis vi udelader det eksterne nøgleord, vil den nye oprettede tabel være ekstern, hvis basistabellen er ekstern. Tilsvarende, hvis basistabellen styres med det eksterne søgeord, vil den nye tabel, der oprettes, være ekstern.
for at identificere den oprettede tabeltype kan klausulen beskriv formateret bruges. I slutningen af den detaljerede tabel beskrivelse output tabel type vil enten være “Managed table” eller “ekstern tabel”.
partitionerede tabeller hjælper med at opdele dataene i logiske undersegmenter eller partitioner, hvilket gør forespørgselsydelsen mere effektiv. En partitioneret tabel kan oprettes som vist nedenfor.
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’
Output:
der kan være tilfælde, hvor Partition eller struktur af en ekstern tabel ændres, så ved hjælp af denne kommando kan Metadataoplysningerne opdateres:
MSCK REPAIR TABLE external_table_name
1. Partitioneret ekstern tabel
mens du opretter en ikke-partitioneret ekstern tabel, kræves PLACERINGSKLAUSULEN. Men for et partitioneret eksternt bord er det ikke nødvendigt. ALTER TABLE-erklæring er påkrævet for at tilføje partitioner sammen med PLACERINGSKLAUSULEN.
ALTER TABLE students ADD PARTITION (class =10)
Location ‘here://master_server/data/log_messages/2012/01/02’;
Fra Hive v0.8.0 og fremefter kan flere partitioner tilføjes i samme forespørgsel. Placeringen for en partition kan også ændres ved nedenstående forespørgsel uden at flytte eller slette dataene fra den gamle placering.
ALTER TABLE students_v2 partition( class = 10)
Set location ‘s2n://buckets/students_v2/10’;
for at slippe en partition bruges nedenstående forespørgsel:
ALTER TABLE students DROP IF EXISTS PARTITION (class = 12);
denne kommando sletter data og metadata for partitionen for administrerede eller interne tabeller. For eksterne tabeller slettes data dog ikke.
2. Operationer på den eksterne tabel
operationerne som SELECT, joinforbindelser, ORDER BY, GROUP BY, CLUSTER BY og andre implementeres på eksterne tabeller. Eksterne tabeller kan let sammenføjes med andre tabeller for at udføre komplekse datamanipulationer. Begreber om partitionering, bucketing og indeksering implementeres også på eksterne tabeller på samme måde som for administrerede eller interne tabeller. Alle konfigurationsegenskaber I Hive gælder også for eksterne tabeller. For eksempel ved at indstille spring over.header.linje. Tæl = 1, Vi kan springe overskriftsrækken fra datafilen over.
alle filformater som ORC, AVRO, tekstfil, SEKVENSFIL eller parket understøttes til Hive ‘ s interne og eksterne tabeller. Ved oprettelse af en tabel bruges positionskortlægning til at indsætte data i kolonnen, og den rækkefølge opretholdes.
datatyper i eksterne tabeller: i eksterne tabeller understøttes datatyperne til indsamling også sammen med primitive datatyper (som heltal, streng, tegn). Det er nødvendigt at angive afgrænserne af elementerne i indsamlingsdatatyper (som et array, struct og map).
Hvornår skal du bruge eksterne tabeller i Hive?
generelt oprettes interne tabeller i Hive. Men for visse scenarier kan en ekstern tabel være nyttig. Disse er:
- når data placeres uden for Hive-eller HDFS-placeringen, hjælper det at oprette en ekstern tabel, da de andre værktøjer, der muligvis bruger tabellen, ikke placerer nogen lås på disse filer.
- en ekstern tabel kan oprettes, når data ikke er til stede i en eksisterende tabel (dvs.ved hjælp af SELECT-klausulen).
- den eksterne tabel skal oprettes, hvis vi ikke ønsker, at Hive skal eje dataene eller have andre datakontroller.
- den eksterne tabel forhindrer også utilsigtet tab af data, da basisdataene ikke slettes ved tab af en ekstern tabel. Dette fungerer som en sikkerhedsfunktion i bikuben. Dette er grunden til, at TRUNCATE heller ikke fungerer for eksterne tabeller.
funktioner
Der er visse funktioner i Hive, som kun er tilgængelige for enten administrerede eller eksterne tabeller. Disse er:
- kommandoer som ARCHIVE/UNARCHIVE/TRUNCATE/CONCATENATE / MERGE fungerer kun for interne tabeller.
- syren virker kun for administrerede eller interne tabeller.
- DROP-klausul sletter kun metadata for eksterne tabeller. Det sletter dog underliggende data også for interne tabeller.caching af forespørgselsresultater er kun mulig for administrerede tabeller.
- STOLEBEGRÆNSNING er kun tilladt på eksterne tabeller.
- nogle funktioner i materialiserede visninger fungerer kun for administrerede tabeller.
konklusion
i denne vejledning så vi hvornår og hvordan man bruger eksterne tabeller i Hive. Højdepunkterne i denne tutorial er at skabe en baggrund på andre tabeller end administreret og analysere data uden for bikuben.
Anbefalede artikler
Dette er en guide til ekstern tabel I Hive. Her diskuterer vi introduktion af eksterne tabeller i Hive og funktionerne og forespørgsler. Du kan også gennemgå vores andre relaterede artikler for at lære mere –
- Partitionering i Hive
- kort Deltag i Hive
- Hive datatyper
- Hive Installation
- Guide til Hive Cluster af