Team Mail.ru Soluzzjonijiet Cloud offerti traduzzjoni tal-artiklu inġinier Rahul Bhatia minn Clairvoyant dwar liema formati ta 'fajls hemm fil-big data, x'inhuma l-aktar karatteristiċi komuni ta' formati Hadoop u liema format huwa aħjar li tuża.
Għaliex huma meħtieġa formati ta' fajls differenti?
Ostakolu ewlieni tal-prestazzjoni għal applikazzjonijiet li jaħdmu bl-HDFS bħal MapReduce u Spark huwa ż-żmien li tieħu biex tfittex, taqra u tikteb id-dejta. Dawn il-problemi huma aggravati mid-diffikultà fil-ġestjoni ta 'settijiet ta' dejta kbar jekk ikollna skema li tevolvi aktar milli waħda fissa, jew jekk ikun hemm xi restrizzjonijiet ta 'ħażna.
L-ipproċessar tad-dejta kbira jżid it-tagħbija fuq is-subsistema tal-ħażna - Hadoop jaħżen id-dejta b'mod żejda biex tinkiseb tolleranza għall-ħsarat. Minbarra d-diski, il-proċessur, in-netwerk, is-sistema ta 'input/output, eċċ huma mgħobbija. Hekk kif il-volum tad-dejta jikber, hekk ukoll tiżdied l-ispiża tal-ipproċessar u l-ħażna tagħha.
Formati varji tal-fajl fi Hadoop ivvintat biex issolvi preċiżament dawn il-problemi. L-għażla tal-format tal-fajl xieraq tista' tipprovdi xi benefiċċji sinifikanti:
Ħin tal-qari aktar mgħaġġel.
Ħin ta 'reġistrazzjoni aktar mgħaġġel.
Fajls maqsuma.
Appoġġ għall-evoluzzjoni tal-iskema.
Appoġġ għall-kompressjoni estiża.
Xi formati tal-fajls huma maħsuba għal użu ġenerali, oħrajn għal użi aktar speċifiċi, u xi wħud huma ddisinjati biex jissodisfaw karatteristiċi speċifiċi tad-dejta. Allura l-għażla hija verament pjuttost kbira.
Format tal-fajl Avro
Għal serialization tad-data Avro huwa użat ħafna - it string ibbażat, jiġifieri, format ta 'ħażna ta' data string f'Hadoop. Hija taħżen l-iskema f'format JSON, u tagħmilha faċli biex tinqara u tinterpreta minn kwalunkwe programm. Id-dejta nnifisha hija f'format binarju, kompatta u effiċjenti.
Is-sistema ta' serialization ta' Avro hija newtrali fil-lingwa. Fajls jistgħu jiġu pproċessati f'varjetà ta 'lingwi, bħalissa C, C++, C#, Java, Python u Ruby.
Karatteristika ewlenija ta 'Avro hija l-appoġġ robust tiegħu għall-iskemi tad-dejta li jinbidlu maż-żmien, jiġifieri, jevolvu. Avro jifhem il-bidliet fl-iskema—tħassir, iż-żieda, jew it-tibdil tal-oqsma.
Avro jappoġġja varjetà ta 'strutturi tad-dejta. Pereżempju, tista 'toħloq rekord li fih firxa, tip enumerat, u subrekord.
Dan il-format huwa ideali biex tikteb fiż-żona tal-inżul (transizzjoni) ta' data lake (data lag, jew data lake - ġabra ta’ każijiet għall-ħażna ta’ diversi tipi ta’ data flimkien mas-sorsi tad-data direttament).
Għalhekk, dan il-format huwa l-aktar adattat għall-kitba fiż-żona tal-inżul ta 'lag tad-dejta għar-raġunijiet li ġejjin:
Id-dejta minn din iż-żona normalment tinqara fl-intier tagħha għal aktar ipproċessar minn sistemi downstream - u format ibbażat fuq ringieli huwa aktar effiċjenti f'dan il-każ.
Is-sistemi downstream jistgħu faċilment jirkupraw tabelli ta 'skema minn fajls—m'hemmx bżonn li taħżen skemi separatament f'ħażna meta esterna.
Kwalunkwe bidla fl-iskema oriġinali tiġi pproċessata faċilment (evoluzzjoni tal-iskema).
Format tal-Fajl tal-Parquet
Parquet huwa format ta 'fajl ta' sors miftuħ għal Hadoop li jaħżen strutturi tad-dejta mnaqqsa f'format ta' kolonni ċatt.
Meta mqabbel mal-approċċ ta 'ringiela tradizzjonali, Parquet huwa aktar effiċjenti f'termini ta' ħażna u prestazzjoni.
Dan huwa speċjalment utli għal mistoqsijiet li jaqraw kolonni speċifiċi minn tabella wiesgħa (ħafna kolonni). Grazzi għall-format tal-fajl, jinqraw biss il-kolonni meħtieġa, għalhekk I/O jinżamm għall-minimu.
Digressjoni żgħira u spjegazzjoni: Biex tifhem aħjar il-format tal-fajl Parquet f'Hadoop, ejja naraw x'inhu format ibbażat fuq kolonna - jiġifieri kolonni -. Dan il-format jaħżen valuri simili għal kull kolonna flimkien.
Per eżempju, ir-rekord jinkludi l-oqsma ID, Isem, u Dipartiment. F'dan il-każ, il-valuri kollha tal-kolonna tal-ID se jinħażnu flimkien, kif ukoll il-valuri tal-kolonna tal-Isem, eċċ. It-tabella tidher xi ħaġa bħal din:
ID isem Dipartiment
1
emp1
d1
2
emp2
d2
3
emp3
d3
F'format ta' string, id-dejta tiġi ssejvjata kif ġej:
1
emp1
d1
2
emp2
d2
3
emp3
d3
F'format ta' fajl kolonni, l-istess dejta tiġi ssejvjata bħal dan:
1
2
3
emp1
emp2
emp3
d1
d2
d3
Il-format kolonni huwa aktar effiċjenti meta jkollok bżonn tagħmel mistoqsija fuq kolonni multipli minn tabella. Se jaqra biss il-kolonni meħtieġa minħabba li huma biswit. B'dan il-mod, l-operazzjonijiet I/O jinżammu għall-minimu.
Per eżempju, għandek bżonn biss il-kolonna ISEM. IN format string Kull rekord fis-sett tad-dejta jeħtieġ li jitgħabba, jiġi analizzat skont il-qasam, u mbagħad jiġi estratt id-dejta tal-ISEM. Il-format tal-kolonna jippermettilek li tħaffer direttament fil-kolonna Isem għaliex il-valuri kollha għal dik il-kolonna huma maħżuna flimkien. M'għandekx għalfejn tiskennja r-reġistrazzjoni kollha.
Għalhekk, il-format kolonni jtejjeb il-prestazzjoni tal-mistoqsija minħabba li jeħtieġ inqas ħin ta 'tfittxija biex jasal għall-kolonni meħtieġa u jnaqqas in-numru ta' operazzjonijiet I/O minħabba li jinqraw biss il-kolonni mixtieqa.
Waħda mill-karatteristiċi uniċi Parquet huwa li f'dan il-format jista jaħżnu data bi strutturi nested. Dan ifisser li f'fajl Parquet, anke oqsma nested jistgħu jinqraw individwalment mingħajr ma jkollhom jaqraw l-oqsma kollha fl-istruttura nested. Parquet juża algoritmu ta 'tqattigħ u assemblaġġ biex jaħżen strutturi nested.
Biex tifhem il-format tal-fajl Parquet f'Hadoop, trid tkun taf it-termini li ġejjin:
Grupp ta' kordi (grupp ta' ringieli): diviżjoni orizzontali loġika tad-dejta f'ringieli. Grupp ta' ringiela jikkonsisti fi framment ta' kull kolonna fis-sett tad-dejta.
Framment tal-kolonna (biċċa kolonna): Framment ta' kolonna speċifika. Dawn il-frammenti tal-kolonna jgħixu fi grupp speċifiku ta 'ringieli u huma garantiti li jkunu kontigwi fil-fajl.
Paġna (paġna): Il-frammenti tal-kolonna huma maqsuma f'paġni miktuba waħda wara l-oħra. Il-paġni għandhom titolu komuni, sabiex tkun tista’ taqbeż dawk mhux meħtieġa meta taqra.
Hawnhekk it-titlu fih biss in-numru maġiku PAR1 (4 bytes) li jidentifika l-fajl bħala fajl Parquet.
Il-footer jgħid dan li ġej:
Metadejta tal-fajl li fiha l-koordinati tal-bidu tal-metadejta ta’ kull kolonna. Meta taqra, l-ewwel trid taqra l-metadata tal-fajl biex issib il-frammenti kollha tal-kolonna ta 'interess. Il-porzjonijiet tal-kolonna għandhom imbagħad jinqraw b'mod sekwenzjali. Metadejta oħra tinkludi l-verżjoni tal-format, l-iskema, u kwalunkwe par addizzjonali ta’ valuri ewlenin.
Tul tal-metadata (4 bytes).
numru maġiku PAR1 (4 bytes).
Format tal-Fajl ORC
Format ottimizzat tal-fajl ta' ringiela-kolonna (Kolonna tar-Ringiela Ottimizzata, CRO) toffri mod effiċjenti ħafna biex taħżen id-data u kienet iddisinjata biex tegħleb il-limitazzjonijiet ta 'formati oħra. Taħżen id-dejta f'forma perfettament kompatta, li tippermettilek taqbeż dettalji mhux meħtieġa - mingħajr ma teħtieġ il-kostruzzjoni ta 'indiċi kbar, kumplessi jew miżmuma manwalment.
Vantaġġi tal-format ORC:
Fajl wieħed huwa l-output ta 'kull kompitu, li jnaqqas it-tagħbija fuq NameNode (node tal-isem).
Appoġġ għat-tipi ta 'dejta Hive, inklużi DateTime, tipi ta' dejta deċimali u kumplessi (struct, lista, mappa u unjoni).
Qari simultanju tal-istess fajl minn proċessi RecordReader differenti.
Kapaċità li taqsam fajls mingħajr skannjar għal markaturi.
Stima tal-allokazzjoni massima possibbli tal-memorja tal-heap għal proċessi ta' qari/kitba bbażata fuq informazzjoni fil-footer tal-fajl.
Il-metadejta hija maħżuna fil-format ta' serialization binarju tal-Protocol Buffers, li jippermetti li jiżdiedu u jitneħħew oqsma.
L-ORC jaħżen kollezzjonijiet ta' kordi f'fajl wieħed, u fi ħdan il-ġbir, id-dejta tal-kordi tinħażen f'format kolonni.
Fajl ORC jaħżen gruppi ta' linji msejħa strixxi u informazzjoni ta' sostenn fil-footer tal-fajl. Il-Postscript fl-aħħar tal-fajl fih parametri tal-kompressjoni u d-daqs tal-footer kompressat.
Id-daqs default tal-istrixxa huwa 250 MB. Minħabba strixxi kbar bħal dawn, il-qari minn HDFS isir b'mod aktar effiċjenti: fi blokki kbar kontigwi.
Il-footer tal-fajl jirreġistra l-lista ta’ korsiji fil-fajl, in-numru ta’ ringieli għal kull korsija, u t-tip ta’ dejta ta’ kull kolonna. Il-valur li jirriżulta tal-għadd, min, max u somma għal kull kolonna huwa wkoll miktub hemmhekk.
Il-footer tal-istrixxa fih direttorju tal-postijiet tan-nixxiegħa.
Id-data tar-ringiela tintuża meta jiġu skennjati t-tabelli.
Id-dejta tal-indiċi tinkludi l-valuri minimi u massimi għal kull kolonna u l-pożizzjoni tar-ringieli f’kull kolonna. L-indiċi ORC jintużaw biss biex jintgħażlu strixxi u gruppi ta’ ringieli, mhux biex iwieġbu mistoqsijiet.
Tqabbil ta 'formati ta' fajls differenti
Avro meta mqabbel mal-Parquet
Avro huwa format ta 'ħażna ta' ringiela, filwaqt li Parquet jaħżen id-dejta f'kolonni.
Parquet huwa adattat aħjar għal mistoqsijiet analitiċi, jiġifieri l-operazzjonijiet ta 'qari u l-interrogazzjoni tad-dejta huma ħafna aktar effiċjenti mill-kitba.
L-operazzjonijiet tal-kitba f'Avro jitwettqu b'mod aktar effiċjenti milli f'Parquet.
Avro jittratta l-evoluzzjoni taċ-ċirkwit b'mod aktar matur. Parquet jappoġġja biss iż-żieda ta 'skema, filwaqt li Avro jappoġġja evoluzzjoni multifunzjonali, jiġifieri, iż-żieda jew il-bidla ta' kolonni.
Parquet huwa ideali għall-mistoqsijiet ta 'sottosett ta' kolonni f'tabella b'ħafna kolonni. Avro huwa adattat għal operazzjonijiet ETL fejn aħna nistaqsu l-kolonni kollha.