Hive partíciók & Vödrök példával

Tartalomjegyzék:

Anonim

A táblák, a partíciók és a vödrök a Hive adatmodellezés részei.

Mi az a partíció?

A Hive Partitions segítségével a táblákat partíciókba rendezheti azáltal, hogy a táblákat partíciókulcsok alapján különböző részekre osztja.

A partíció akkor hasznos, ha a táblának egy vagy több partíciókulcsa van. A partíciókulcsok alapvető elemek az adatok tárolásának a táblázatban történő meghatározásához.

Például : -

"Az ügyfél olyan e-kereskedelmi adatokkal rendelkezik, amelyek olyan indiai műveletekhez tartoznak, amelyekben az egyes államok (38 állam) műveletei összességében szerepelnek. Ha az állam oszlopot partíciós kulcsnak vesszük, és partíciókat hajtunk végre ezen India adatok egészén, akkor képesek vagyunk a partíciók száma (38 partíció), amely megegyezik az Indiában lévő államok számával (38), így az egyes állapotadatok külön-külön megtekinthetők a partíciós táblákban.

Minta kódrészlet partíciókhoz

  1. Az összes állapot létrehozása
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Adatok betöltése az összes állapotba a létrehozott táblába
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. A partíciós tábla létrehozása
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. A partícióhoz meg kell adnunk ezt a tulajdonságot

    set hive.exec.dynamic.partition.mode=nonstrict
  2. Adatok betöltése a partíciós táblába
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
  1. A partíciós táblák tényleges feldolgozása és kialakítása állapot, mint partíciós kulcs alapján
  2. A HDFS-tárolóban 38 partíciókimenet lesz, a fájlnév állapotnév. Ebben a lépésben ellenőrizzük ezt

A következő képernyőképeken a fenti kód végrehajtása látható

A fenti kód alapján a következő dolgokat tesszük

  1. Az összes állapot létrehozása 3 oszlopnévvel, például állam, körzet és beiratkozás
  2. Adatok betöltése az összes állam táblázatába
  3. Partíciós tábla létrehozása partíció kulccsal
  4. Ebben a lépésben A partíciós mód beállítása nem szigorúnak (Ez a mód aktiválja a dinamikus partíció módot)
  5. Adatok betöltése a tablestate_part partícióra
  6. A partíciós táblák tényleges feldolgozása és kialakítása állapot, mint partíciós kulcs alapján
  7. A HDFS tárolóban 38 partíciókimenet lesz, a fájlnév állapotnév. Ebben a lépésben ellenőrizzük ezt. Ebben a lépésben a 38 partíciókimenetet látjuk a HDFS-ben

Mi az a vödör?

A kaptárban lévő vödrök a kaptár táblázatok adatainak több fájlba vagy könyvtárba történő szétválasztására szolgálnak. hatékony lekérdezésre használják.

  • Az ilyen partíciókban lévő adatok további csoportokra oszthatók
  • A felosztást a táblázatban kiválasztott egyes oszlopok Hash alapján végezzük.
  • A vödrök valamilyen Hashing algoritmust használnak a végén, hogy minden rekordot elolvassanak és vödrökbe helyezzék
  • A Hive-ban engedélyeznünk kell a vödröket a set.hive.enforce.bucketing = true;

1. lépés: Készítse el a vödröt az alábbiak szerint.

A fenti képernyőről

  • Létrehozunk egy minta_vödröt oszlopnevekkel, például keresztnév, job_id, osztály, fizetés és ország
  • Jelenleg 4 vödröt hozunk létre.
  • Miután az adatok automatikusan betöltődtek, helyezze az adatokat 4 csoportba

2. lépés: Adatok betöltése a táblázat mintavödrébe

Feltételezve, hogy az "Alkalmazottak tábla" már létrejött a Hive rendszerben. Ebben a lépésben látni fogjuk, hogy az alkalmazottak tábla adatai betöltődnek a táblázat mintacsoportjába.

Mielőtt elkezdenénk áthelyezni az alkalmazottak adatait csoportokba, győződjön meg arról, hogy azok oszlopnevekből állnak, mint például keresztnév, job_id, osztály, fizetés és ország.

Itt töltjük be az adatokat az alkalmazottak táblázatának mintacsoportjába.

3. lépés: Az 1. lépésben létrehozott 4 vödör megjelenítése

A fenti képernyőkép alapján láthatjuk, hogy az alkalmazottak táblázat adatai átkerülnek az 1. lépésben létrehozott 4 vödörbe.