Úľové oddiely & Vedrá s príkladom

Obsah:

Anonim

Tabuľky, oddiely a segmenty sú súčasťou modelovania údajov v úli.

Čo sú to oddiely?

Hive Partitions je spôsob organizovania tabuliek do oddielov rozdelením tabuliek do rôznych častí na základe kľúčov oddielov.

Oddiel je užitočný, keď má stôl jeden alebo viac kľúčov oddielu. Kľúče oddielov sú základnými prvkami určujúcimi spôsob ukladania údajov do tabuľky.

Napríklad : -

„Klient, ktorý má niektoré údaje elektronického obchodu, ktoré patria k operáciám v Indii, v ktorých sú operácie každého štátu (38 štátov) uvedené ako celok. Ak vezmeme stĺpec stavu ako kľúč oddielu a vykonáme oddiely na týchto údajoch z Indie ako celku, môžeme získať Počet oddielov (38 oddielov), ktorý sa rovná počtu štátov (38) prítomných v Indii. To znamená, že údaje o každom štáte je možné zobraziť osobitne v tabuľkách oddielov.

Vzorový úryvok kódu pre oddiely

  1. Vytvorenie tabuľky všetkých štátov
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Načítanie dát do vytvorenej tabuľky všetky stavy
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Vytvorenie tabuľky oddielov
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Pre oblasť musíme nastaviť túto vlastnosť

    set hive.exec.dynamic.partition.mode=nonstrict
  2. Načítavajú sa údaje do tabuľky oddielov
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
  1. Skutočné spracovanie a tvorba tabuliek oddielov na základe stavu ako kľúča oddielu
  2. V úložisku HDFS bude 38 výstupov oddielov s názvom súboru ako názvom štátu. Skontrolujeme to v tomto kroku

Nasledujúce snímky obrazovky zobrazia vykonanie vyššie uvedeného kódu

Z vyššie uvedeného kódu robíme nasledujúce veci

  1. Vytvorenie tabuľky všetkých štátov s 3 názvami stĺpcov, ako je štát, okres a zápis
  2. Načítanie údajov do tabuľky všetkých stavov
  3. Vytvorenie tabuľky oddielov so stavom ako kľúčom oddielu
  4. V tomto kroku Nastavenie režimu oddielu ako neprípustného (Tento režim aktivuje režim dynamického oddielu)
  5. Načítavajú sa údaje do oddielu tablestate_part
  6. Skutočné spracovanie a tvorba tabuliek oddielov na základe stavu ako kľúča oddielu
  7. V úložisku HDFS bude 38 výstupov oddielov s názvom súboru ako názvom štátu. Skontrolujeme to v tomto kroku. V tomto kroku vidíme 38 výstupov oddielov v HDFS

Čo sú vedrá?

Vedierka v úli sa používajú na segregáciu údajov tabuľky v úli do viacerých súborov alebo adresárov. používa sa na efektívne dopytovanie.

  • Údaje, tj. Prítomné v týchto oddieloch, je možné rozdeliť ďalej na segmenty
  • Delenie sa vykonáva na základe hašovania jednotlivých stĺpcov, ktoré sme vybrali v tabuľke.
  • Vedierka používajú určitú formu hashovacieho algoritmu na konci, aby prečítali každý záznam a umiestnili ho do vedier
  • V Hive musíme povoliť segmenty pomocou set.hive.enforce.bucketing = true;

Krok 1) Vytvorenie segmentu, ako je uvedené nižšie.

Z vyššie uvedenej snímky obrazovky

  • Vytvárame sample_bucket s názvami stĺpcov ako first_name, job_id, department, plate and country
  • Vytvárame 4 vedrá nadol.
  • Po automatickom načítaní údajov ich vložte do 4 segmentov

Krok 2) Načítanie údajov do vedra so vzorkou tabuľky

Za predpokladu, že "Tabuľka zamestnancov" je už v systéme Hive vytvorená. V tomto kroku uvidíme načítanie tabuľky Údaje od zamestnancov do vzorového vedra tabuľky.

Predtým, ako začneme presúvať údaje zamestnancov do segmentov, uistite sa, že pozostávajú z názvov stĺpcov, napríklad first_name, job_id, department, plate and country.

Tu načítame údaje do vzorového vedra z tabuľky zamestnancov.

Krok 3) Zobrazenie 4 segmentov, ktoré boli vytvorené v kroku 1

Z vyššie uvedeného screenshotu vidíme, že údaje z tabuľky zamestnancov sa prenášajú do 4 segmentov vytvorených v kroku 1.