Tabelele, partițiile și gălețile sunt părțile componente ale modelării datelor Hive.
Ce este partițiile?
Hive Partitions este o modalitate de a organiza tabelele în partiții prin împărțirea tabelelor în diferite părți pe baza cheilor de partiție.
Partiția este utilă atunci când tabelul are una sau mai multe chei de partiție. Cheile de partiție sunt elemente de bază pentru determinarea modului în care datele sunt stocate în tabel.
De exemplu : -
„Clientul care are câteva date de comerț electronic care aparțin operațiunilor din India în care fiecare stat (38 de state) menționează operațiunile în ansamblu. Dacă luăm coloana de stat ca cheie de partiție și efectuăm partiții pe acele date din India în ansamblu, putem pentru a obține Numărul de partiții (38 partiții) care este egal cu numărul de state (38) prezente în India, astfel încât fiecare stat de date poate fi vizualizat separat în tabelele de partiții.
Exemplu de fragment de cod pentru partiții
- Crearea tabelului toate stările
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
- Se încarcă datele în tabelul creat toate stările
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Crearea tabelei de partiții
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
-
Pentru partiție trebuie să setăm această proprietate
set hive.exec.dynamic.partition.mode=nonstrict
- Se încarcă datele în tabelul de partiții
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
- Procesarea efectivă și formarea tabelelor de partiții pe baza stării ca cheie de partiție
- Vor exista 38 de ieșiri de partiție în stocarea HDFS cu numele fișierului ca nume de stare. Vom verifica acest lucru în acest pas
Următoarele capturi de ecran vă vor arăta execuția codului menționat mai sus
Din codul de mai sus, facem următoarele lucruri
- Crearea tabelului toate stările cu 3 nume de coloane, cum ar fi statul, districtul și înscrierea
- Se încarcă datele în tabel toate stările
- Crearea tabelei de partiții cu starea ca cheie de partiție
- În acest pas Setarea modului de partiție ca non-strict (Acest mod va activa modul de partiție dinamic)
- Se încarcă datele în partiția tablestate_part
- Procesarea efectivă și formarea tabelelor de partiții pe baza stării ca cheie de partiție
- Există 38 de ieșiri de partiție în stocarea HDFS cu numele fișierului ca nume de stare. Vom verifica acest lucru în acest pas. În acest pas, vedem cele 38 de ieșiri de partiție în HDFS
Ce este Găleatele?
Găleatele în stup sunt folosite pentru separarea datelor tabelului stupului în mai multe fișiere sau directoare. este utilizat pentru interogări eficiente.
- Datele, adică prezente în acele partiții, pot fi împărțite în continuare în Cupe
- Împărțirea se realizează pe baza Hash-ului anumitor coloane pe care le-am selectat în tabel.
- Găleatele folosesc o formă de algoritm Hashing în partea din spate pentru a citi fiecare înregistrare și a o plasa în găleți
- În Hive, trebuie să activăm găleți folosind set.hive.enforce.bucketing = true;
Pasul 1) Crearea cupei așa cum se arată mai jos.
Din captura de ecran de mai sus
- Creăm sample_bucket cu nume de coloane precum prenumele, job_id, departamentul, salariul și țara
- Creăm 4 găleți dincolo.
- Odată ce datele sunt încărcate automat, plasați datele în 4 cupe
Pasul 2) Încărcarea datelor în cupa de probă pentru tabel
Presupunând că „tabelul angajaților” deja creat în sistemul Hive. În acest pas, vom vedea încărcarea datelor din tabelul angajaților în cupa de probă a tabelului.
Înainte de a începe să mutăm datele angajaților în cupe, asigurați-vă că acestea constau din nume de coloane precum prenumele, job_id, departamentul, salariul și țara.
Aici încărcăm date în cupa eșantion din tabelul angajaților.
Pasul 3) Afișarea a 4 găleți create la Pasul 1
Din captura de ecran de mai sus, putem vedea că datele din tabelul angajaților sunt transferate în 4 găleți create la pasul 1.