Inleiding tot externe tabel in Bijenkorf
een externe tabel is een tabel die het schema of de metadata van externe bestanden beschrijft. Fundamenteel zijn er twee soorten tabellen in HIVE-beheerde of interne tabellen en externe tabellen. Het primaire doel van het definiëren van een externe tabel is het openen en uitvoeren van query ‘ s op gegevens die zijn opgeslagen buiten de Bijenkorf. Deze gegevensbestanden kunnen worden opgeslagen in andere tools zoals Pig, Azure storage Volumes (ASV) of een externe HDFS-locatie. Hive gaat ervan uit dat het geen eigenaar is van de gegevens voor externe tabellen, en dus hoeft het de gegevens niet te beheren zoals in beheerde of interne tabellen. Ook voor externe tabellen worden gegevens niet verwijderd bij het laten vallen van de tabel.
werken en maken van externe tabellen in Hive
standaard wordt in Hive table directory gemaakt onder de database directory. De uitzondering is de standaarddatabase. De locatie user/hive / warehouse heeft geen map, zodat de standaard databasetabellen de map direct onder deze locatie hebben aangemaakt. Het wordt aanbevolen om externe tabellen te maken als we de standaardlocatie niet willen gebruiken.
Start uw gratis cursus Data Science
Hadoop, Data Science, Statistics & andere
An external tabel wordt over het algemeen gebruikt wanneer de gegevens zich buiten de korf bevinden.
laten we een externe tabel maken met behulp van het trefwoord “extern” met het onderstaande commando.
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’;
uitvoer:
een externe tabel kan ook worden gemaakt door het schema en de gegevens van een bestaande tabel te kopiëren, met onderstaande opdracht:
CREATE EXTERNAL TABLE if not exists students_v2 LIKE students
Location ‘/data/students_details’;
als we het externe sleutelwoord weglaten, dan zal de nieuwe tabel die wordt aangemaakt extern zijn als de basistabel extern is. Evenzo, als de basistabel wordt beheerd met het externe trefwoord, de nieuwe tabel gemaakt zal extern zijn.
om het type tabel te identificeren dat is gemaakt, kan de beschrijf-opgemaakte clausule worden gebruikt. Aan het einde van de gedetailleerde tabel beschrijving output tabel type zal ofwel worden “Managed table” of “External table”.
gepartitioneerde tabellen helpen bij het opdelen van de gegevens in logische subsegmenten of partities, waardoor de prestaties van de query efficiënter worden. Een gepartitioneerde tabel kan worden gemaakt zoals hieronder te zien.
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’
uitvoer:
er kunnen gevallen zijn waarin partitie of structuur van een externe tabel wordt gewijzigd, dan kan met behulp van dit commando de metagegevens informatie worden ververst:
MSCK REPAIR TABLE external_table_name
1. Partitioned external table
tijdens het aanmaken van een niet-partitioned external table is de LOCATION clause vereist. Maar voor een gepartitioneerde externe tabel is het niet nodig. ALTER TABLE instructie is vereist om partities toe te voegen samen met de locatie clausule.
ALTER TABLE students ADD PARTITION (class =10)
Location ‘here://master_server/data/log_messages/2012/01/02’;
uit Bijenkorf v0. 8.0 verder, meerdere partities kunnen worden toegevoegd in dezelfde query. Ook kan de locatie voor een partitie worden gewijzigd door onderstaande query, zonder de gegevens van de oude locatie te verplaatsen of te verwijderen.
ALTER TABLE students_v2 partition( class = 10)
Set location ‘s2n://buckets/students_v2/10’;
om een partitie te laten vallen, wordt onderstaande query gebruikt:
ALTER TABLE students DROP IF EXISTS PARTITION (class = 12);
Dit commando verwijdert de gegevens en metadata van de partitie voor beheerde of interne tabellen. Voor externe tabellen worden gegevens echter niet verwijderd.
2. Bewerkingen op de externe tabel
de bewerkingen zoals selecteren, JOINS, volgorde op, groep op, CLUSTER op, en anderen worden geïmplementeerd op externe tabellen. Externe tabellen kunnen gemakkelijk worden samengevoegd met andere tabellen om complexe gegevensmanipulaties uit te voeren. Concepten van partitionering, bucketing en indexering worden ook toegepast op externe tabellen op dezelfde manier als voor beheerde of interne tabellen. Alle configuratie-eigenschappen in Hive zijn ook van toepassing op externe tabellen. Bijvoorbeeld door skip in te stellen.header.lijn. Count = 1, We kunnen de header-rij uit het gegevensbestand overslaan.
alle bestandsformaten zoals ORC, AVRO, TEXTFILE, SEQUENCE FILE of PARQUET worden ondersteund voor de interne en externe tabellen van Hive. Bij het maken van een tabel wordt positionele toewijzing gebruikt om gegevens in de kolom in te voegen, en die volgorde wordt gehandhaafd.
Datatypes in externe tabellen: in externe tabellen worden de collectiegegevenstypen ook ondersteund samen met primitieve gegevenstypen (zoals integer, string, karakter). Het is noodzakelijk om de scheidingstekens van de elementen van het verzamelen van gegevens types (zoals een array, struct, en kaart) te specificeren.
Wanneer moeten externe tabellen in Bijenkorf worden gebruikt?
over het algemeen worden interne tabellen gemaakt in Hive. Maar voor bepaalde scenario ‘ s kan een externe tabel nuttig zijn. Deze zijn:
- wanneer gegevens buiten de Hive of HDFS locatie worden geplaatst, helpt het creëren van een externe tabel als de andere tools die de tabel kunnen gebruiken, plaatst geen vergrendeling op deze bestanden.
- een externe tabel kan worden gemaakt wanneer er geen gegevens aanwezig zijn in een bestaande tabel (d.w.z. met behulp van de Select-clausule).
- de externe tabel moet aangemaakt worden als we niet willen dat Hive de gegevens bezit of andere gegevenscontroles heeft.
- de externe tabel voorkomt ook toevallig verlies van gegevens, omdat bij het laten vallen van een externe tabel de basisgegevens niet worden verwijderd. Dit fungeert als een beveiligingsfunctie in de Hive. Dit is de reden waarom afkappen ook niet werkt voor externe tabellen.
Features
Er zijn bepaalde features in Hive die alleen beschikbaar zijn voor beheerde of externe tabellen. Dit zijn:
- opdrachten zoals ARCHIVE/UNARCHIVE/TRUNCATE/CONCATENATE / MERGE werken alleen voor interne tabellen.
- het zuur werkt alleen voor beheerde of interne tabellen.
- DROP-clausule verwijdert alleen metadata voor externe tabellen. Echter, het verwijdert onderliggende gegevens ook voor interne tabellen.
- Query resultaten caching is alleen mogelijk voor beheerde tabellen.
- vertrouwen beperking is alleen toegestaan op externe tabellen.
- sommige functies van gematerialiseerde weergaven werken alleen voor beheerde tabellen.
conclusie
in deze tutorial zagen we wanneer en hoe externe tabellen te gebruiken in korf. De hoogtepunten van deze tutorial zijn het creëren van een achtergrond op de tabellen anders dan beheerd en analyseren van gegevens buiten de Bijenkorf.
Aanbevolen artikelen
Dit is een leidraad voor externe tabel in Bijenkorf. Hier bespreken we de introductie van externe tabellen in de korf en de functies, en Queries. U kunt ook door onze andere gerelateerde artikelen gaan voor meer informatie –
- partitioneren in Hive
- Map Join in Hive
- Hive Data Types
- Hive installatie
- Gids Voor Hive Cluster door
0 Shares