Pesän väliseinät ja kauhat esimerkillä

Taulukot, osiot ja segmentit ovat Hiven tietomallinnuksen osia.

Mikä on Partitions?

Hive Partitions on tapa järjestää taulukoita osioihin jakamalla taulukot eri osiin osioavainten perusteella.

Osio on hyödyllinen, kun taulukossa on yksi tai useampia osioavaimia. Osioavaimet ovat peruselementtejä määritettäessä, kuinka tiedot tallennetaan taulukkoon.

Esimerkin: -

”Asiakkaalla on joitain verkkokauppatietoja, jotka kuuluvat Intian toimintoihin, joissa kukin osavaltio (38 osavaltiota) toimii kokonaisuutena. Jos otamme tilasarakkeen osioavaimeksi ja teemme osiot tälle Intian tiedolle kokonaisuutena, voimme saada osioiden lukumäärän (38 osiota), joka on yhtä suuri kuin Intiassa olevien osavaltioiden lukumäärä (38). Sellaisena, että jokaista tilatietoa voidaan tarkastella erikseen osiotaulukoissa.

Esimerkkikoodinpätkä osioille

  1. Taulukon luominen kaikki tilat
create table all states(state string, District string,Enrolments string)

row format delimited

fields terminated by ',';
  1. Ladataan tietoja luotuun taulukkoon kaikki tilat
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Osiotaulukon luominen
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Osiota varten meidän on asetettava tämä ominaisuus
    set hive.exec.dynamic.partition.mode=nonstrict
  2. Ladataan tietoja osiotaulukkoon
INSERT OVERWRITE TABLE state_part PARTITION(state)
SELECT district,enrolments,state from  allstates;
  1. Varsinainen osiotaulukoiden käsittely ja muodostaminen osioavaimen tilan perusteella
  2. HDFS-tallennustilassa on 38 osiolähtöä, joiden tiedoston nimi on tilan nimi. Tarkistamme tämän tässä vaiheessa

Seuraavat kuvakaappaukset näyttävät yllä mainitun koodin suorittamisen

Hiven väliseinät

Hiven väliseinät

Hiven väliseinät

Hiven väliseinät

Yllä olevasta koodista teemme seuraavat asiat

  1. Taulukon luominen kaikista osavaltioista, jossa on 3 sarakkeen nimeä, kuten osavaltio, piiri ja ilmoittautuminen
  2. Ladataan tietoja taulukkoon kaikki tilat
  3. Osiotaulukon luominen tilalla osioavaimena
  4. Tässä vaiheessa osiotilan asettaminen ei-tiukaksi (Tämä tila aktivoi dynaamisen osiotilan)
  5. Ladataan tietoja osioon tablestate_part
  6. Varsinainen osiotaulukoiden käsittely ja muodostaminen osioavaimen tilan perusteella
  7. HDFS-tallennustilassa on 38 osiolähtöä, joiden tiedoston nimi on tilan nimi. Tarkistamme tämän tässä vaiheessa. Tässä vaiheessa näemme 38 osion lähtöä HDFS:ssä

Mikä on Buckets?

Pesän kauhoja käytetään pesän taulukkotietojen erottamiseen useiksi tiedostoiksi tai hakemistoiksi. sitä käytetään tehokkaaseen kyselyyn.

  • Näissä osioissa olevat tiedot voidaan jakaa edelleen ämpäriin
  • Jako suoritetaan taulukosta valitsemiemme tiettyjen sarakkeiden hajautusarvon perusteella.
  • Säilöt käyttävät taustapäässä jonkinlaista hajautusalgoritmia jokaisen tietueen lukemiseen ja sijoittamiseen ämpäriin
  • Hivessä meidän on otettava ämpäri käyttöön käyttämällä set.hive.enforce.bucketing=true;

Vaihe 1) Kauhan luominen alla olevan kuvan mukaisesti.

Hive Kauhat

Yllä olevasta kuvakaappauksesta

  • Luomme sample_bucketin sarakkeiden nimillä, kuten etunimi, job_id, osasto, palkka ja maa
  • Luomme tänne 4 ämpäriä.
  • Kun tiedot ladataan automaattisesti, aseta tiedot 4 ämpäriin

Vaihe 2) Ladataan tietoja taulukon näytealueeseen

Olettaen, että "Työntekijät-taulukko" on jo luotu Hive-järjestelmässä. Tässä vaiheessa näemme työntekijöiden tiedot -taulukon lataamisen taulukon näytealueeseen.

Ennen kuin alamme siirtää työntekijöiden tietoja ryhmiin, varmista, että ne koostuvat sarakkeiden nimistä, kuten etunimi, työtunnus, osasto, palkka ja maa.

Täällä lataamme tietoja näyteämpäriin työntekijöiden taulukosta.

Hive Kauhat

Vaihe 3)Näytetään 4 vaiheessa 1 luotua ryhmää

Hive Kauhat

Yllä olevasta kuvakaappauksesta voimme nähdä, että työntekijätaulukon tiedot siirretään neljään vaiheessa 4 luotuun ämpäriin.