Hive-osiot & Kauhat esimerkin kanssa

Sisällysluettelo:

Anonim

Taulukot, osiot ja kauhat ovat Hive-tietomallinnuksen osia.

Mikä on osiot?

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

Osio on hyödyllinen, kun taulukossa on yksi tai useampi osioavain. Osioavaimet ovat peruselementtejä sen määrittämiseksi, miten tiedot tallennetaan taulukkoon.

Esimerkiksi : -

"Asiakkaalla on joitain verkkokaupan tietoja, jotka kuuluvat Intian toimintoihin, joissa kukin osavaltioiden (38 osavaltioiden) toiminta mainitaan kokonaisuudessaan. Jos otamme osavaltiosarakkeen osioavaimeksi ja suoritamme osiot kyseisille Intian tiedoille, voimme saadaksesi osioiden lukumäärän (38 osiota), joka on yhtä suuri kuin Intiassa olevien osavaltioiden lukumäärä (38), niin että kutakin osastotietoa voidaan tarkastella erikseen osiotaulukoissa.

Esimerkkikoodinpätkä osioille

  1. Taulukon kaikkien tilojen luominen
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Ladataan tietoja luotuun taulukkoon kaikissa tiloissa
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. Osiointia varten meidän on määritettävä 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. Osiotaulukoiden todellinen käsittely ja muodostaminen tilan perusteella osioavaimena
  2. HDFS-tallennustilassa on 38 osiolähtöä, joiden tiedostonimi on valtion nimi. Tarkistamme tämän tässä vaiheessa

Seuraavat näyttökuvat näyttävät u yllä mainitun koodin suorittamisen

Yllä olevan koodin perusteella teemme seuraavia asioita

  1. Luodaan kaikki tilat, joissa on 3 sarakkeen nimeä, kuten osavaltio, piiri ja ilmoittautuminen
  2. Ladataan tietoja taulukoihin kaikissa tiloissa
  3. Luotu osiotaulukko, jossa osioavain on tila
  4. Tässä vaiheessa osiotilan asettaminen ei-tiukkaksi (tämä tila aktivoi dynaamisen osiotilan)
  5. Ladataan tietoja osioon tablestate_part
  6. Osiotaulukoiden todellinen käsittely ja muodostaminen tilan perusteella osioavaimena
  7. HDFS-muistissa on 38 osiolähtöä, joiden tiedostonimi on valtion nimi. Tarkistamme tämän tässä vaiheessa. Tässä vaiheessa näemme 38 osioulostuloa HDFS: ssä

Mikä on kauhat?

Hive-kauhoja käytetään jakamaan pesän taulukon tiedot useisiin tiedostoihin tai hakemistoihin. sitä käytetään tehokkaaseen kyselyyn.

  • Kyseisissä osioissa olevat tiedot voidaan jakaa edelleen ryhmiin
  • Jako suoritetaan tiettyjen taulukossa valitsemiesi sarakkeiden Hashin perusteella.
  • Kauhat käyttävät jonkinlaista Hashing-algoritmia takapäässä lukemaan jokaisen tietueen ja asettamaan sen kauhoihin
  • Hivessa meidän on sallittava ryhmät käyttämällä set.hive.enforce.bucketing = true;

Vaihe 1) Luo kauha alla olevan kuvan mukaisesti.

Yllä olevasta kuvakaappauksesta

  • Luomme esimerkkikopion sarakkeiden nimillä, kuten etunimi, työn_numero, osasto, palkka ja maa
  • Luomme 4 kauhaa täältä.
  • Kun tiedot ladataan automaattisesti, aseta tiedot neljään ryhmään

Vaihe 2) Ladataan tietoja taulukkoon

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

Ennen kuin aloitamme työntekijöiden tietojen siirtämisen ryhmiin, varmista, että ne koostuvat sarakkeiden nimistä, kuten etunimi, työn_numero, osasto, palkka ja maa.

Tässä ladataan tietoja työntekijöiden taulukon näytepakettiin.

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

Edellä olevasta kuvakaappauksesta voimme nähdä, että työntekijät-taulukon tiedot siirretään neljään vaiheessa 1 luotuun ryhmään.