Tarude vaheseinad & Näidisega ämbrid

Lang L: none (table-of-contents):

Anonim

Tabelid, vaheseinad ja ämbrid on Hive'i andmete modelleerimise osad.

Mis on vaheseinad?

Hive Partitions on viis, kuidas korraldada tabelid partitsioonideks, jagades tabelid partitsiooniklahvide põhjal erinevateks osadeks.

Jaotisest on abi, kui tabelis on üks või mitu jaotusvõtit. Jaotusvõtmed on põhielemendid andmete tabelisse salvestamise määramiseks.

Näiteks : -

"Kliendil on mõned e-kaubanduse andmed, mis kuuluvad India toimingutesse, kus kõiki osariigi (38 osariiki) toiminguid mainitakse tervikuna. Kui võtame osariigi veeru jaotusvõtmena ja sooritame nende India andmete tervikuna sektsioone, saame saada partitsioonide arv (38 partitsiooni), mis on võrdne Indias olevate osariikide arvuga (38). Nii et kõiki osariigi andmeid saab vaadata partitsioonitabelites eraldi.

Partitsioonide koodilõigu näidis

  1. Tabeli loomine kõik olekud
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Andmete laadimine loodud tabelisse kõik olekud
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Jaotustabeli loomine
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Jaotamiseks peame selle omaduse määrama

    set hive.exec.dynamic.partition.mode=nonstrict
  2. Andmete laadimine jaotustabelisse
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
  1. Tegelik töötlemine ja partitsioonitabelite moodustamine partitsiooni võtmena oleku põhjal
  2. HDFS-i salvestusruumis on 38 sektsiooni väljundit, mille olekunimeks on failinimi. Kontrollime seda selles etapis

Järgmised ekraanipildid näitavad eeltoodud koodi täitmist

Ülaltoodud koodist lähtudes teeme järgmisi asju

  1. Kõigi kolme veerunimega oleku, näiteks osariigi, linnaosa ja registreerimise, tabeli loomine
  2. Andmete laadimine kõigi olekute tabelisse
  3. Jaotisetabeli loomine olekuga partitsioonivõti
  4. Selles etapis sektsiooni režiimi määramine mittek rangeks (see režiim aktiveerib dünaamilise sektsiooni režiimi)
  5. Andmete laadimine partitsioonile tablestate_part
  6. Tegelik töötlemine ja partitsioonitabelite moodustamine partitsiooni võtmena oleku põhjal
  7. HDFS-i salvestusruumis on 38 sektsiooni väljundit, mille oleku nimi on failinimi. Kontrollime seda selles etapis. Selles etapis näeme HDFS-is 38 partitsiooni väljundit

Mis on ämbrid?

Tarus olevaid koppe kasutatakse taru tabeli andmete eraldamiseks mitmeks failiks või kataloogiks. seda kasutatakse tõhusaks päringuks.

  • Selles partitsioonis olevaid andmeid saab jagada ämbriteks
  • Jagamine toimub tabelis valitud veergude põhjal.
  • Ämbrid kasutavad tagumise otsa mingisugust räsimisalgoritmi, et iga kirje lugeda ja ämbritesse paigutada
  • Tarus peame lubama ämbrid, kasutades set.hive.enforce.bucketing = true;

Samm 1) Kopa loomine, nagu allpool näidatud.

Ülaltoodud ekraanipildilt

  • Loome näidiskopi veergude nimedega nagu eesnimi, töökoha ID, osakond, palk ja riik
  • Loome 4 ämbrit üle selle.
  • Kui andmed on automaatselt laaditud, asetage andmed 4 ämbrisse

2. samm. Andmete laadimine tabeli näidisämbrisse

Eeldades, et "Töötajate tabel" on Hive'i süsteemis juba loodud. Selles etapis näeme töötajate tabeli andmete laadimist tabeli prooviruumi.

Enne kui hakkame töötajate andmeid ämbritesse teisaldama, veenduge, et need koosneksid veerunimedest nagu eesnimi, töö_id, osakond, palk ja riik.

Siin laadime andmed töötajate tabelist proovipakki.

Samm 3) Esimeses etapis loodud 4 kopa kuvamine

Ülaltoodud ekraanipildilt näeme, et töötajate tabeli andmed kantakse üle 1. sammus loodud 4 ämbrisse.