Formati datoteka u velikim podacima: kratki edukacijski program

Formati datoteka u velikim podacima: kratki edukacijski program
Božanstvo vremena od Remarina

Momčad Mail.ru Cloud rješenja ponude prijevod članka inženjer Rahul Bhatia iz Clairvoyanta o tome koji formati datoteka postoje u big data, koje su najčešće karakteristike Hadoop formata i koji je format bolje koristiti.

Zašto su potrebni različiti formati datoteka?

Veliko usko grlo performansi za HDFS-omogućene aplikacije kao što su MapReduce i Spark je vrijeme potrebno za pretraživanje, čitanje i pisanje podataka. Ovi problemi su složeniji poteškoćama u upravljanju velikim skupovima podataka ako imamo shemu koja se razvija umjesto fiksne ili ako postoje neka ograničenja pohrane.

Obrada velikih podataka povećava opterećenje podsustava za pohranu - Hadoop redundantno pohranjuje podatke kako bi postigao toleranciju na pogreške. Osim diskova, učitava se procesor, mreža, ulazno/izlazni sustav i tako dalje. Kako raste količina podataka, tako rastu i troškovi njihove obrade i pohrane.

Razni formati datoteka u Hadoop izmišljen za rješavanje upravo ovih problema. Odabir odgovarajućeg formata datoteke može pružiti neke značajne prednosti:

  1. Brže vrijeme čitanja.
  2. Brže vrijeme snimanja.
  3. Dijeljene datoteke.
  4. Podrška za evoluciju sheme.
  5. Proširena podrška za kompresiju.

Neki formati datoteka namijenjeni su za opću upotrebu, drugi za specifičniju upotrebu, a neki su dizajnirani da zadovolje specifične karakteristike podataka. Tako da je izbor zaista velik.

Avro format datoteke

za serijalizacija podataka Avro se široko koristi - it na temelju niza, odnosno string format za pohranu podataka u Hadoopu. Pohranjuje shemu u JSON formatu, što olakšava čitanje i tumačenje bilo kojim programom. Sami podaci su u binarnom formatu, kompaktni i učinkoviti.

Avrov sustav serijalizacije jezično je neutralan. Datoteke se mogu obrađivati ​​na raznim jezicima, trenutno C, C++, C#, Java, Python i Ruby.

Ključna značajka Avra ​​je njegova robusna podrška za podatkovne sheme koje se mijenjaju tijekom vremena, odnosno razvijaju. Avro razumije promjene sheme—brisanje, dodavanje ili mijenjanje polja.

Avro podržava različite podatkovne strukture. Na primjer, možete stvoriti zapis koji sadrži niz, nabrojani tip i podzapis.

Formati datoteka u velikim podacima: kratki edukacijski program
Ovaj je format idealan za pisanje u zonu slijetanja (prijelaza) podatkovnog jezera (podatkovno jezero, ili podatkovno jezero - zbirka instanci za pohranu različitih vrsta podataka uz izravne izvore podataka).

Dakle, ovaj je format najprikladniji za pisanje u zonu slijetanja podatkovnog jezera iz sljedećih razloga:

  1. Podaci iz ove zone obično se čitaju u cijelosti za daljnju obradu od strane nizvodnih sustava - a format temeljen na retku je u ovom slučaju učinkovitiji.
  2. Nizvodni sustavi mogu lako dohvatiti tablice shema iz datoteka—nema potrebe za pohranjivanjem shema odvojeno u vanjsku meta pohranu.
  3. Svaka promjena originalne sheme se lako obrađuje (evolucija sheme).

Format datoteke za parket

Parquet je format datoteke otvorenog koda za Hadoop koji pohranjuje ugniježđene strukture podataka u ravnom stupčastom formatu.

U usporedbi s tradicionalnim rednim pristupom, parket je učinkovitiji u pogledu skladištenja i performansi.

Ovo je posebno korisno za upite koji čitaju određene stupce iz široke (mnogo stupaca) tablice. Zahvaljujući formatu datoteke, čitaju se samo potrebni stupci, tako da je I/O sveden na minimum.

Mala digresija i objašnjenje: Da bismo bolje razumjeli format datoteke Parquet u Hadoopu, pogledajmo što je to format temeljen na stupcima - tj. stupac. Ovaj format pohranjuje slične vrijednosti za svaki stupac zajedno.

Na primjer, zapis uključuje polja ID, Ime i Odjel. U ovom slučaju, sve vrijednosti stupca ID-a bit će pohranjene zajedno, kao i vrijednosti stupca Naziv, i tako dalje. Tablica će izgledati otprilike ovako:

ID
Ime i Prezime
odjel

1
emp1
d1

2
emp2
d2

3
emp3
d3

U formatu niza, podaci će biti spremljeni na sljedeći način:

1
emp1
d1
2
emp2
d2
3
emp3
d3

U stupčastom formatu datoteke isti će se podaci spremiti ovako:

1
2
3
emp1
emp2
emp3
d1
d2
d3

Stupčasti format je učinkovitiji kada trebate postaviti upit za više stupaca iz tablice. Pročitat će samo potrebne stupce jer su susjedni. Na taj su način I/O operacije svedene na minimum.

Na primjer, potreban vam je samo stupac NAME. U string format Svaki zapis u skupu podataka treba učitati, raščlaniti po polju, a zatim izdvojiti podatke NAME. Format stupca omogućuje vam da se spustite izravno na stupac Naziv jer su sve vrijednosti za taj stupac pohranjene zajedno. Ne morate skenirati cijelu snimku.

Stoga, stupčasti format poboljšava izvedbu upita jer zahtijeva manje vremena traženja da bi se došlo do potrebnih stupaca i smanjuje broj I/O operacija jer se čitaju samo željeni stupci.

Jedna od jedinstvenih značajki parket je da u ovom formatu može pohranjuju podatke s ugniježđenim strukturama. To znači da se u datoteci Parquet čak i ugniježđena polja mogu čitati pojedinačno bez potrebe za čitanjem svih polja u ugniježđenoj strukturi. Parquet koristi algoritam usitnjavanja i sastavljanja za pohranjivanje ugniježđenih struktura.

Formati datoteka u velikim podacima: kratki edukacijski program
Da biste razumjeli format datoteke Parquet u Hadoopu, trebate znati sljedeće pojmove:

  1. Grupa nizova (row group): logična horizontalna podjela podataka u retke. Grupa redaka sastoji se od fragmenta svakog stupca u skupu podataka.
  2. Fragment stupca (dio stupca): fragment određenog stupca. Ti fragmenti stupaca žive u određenoj grupi redaka i zajamčeno su susjedni u datoteci.
  3. Stranica (stranica): Fragmenti stupaca podijeljeni su na stranice ispisane jedna za drugom. Stranice imaju zajednički naslov, tako da možete preskočiti nepotrebne prilikom čitanja.

Formati datoteka u velikim podacima: kratki edukacijski program
Ovdje naslov samo sadrži magični broj PAR1 (4 bajta) koji identificira datoteku kao datoteku Parket.

Podnožje kaže sljedeće:

  1. Metapodaci datoteke koji sadrže početne koordinate metapodataka svakog stupca. Prilikom čitanja prvo morate pročitati metapodatke datoteke kako biste pronašli sve fragmente stupaca koji vas zanimaju. Dijelove stupaca tada treba čitati uzastopno. Ostali metapodaci uključuju verziju formata, shemu i sve dodatne parove ključ-vrijednost.
  2. Duljina metapodataka (4 bajta).
  3. čarobni broj PAR1 (4 bajta).

ORC format datoteke

Optimizirani format datoteke red-stupac (Optimizirani stupac retka, HRV) nudi vrlo učinkovit način pohranjivanja podataka i osmišljen je kako bi prevladao ograničenja drugih formata. Pohranjuje podatke u savršeno kompaktnom obliku, omogućujući vam da preskočite nepotrebne detalje - bez potrebe za izgradnjom velikih, složenih ili ručno održavanih indeksa.

Prednosti ORC formata:

  1. Jedna datoteka je izlaz svakog zadatka, što smanjuje opterećenje na NameNode (čvor imena).
  2. Podrška za tipove podataka Hive, uključujući datum i vrijeme, decimalne i složene tipove podataka (struktura, popis, karta i unija).
  3. Istovremeno čitanje iste datoteke različitim procesima RecordReader.
  4. Mogućnost dijeljenja datoteka bez traženja markera.
  5. Procjena najveće moguće alokacije heap memorije za procese čitanja/pisanja na temelju informacija u podnožju datoteke.
  6. Metapodaci su pohranjeni u formatu binarne serijalizacije međuspremnika protokola, koji omogućuje dodavanje i uklanjanje polja.

Formati datoteka u velikim podacima: kratki edukacijski program
ORC pohranjuje zbirke nizova u jednoj datoteci, a unutar zbirke podaci o nizovima pohranjuju se u obliku stupaca.

ORC datoteka pohranjuje skupine linija koje se nazivaju pruge i prateće informacije u podnožju datoteke. Postscript na kraju datoteke sadrži parametre kompresije i veličinu komprimiranog podnožja.

Zadana veličina trake je 250 MB. Zbog tako velikih pruga, čitanje iz HDFS-a se izvodi učinkovitije: u velikim susjednim blokovima.

Podnožje datoteke bilježi popis staza u datoteci, broj redaka po stazi i vrstu podataka svakog stupca. Rezultirajuća vrijednost count, min, max i zbroj za svaki stupac je također zapisana tamo.

Podnožje trake sadrži direktorij lokacija toka.

Podaci retka koriste se prilikom skeniranja tablica.

Indeksni podaci uključuju minimalne i maksimalne vrijednosti za svaki stupac i položaj redaka u svakom stupcu. ORC indeksi koriste se samo za odabir pruga i grupa redaka, a ne za odgovaranje na upite.

Usporedba različitih formata datoteka

Avro u usporedbi s Parketom

  1. Avro je format za pohranu redaka, dok Parquet pohranjuje podatke u stupce.
  2. Parquet je prikladniji za analitičke upite, što znači da su operacije čitanja i postavljanja upita podacima mnogo učinkovitiji od pisanja.
  3. Operacije pisanja u Avru izvode se učinkovitije nego u Parquetu.
  4. Avro se zrelije bavi evolucijom sklopova. Parquet podržava samo dodavanje sheme, dok Avro podržava multifunkcionalnu evoluciju, odnosno dodavanje ili promjenu stupaca.
  5. Parquet je idealan za postavljanje upita podskupu stupaca u tablici s više stupaca. Avro je prikladan za ETL operacije gdje postavljamo upite svim stupcima.

ORC protiv parketa

  1. Parquet bolje pohranjuje ugniježđene podatke.
  2. ORC je prikladniji za predikat pushdown.
  3. ORC podržava ACID svojstva.
  4. ORC bolje sažima podatke.

Što još pročitati na temu:

  1. Analiza velikih podataka u oblaku: kako tvrtka može postati orijentirana na podatke.
  2. Skromni vodič kroz sheme baza podataka.
  3. Naš telegram kanal o digitalnoj transformaciji.

Izvor: www.habr.com

Dodajte komentar