Formatet e skedarëve në të dhëna të mëdha: një program i shkurtër arsimor

Formatet e skedarëve në të dhëna të mëdha: një program i shkurtër arsimor
Hyjnia e motit nga Remarin

Ekip Mail.ru Cloud Solutions ofertat përkthimi i artikullit inxhinier Rahul Bhatia nga Clairvoyant rreth formateve të skedarëve në të dhëna të mëdha, cilat janë tiparet më të zakonshme të formateve Hadoop dhe cili format është më i mirë për t'u përdorur.

Pse nevojiten formate të ndryshme skedarësh?

Një pengesë kryesore e performancës për aplikacionet e aktivizuara me HDFS si MapReduce dhe Spark është koha që duhet për të kërkuar, lexuar dhe shkruar të dhëna. Këto probleme shtohen nga vështirësia në menaxhimin e grupeve të mëdha të të dhënave nëse kemi një skemë në zhvillim dhe jo një të fiksuar, ose nëse ka disa kufizime në ruajtje.

Përpunimi i të dhënave të mëdha rrit ngarkesën në nënsistemin e ruajtjes - Hadoop ruan të dhënat në mënyrë të tepërt për të arritur tolerancën e gabimeve. Përveç disqeve, ngarkohen procesori, rrjeti, sistemi hyrës/dalës etj. Me rritjen e vëllimit të të dhënave, rritet edhe kostoja e përpunimit dhe ruajtjes së tyre.

Formate të ndryshme skedarësh në Hadoop shpikur për të zgjidhur pikërisht këto probleme. Zgjedhja e formatit të duhur të skedarit mund të sjellë disa përfitime të rëndësishme:

  1. Koha më e shpejtë e leximit.
  2. Koha më e shpejtë e regjistrimit.
  3. Skedarët e përbashkët.
  4. Mbështetje për evolucionin e skemës.
  5. Mbështetje e zgjeruar e kompresimit.

Disa formate skedarësh janë të destinuara për përdorim të përgjithshëm, të tjerë për përdorime më specifike dhe disa janë krijuar për të përmbushur karakteristikat specifike të të dhënave. Pra, zgjedhja është me të vërtetë mjaft e madhe.

Formati i skedarit Avro

Për serializimi i të dhënave Avro përdoret gjerësisht - ajo bazuar në varg, domethënë një format i ruajtjes së të dhënave të vargut në Hadoop. Ai ruan skemën në formatin JSON, duke e bërë të lehtë leximin dhe interpretimin nga çdo program. Vetë të dhënat janë në format binar, kompakte dhe efikase.

Sistemi i serializimit të Avro është neutral ndaj gjuhës. Skedarët mund të përpunohen në një sërë gjuhësh, aktualisht C, C++, C#, Java, Python dhe Ruby.

Një tipar kryesor i Avro është mbështetja e tij e fuqishme për skemat e të dhënave që ndryshojnë me kalimin e kohës, domethënë evoluojnë. Avro kupton ndryshimet e skemës - fshirjen, shtimin ose ndryshimin e fushave.

Avro mbështet një sërë strukturash të dhënash. Për shembull, mund të krijoni një rekord që përmban një grup, një lloj të numëruar dhe një nënrekord.

Formatet e skedarëve në të dhëna të mëdha: një program i shkurtër arsimor
Ky format është ideal për të shkruar në zonën e uljes (tranzicionit) të një liqeni të dhënash (liqeni i të dhënave, ose liqeni i të dhënave - një koleksion rastesh për ruajtjen e llojeve të ndryshme të të dhënave përveç burimeve të të dhënave drejtpërdrejt).

Pra, ky format është më i përshtatshmi për të shkruar në zonën e uljes së një liqeni të dhënash për arsyet e mëposhtme:

  1. Të dhënat nga kjo zonë zakonisht lexohen në tërësi për përpunim të mëtejshëm nga sistemet e rrjedhës së poshtme - dhe një format i bazuar në rreshta është më efikas në këtë rast.
  2. Sistemet e poshtme mund të marrin lehtësisht tabelat e skemave nga skedarët - nuk ka nevojë të ruhen skemat veçmas në meta-ruajtjen e jashtme.
  3. Çdo ndryshim në skemën origjinale përpunohet lehtësisht (evoluimi i skemës).

Formati i skedarit të parketit

Parquet është një format skedari me burim të hapur për Hadoop që ruan strukturat e të dhënave të mbivendosura në format të sheshtë kolone.

Krahasuar me qasjen tradicionale të rreshtit, Parketi është më efikas për sa i përket ruajtjes dhe performancës.

Kjo është veçanërisht e dobishme për pyetjet që lexojnë kolona specifike nga një tabelë e gjerë (shumë kolona). Falë formatit të skedarit, lexohen vetëm kolonat e nevojshme, kështu që I/O mbahet në minimum.

Një digresion dhe shpjegim i vogël: Për të kuptuar më mirë formatin e skedarit Parquet në Hadoop, le të shohim se çfarë është formati i bazuar në kolonë - d.m.th. në kolonë. Ky format ruan vlera të ngjashme për secilën kolonë së bashku.

Për shembull, regjistrimi përfshin fushat ID, Emri dhe Departamenti. Në këtë rast, të gjitha vlerat e kolonës ID do të ruhen së bashku, si dhe vlerat e kolonës Emri, e kështu me radhë. Tabela do të duket diçka si kjo:

ID
Emër
Departamenti

1
emp1
d1

2
emp2
d2

3
emp3
d3

Në formatin e vargut, të dhënat do të ruhen si më poshtë:

1
emp1
d1
2
emp2
d2
3
emp3
d3

Në një format skedari kolone, të njëjtat të dhëna do të ruhen si kjo:

1
2
3
emp1
emp2
emp3
d1
d2
d3

Formati kolone është më efikas kur ju duhet të kërkoni kolona të shumta nga një tabelë. Do të lexojë vetëm kolonat e kërkuara sepse ato janë ngjitur. Në këtë mënyrë, operacionet I/O mbahen në minimum.

Për shembull, ju duhet vetëm kolona EMRI. NË formati i vargut Çdo rekord në grupin e të dhënave duhet të ngarkohet, të analizohet sipas fushës dhe më pas të nxirret të dhënat NAME. Formati i kolonës ju lejon të shponi direkt në kolonën Emri sepse të gjitha vlerat për atë kolonë ruhen së bashku. Ju nuk keni nevojë të skanoni të gjithë regjistrimin.

Kështu, formati kolone përmirëson performancën e pyetjes sepse kërkon më pak kohë kërkimi për të arritur në kolonat e kërkuara dhe redukton numrin e operacioneve I/O sepse lexohen vetëm kolonat e dëshiruara.

Një nga veçoritë unike Parket është se në këtë format mundet ruani të dhënat me struktura të mbivendosura. Kjo do të thotë që në një skedar Parquet, edhe fushat e vendosura mund të lexohen individualisht pa pasur nevojë të lexohen të gjitha fushat në strukturën e ndërlidhur. Parketi përdor një algoritëm grirëse dhe montimi për të ruajtur strukturat e mbivendosura.

Formatet e skedarëve në të dhëna të mëdha: një program i shkurtër arsimor
Për të kuptuar formatin e skedarit Parket në Hadoop, duhet të dini termat e mëposhtëm:

  1. Grup vargjesh (grupi i rreshtave): ndarja logjike horizontale e të dhënave në rreshta. Një grup rreshtash përbëhet nga një fragment i secilës kolonë në grupin e të dhënave.
  2. Fragmenti i kolonës (copë e kolonës): Një fragment i një kolone specifike. Këto fragmente kolone jetojnë në një grup të caktuar rreshtash dhe garantohen të jenë të afërt në skedar.
  3. Faqe (faqe): Fragmentet e kolonave ndahen në faqe të shkruara njëra pas tjetrës. Faqet kanë një titull të përbashkët, kështu që mund të kapërceni ato të panevojshme kur lexoni.

Formatet e skedarëve në të dhëna të mëdha: një program i shkurtër arsimor
Këtu titulli përmban vetëm numrin magjik PAR1 (4 bytes) që identifikon skedarin si skedar Parket.

Në fund të faqes thuhet sa vijon:

  1. Skedar meta të dhëna që përmbajnë koordinatat fillestare të meta të dhënave të secilës kolonë. Kur lexoni, së pari duhet të lexoni meta të dhënat e skedarit për të gjetur të gjitha fragmentet e kolonës me interes. Më pas, pjesët e kolonës duhet të lexohen në mënyrë sekuenciale. Të dhënat e tjera meta përfshijnë versionin e formatit, skemën dhe çdo çift shtesë çelës-vlerë.
  2. Gjatësia e meta të dhënave (4 bajt).
  3. numër magjik PAR1 (4 byte).

Formati i skedarit ORC

Formati i skedarit rresht-kolona i optimizuar (Kollona e optimizuar e rreshtit, CRO) ofron një mënyrë shumë efikase për ruajtjen e të dhënave dhe është krijuar për të kapërcyer kufizimet e formateve të tjera. Ruan të dhënat në një formë krejtësisht kompakte, duke ju lejuar të kapërceni detaje të panevojshme - pa kërkuar ndërtimin e indekseve të mëdha, komplekse ose të mbajtura manualisht.

Përparësitë e formatit ORC:

  1. Një skedar është dalja e secilës detyrë, e cila redukton ngarkesën në NameNode (nyja e emrit).
  2. Mbështetje për llojet e të dhënave Hive, duke përfshirë DateTime, llojet dhjetore dhe komplekse të të dhënave (struktura, lista, harta dhe bashkimi).
  3. Leximi i njëkohshëm i të njëjtit skedar nga procese të ndryshme RecordReader.
  4. Aftësia për të ndarë skedarët pa skanuar për shënues.
  5. Vlerësimi i alokimit maksimal të mundshëm të memories së grumbullit për proceset e leximit/shkrimit bazuar në informacionin në fundin e skedarit.
  6. Të dhënat meta ruhen në formatin e serializimit binar të Protocol Buffers, i cili lejon shtimin dhe heqjen e fushave.

Formatet e skedarëve në të dhëna të mëdha: një program i shkurtër arsimor
ORC ruan koleksionet e vargjeve në një skedar të vetëm dhe brenda koleksionit, të dhënat e vargut ruhen në një format kolone.

Një skedar ORC ruan grupe rreshtash të quajtura vija dhe informacione mbështetëse në fundin e skedarit. Postscript në fund të skedarit përmban parametrat e kompresimit dhe madhësinë e futerit të ngjeshur.

Madhësia e shiritit të paracaktuar është 250 MB. Për shkak të shiritave kaq të mëdhenj, leximi nga HDFS kryhet në mënyrë më efikase: në blloqe të mëdha të afërta.

Fundi i skedarit regjistron listën e korsive në skedar, numrin e rreshtave për korsi dhe llojin e të dhënave të secilës kolonë. Vlera rezultuese e numërimit, min, max dhe shumës për secilën kolonë shkruhet gjithashtu atje.

Fundi i shiritit përmban një direktori të vendndodhjeve të transmetimit.

Të dhënat e rreshtit përdoren gjatë skanimit të tabelave.

Të dhënat e indeksit përfshijnë vlerat minimale dhe maksimale për secilën kolonë dhe pozicionin e rreshtave në secilën kolonë. Indekset ORC përdoren vetëm për zgjedhjen e shiritave dhe grupeve të rreshtave, jo për t'iu përgjigjur pyetjeve.

Krahasimi i formateve të ndryshme të skedarëve

Avro në krahasim me Parket

  1. Avro është një format ruajtjeje rreshtash, ndërsa Parquet ruan të dhënat në kolona.
  2. Parketi është më i përshtatshëm për pyetje analitike, që do të thotë se operacionet e leximit dhe të dhënat e kërkimit janë shumë më efikase sesa shkrimet.
  3. Veprimet e shkrimit në Avro kryhen më me efikasitet sesa në Parket.
  4. Avro merret me evolucionin e qarkut në mënyrë më të pjekur. Parketi mbështet vetëm shtimin e skemave, ndërsa Avro mbështet evolucionin shumëfunksional, domethënë shtimin ose ndryshimin e kolonave.
  5. Parketi është ideal për kërkimin e një nëngrupi kolonash në një tabelë me shumë kolona. Avro është i përshtatshëm për operacionet ETL ku ne kërkojmë të gjitha kolonat.

ORC vs Parket

  1. Dyqanet e parketeve të dhëna të mbivendosura më mirë.
  2. ORC është më i përshtatshëm për kallëzuesin pushdown.
  3. ORC mbështet vetitë ACID.
  4. ORC ngjesh më mirë të dhënat.

Çfarë tjetër për të lexuar në këtë temë:

  1. Analiza e të dhënave të mëdha në cloud: si një kompani mund të orientohet drejt të dhënave.
  2. Një udhëzues i përulur për skemat e bazës së të dhënave.
  3. Kanali ynë telegram për transformimin dixhital.

Burimi: www.habr.com

Shto një koment