extern tabell i Hive

introduktion till extern tabell i Hive

en extern tabell är en tabell som beskriver schemat eller metadata för externa filer. I grund och botten finns det två typer av tabeller i HIVE – hanterade eller interna tabeller och externa tabeller. Det primära syftet med att definiera en extern tabell är att komma åt och utföra frågor om data som lagras utanför bikupan. Dessa datafiler kan lagras i andra verktyg som Pig, Azure storage Volumes (ASV) eller någon avlägsen HDFS plats. Hive förutsätter att det inte har någon äganderätt till data för externa tabeller, och det kräver därför inte att hantera data som i hanterade eller interna tabeller. För externa tabeller raderas inte data när tabellen släpps.

arbeta och skapa externa tabeller i Hive

som standard skapas i Hive-tabellkatalogen under databaskatalogen. Undantaget är standarddatabasen. Platsanvändaren/bikupan / lagret har ingen katalog så att standarddatabastabellerna har sin katalog direkt skapad under den här platsen. Det rekommenderas att skapa externa tabeller om vi inte vill använda standardplatsen.

starta din gratis Datavetenskapskurs

Hadoop, datavetenskap, statistik & andra

en extern tabell används vanligtvis när data finns utanför bikupan.

Låt oss skapa en extern tabell med nyckelordet ”Extern” med kommandot nedan.

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’;

utgång:

en extern tabell kan också skapas genom att kopiera schemat och data i en befintlig tabell, med kommandot nedan:

CREATE EXTERNAL TABLE if not exists students_v2 LIKE students
Location ‘/data/students_details’;

om vi utelämnar det externa sökordet kommer den nya tabellen som skapas att vara extern om bastabellen är extern. På samma sätt, om bastabellen hanteras med det externa sökordet, kommer den nya tabellen som skapas att vara extern.

för att identifiera vilken typ av tabell som skapats kan den beskrivna formaterade klausulen användas. I slutet av den detaljerade tabellbeskrivningstabelltypen kommer antingen att vara ”hanterad tabell” eller ”extern tabell”.

partitionerade tabeller hjälper till att dela upp data i logiska undersegment eller partitioner, vilket gör frågans prestanda effektivare. En partitionerad tabell kan skapas enligt nedan.

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’

utgång:

det kan finnas tillfällen när Partition eller struktur i en extern tabell ändras, och med hjälp av detta kommando kan Metadatainformationen uppdateras:

MSCK REPAIR TABLE external_table_name

1. Partitionerad extern tabell

När du skapar en icke-partitionerad extern tabell krävs platsklausulen. Men för ett partitionerat externt bord är det inte nödvändigt. ALTER TABLE-satsen krävs för att lägga till partitioner tillsammans med PLATSKLAUSULEN.

ALTER TABLE students ADD PARTITION (class =10)
Location ‘here://master_server/data/log_messages/2012/01/02’;

Från Hive v0.8.0 och framåt kan flera partitioner läggas till i samma fråga. Platsen för en partition kan också ändras med nedanstående fråga, utan att flytta eller ta bort data från den gamla platsen.

ALTER TABLE students_v2 partition( class = 10)
Set location ‘s2n://buckets/students_v2/10’;

för att släppa en partition används följande fråga:

ALTER TABLE students DROP IF EXISTS PARTITION (class = 12);

detta kommando tar bort data och metadata för partitionen för hanterade eller interna tabeller. För externa tabeller raderas dock inte data.

2. Operationer på den externa tabellen

operationerna som SELECT, JOINS, ORDER BY, GROUP BY, CLUSTER BY och andra implementeras på externa tabeller. Externa tabeller kan enkelt förenas med andra tabeller för att utföra komplexa datamanipulationer. Begrepp för partitionering, bucketing och indexering implementeras också på externa tabeller på samma sätt som för hanterade eller interna tabeller. Alla konfigurationsegenskaper I Hive är också tillämpliga på externa tabeller. Till exempel genom att ställa in skip.rubrik.linje. Count = 1, Vi kan hoppa över rubrikraden från datafilen.

alla filformat som ORC, Avro, textfil, SEKVENSFIL eller parkett stöds för Hive interna och externa tabeller. När du skapar en tabell används positionskartläggning för att infoga data i kolumnen och den ordningen bibehålls.

datatyper i externa tabeller: i externa tabeller stöds också insamlingsdatatyperna tillsammans med primitiva datatyper (som heltal, sträng, tecken). Det är nödvändigt att ange avgränsarna för elementen i insamlingsdatatyper (som en array, struct och map).

När ska man använda externa tabeller I Hive?

generellt skapas interna tabeller i Hive. Men för vissa scenarier kan ett externt bord vara till hjälp. Dessa är:

  1. när data placeras utanför Hive eller HDFS plats, skapa en extern tabell hjälper som andra verktyg som kan använda tabellen, placerar inget lås på dessa filer.
  2. en extern tabell kan skapas när data inte finns i någon befintlig tabell (dvs. med select-satsen).
  3. den externa tabellen måste skapas om vi inte vill att Hive ska äga data eller ha andra datakontroller.
  4. den externa tabellen förhindrar också oavsiktlig förlust av data, eftersom basdata inte raderas när du släpper en extern tabell. Detta fungerar som en säkerhetsfunktion i bikupan. Detta är anledningen till att TRUNCATE inte heller fungerar för externa tabeller.

funktioner

det finns vissa funktioner i Hive som endast är tillgängliga för antingen hanterade eller externa tabeller. Dessa är:

  • kommandon som arkiv/UNARCHIVE/TRUNCATE/CONCATENATE / MERGE fungerar bara för interna tabeller.
  • syran fungerar bara för hanterade eller interna tabeller.
  • DROP-klausulen tar bara bort metadata för externa tabeller. Den tar dock bort underliggande data även för interna tabeller.
  • cachning av frågeresultat är endast möjlig för hanterade tabeller.
  • RELY-begränsning är endast tillåten på externa tabeller.
  • vissa funktioner i materialiserade vyer fungerar bara för hanterade tabeller.

slutsats

i denna handledning såg vi när och hur man använder externa tabeller i Hive. Höjdpunkterna i denna handledning är att skapa en bakgrund på andra tabeller än hanterade och analysera data utanför bikupan.

Rekommenderade artiklar

detta är en guide till extern tabell I Hive. Här diskuterar vi att införa externa tabeller i kupan och funktioner, och frågor. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer –

  1. partitionering I Hive
  2. Map gå med I Hive
  3. Hive datatyper
  4. Hive Installation
  5. Guide till Hive Cluster av
0 aktier

Lämna ett svar

Din e-postadress kommer inte publiceras.