Tiedostomuodot big datassa: lyhyt koulutusohjelma

Tiedostomuodot big datassa: lyhyt koulutusohjelma
Weather Deity by Remarin

Joukkue Mail.ru Pilviratkaisut tarjoukset artikkelin käännös insinööri Rahul Bhatia Clairvoyantista kertoi, mitä tiedostomuotoja big datassa on, mitkä ovat Hadoop-muotojen yleisimmät ominaisuudet ja mitä formaattia on parempi käyttää.

Miksi tarvitaan erilaisia ​​tiedostomuotoja?

HDFS-yhteensopivien sovellusten, kuten MapReducen ja Sparkin, suuri suorituskyvyn pullonkaula on tiedon etsimiseen, lukemiseen ja kirjoittamiseen kuluva aika. Näitä ongelmia pahentaa suurten tietojoukkojen hallinnan vaikeus, jos meillä on kehittyvä skeema kiinteän sijasta tai jos tallennustilaa on rajoitettu.

Big datan käsittely lisää tallennusalijärjestelmän kuormitusta – Hadoop tallentaa tiedot redundanttisesti saavuttaakseen vikasietoisuuden. Levyjen lisäksi ladataan prosessori, verkko, syöttö/tulostusjärjestelmä ja niin edelleen. Tietojen määrän kasvaessa sen käsittely- ja säilytyskustannukset kasvavat.

Erilaisia ​​tiedostomuotoja Hadoop keksitty ratkaisemaan juuri nämä ongelmat. Sopivan tiedostomuodon valitseminen voi tarjota merkittäviä etuja:

  1. Nopeampi lukuaika.
  2. Nopeampi tallennusaika.
  3. Jaetut tiedostot.
  4. Tuki skeeman kehitykselle.
  5. Laajennettu pakkaustuki.

Jotkut tiedostomuodot on tarkoitettu yleiseen käyttöön, toiset tarkempiin käyttötarkoituksiin ja jotkut on suunniteltu vastaamaan tiettyjä dataominaisuuksia. Valikoima on siis todella suuri.

Avro tiedostomuoto

varten tietojen serialisointi Avro on laajalti käytetty - se merkkijonopohjainen, eli merkkijonotietojen tallennusmuoto Hadoopissa. Se tallentaa skeeman JSON-muodossa, joten se on helppo lukea ja tulkita millä tahansa ohjelmalla. Itse tiedot ovat binäärimuodossa, kompakteja ja tehokkaita.

Avron serialisointijärjestelmä on kielineutraali. Tiedostoja voidaan käsitellä useilla eri kielillä, tällä hetkellä C, C++, C#, Java, Python ja Ruby.

Avron keskeinen ominaisuus on sen vankka tuki dataskeemoille, jotka muuttuvat ajan myötä eli kehittyvät. Avro ymmärtää skeeman muutokset – kenttien poistamisen, lisäämisen tai muuttamisen.

Avro tukee erilaisia ​​tietorakenteita. Voit esimerkiksi luoda tietueen, joka sisältää taulukon, luetteloidun tyypin ja alitietueen.

Tiedostomuodot big datassa: lyhyt koulutusohjelma
Tämä muoto on ihanteellinen kirjoittamiseen datajärven laskeutumis- (siirtymä)vyöhykkeelle (datajärvi, tai data Lake - kokoelma esiintymiä erityyppisten tietojen tallentamiseen suoraan tietolähteiden lisäksi).

Joten tämä muoto sopii parhaiten datajärven laskeutumisvyöhykkeelle kirjoittamiseen seuraavista syistä:

  1. Tämän vyöhykkeen tiedot luetaan yleensä kokonaisuudessaan jatkokäsittelyä varten alavirran järjestelmissä - ja rivipohjainen muoto on tässä tapauksessa tehokkaampi.
  2. Myöhemmät järjestelmät voivat helposti hakea skeemataulukoita tiedostoista – skeemoja ei tarvitse tallentaa erikseen ulkoiseen metamuistiin.
  3. Kaikki muutokset alkuperäiseen skeemaan on helppo käsitellä (skeeman kehitys).

Parkettitiedostomuoto

Parquet on avoimen lähdekoodin tiedostomuoto Hadoopille, joka tallentaa sisäkkäisiä tietorakenteita litteässä sarakemuodossa.

Perinteiseen rivilähestymistapaan verrattuna Parketti on tehokkaampi varastoinnin ja suorituskyvyn suhteen.

Tämä on erityisen hyödyllistä kyselyissä, jotka lukevat tiettyjä sarakkeita laajasta (monia saraketta) taulukosta. Tiedostomuodon ansiosta vain tarvittavat sarakkeet luetaan, joten I/O on mahdollisimman pieni.

Pieni poikkeama ja selitys: Ymmärtääksesi paremmin Hadoopin Parquet-tiedostomuotoa, katsotaanpa, mikä on sarakepohjainen - eli sarakemuotoinen -muoto. Tämä muoto tallentaa samanlaiset arvot kullekin sarakkeelle yhdessä.

Esimerkiksi, tietue sisältää ID-, Nimi- ja Osasto-kentät. Tässä tapauksessa kaikki ID-sarakkeen arvot tallennetaan yhdessä, samoin kuin Nimi-sarakkeen arvot ja niin edelleen. Taulukko näyttää suunnilleen tältä:

ID
Nimi
osasto

1
emp1
d1

2
emp2
d2

3
emp3
d3

Merkkijonomuodossa tiedot tallennetaan seuraavasti:

1
emp1
d1
2
emp2
d2
3
emp3
d3

Saraketiedostomuodossa samat tiedot tallennetaan seuraavasti:

1
2
3
emp1
emp2
emp3
d1
d2
d3

Sarakemuoto on tehokkaampi, kun sinun on tehtävä kysely useista sarakkeista taulukosta. Se lukee vain vaaditut sarakkeet, koska ne ovat vierekkäin. Tällä tavalla I/O-toiminnot pidetään minimissä.

Tarvitset esimerkiksi vain NIMI-sarakkeen. SISÄÄN merkkijonomuoto Jokainen tietojoukon tietue on ladattava, jäsennettävä kenttien mukaan ja purettava sitten NAME-tiedot. Sarakemuodon avulla voit siirtyä suoraan Nimi-sarakkeeseen, koska kaikki kyseisen sarakkeen arvot tallennetaan yhteen. Sinun ei tarvitse skannata koko tallennetta.

Näin ollen sarakemuoto parantaa kyselyn suorituskykyä, koska se vaatii vähemmän hakuaikaa päästäkseen vaadittuihin sarakkeisiin ja vähentää I/O-toimintojen määrää, koska vain halutut sarakkeet luetaan.

Yksi ainutlaatuisista ominaisuuksista parketti että tässä muodossa se voi tallentaa tietoja sisäkkäisillä rakenteilla. Tämä tarkoittaa, että Parquet-tiedostossa jopa sisäkkäiset kentät voidaan lukea yksitellen ilman, että sinun tarvitsee lukea sisäkkäisen rakenteen kaikkia kenttiä. Parquet käyttää murskaus- ja kokoonpanoalgoritmia sisäkkäisten rakenteiden tallentamiseen.

Tiedostomuodot big datassa: lyhyt koulutusohjelma
Ymmärtääksesi Parquet-tiedostomuodon Hadoopissa, sinun on tiedettävä seuraavat ehdot:

  1. Joukkoryhmä (riviryhmä): tietojen looginen vaakasuora jako riveihin. Riviryhmä koostuu kunkin tietojoukon sarakkeen fragmentista.
  2. Sarakkeen fragmentti (sarakepala): Tietyn sarakkeen fragmentti. Nämä sarakefragmentit sijaitsevat tietyssä riviryhmässä, ja ne ovat taatusti vierekkäisiä tiedostossa.
  3. Sivu (sivu): Sarakefragmentit jaetaan peräkkäin kirjoitetuiksi sivuiksi. Sivuilla on yhteinen otsikko, joten voit ohittaa tarpeettomat lukemisen aikana.

Tiedostomuodot big datassa: lyhyt koulutusohjelma
Tässä otsikko sisältää vain maagisen numeron PAR1 (4 tavua), joka tunnistaa tiedoston parkettitiedostoksi.

Alatunniste sanoo seuraavaa:

  1. Tiedoston metatiedot, jotka sisältävät kunkin sarakkeen metatietojen aloituskoordinaatit. Kun luet, sinun on ensin luettava tiedoston metatiedot löytääksesi kaikki kiinnostavat sarakkeen osat. Sarakkeen osat tulee sitten lukea peräkkäin. Muut metatiedot sisältävät muotoversion, skeeman ja mahdolliset lisäavain-arvo-parit.
  2. Metatietojen pituus (4 tavua).
  3. maaginen numero PAR1 (4 tavua).

ORC-tiedostomuoto

Optimoitu rivi-sarake-tiedostomuoto (Optimoitu rivisarake, ORC) tarjoaa erittäin tehokkaan tavan tallentaa tietoja, ja se on suunniteltu voittamaan muiden muotojen rajoitukset. Tallentaa tiedot täydellisen kompaktissa muodossa, jolloin voit ohittaa tarpeettomat yksityiskohdat - ilman suurien, monimutkaisten tai manuaalisesti ylläpidettävien indeksien rakentamista.

ORC-muodon edut:

  1. Yksi tiedosto on kunkin tehtävän tulos, mikä vähentää NameNoden (nimisolmun) kuormitusta.
  2. Tuki Hive-tietotyypeille, mukaan lukien DateTime-, desimaali- ja monimutkaiset tietotyypit (rakenne, luettelo, kartta ja liitto).
  3. Saman tiedoston samanaikainen luku eri RecordReader-prosesseilla.
  4. Mahdollisuus jakaa tiedostoja ilman merkkien skannausta.
  5. Arvio luku-/kirjoitusprosessien suurimmasta mahdollisesta keon muistin varauksesta tiedoston alatunnisteen tietojen perusteella.
  6. Metatiedot tallennetaan Protocol Buffers -binääriserialisointimuotoon, joka mahdollistaa kenttien lisäämisen ja poistamisen.

Tiedostomuodot big datassa: lyhyt koulutusohjelma
ORC tallentaa merkkijonokokoelmat yhteen tiedostoon, ja kokoelman sisällä merkkijonotiedot tallennetaan sarakemuodossa.

ORC-tiedosto tallentaa riviryhmiä, joita kutsutaan raidoiksi, ja tukitiedot tiedoston alatunnisteeseen. Tiedoston lopussa oleva Postscript sisältää pakkausparametrit ja pakatun alatunnisteen koon.

Raidan oletuskoko on 250 MB. Tällaisten suurten juovien ansiosta HDFS:stä lukeminen tapahtuu tehokkaammin: suurissa vierekkäisissä lohkoissa.

Tiedoston alatunniste tallentaa tiedoston kaistojen luettelon, rivien lukumäärän kaistaa kohden ja kunkin sarakkeen tietotyypin. Sinne kirjoitetaan myös kunkin sarakkeen tuloksena saatu arvo count, min, max ja summa.

Nauhan alatunniste sisältää hakemiston streamin sijainneista.

Rivitietoja käytetään taulukoita skannattaessa.

Indeksitiedot sisältävät kunkin sarakkeen minimi- ja enimmäisarvot sekä rivien sijainnin kussakin sarakkeessa. ORC-indeksejä käytetään vain raitojen ja riviryhmien valitsemiseen, ei kyselyihin vastaamiseen.

Eri tiedostomuotojen vertailu

Avro verrattuna Parkettiin

  1. Avro on rivitallennusmuoto, kun taas Parquet tallentaa tiedot sarakkeisiin.
  2. Parketti soveltuu paremmin analyyttisiin kyselyihin, mikä tarkoittaa, että lukutoiminnot ja tiedon kyselyt ovat paljon tehokkaampia kuin kirjoittaminen.
  3. Avrossa kirjoitustoiminnot tehdään tehokkaammin kuin Parketissa.
  4. Avro käsittelee piirin kehitystä kypsemmin. Parketti tukee vain skeeman lisäämistä, kun taas Avro tukee monitoimista kehitystä eli sarakkeiden lisäämistä tai vaihtamista.
  5. Parketti on ihanteellinen sarakkeiden osajoukon kyselyyn monisarakkeisessa taulukossa. Avro soveltuu ETL-operaatioihin, joissa teemme kyselyn kaikista sarakkeista.

ORC vs parketti

  1. Parketti tallentaa sisäkkäiset tiedot paremmin.
  2. ORC soveltuu paremmin predikaatin painamiseen.
  3. ORC tukee ACID-ominaisuuksia.
  4. ORC pakkaa tiedot paremmin.

Mitä muuta luettavaa aiheesta:

  1. Big data -analyysi pilvessä: kuinka yritys voi muuttua datalähtöiseksi.
  2. Nöyrä opas tietokantajärjestelmiin.
  3. Telegram-kanavamme digitaalisesta transformaatiosta.

Lähde: will.com

Lisää kommentti