Fformatau ffeil mewn data mawr: rhaglen addysgol fer

Fformatau ffeil mewn data mawr: rhaglen addysgol fer
Tywydd Deity gan Remarin

Tîm Atebion Cwmwl Mail.ru cynigion cyfieithu erthygl peiriannydd Rahul Bhatia o Clairvoyant ynghylch pa fformatau ffeil sydd mewn data mawr, beth yw nodweddion mwyaf cyffredin fformatau Hadoop a pha fformat sy'n well i'w ddefnyddio.

Pam mae angen gwahanol fformatau ffeil?

Tagfa perfformiad fawr ar gyfer cymwysiadau sy'n galluogi HDFS fel MapReduce a Spark yw'r amser y mae'n ei gymryd i chwilio, darllen ac ysgrifennu data. Gwaethygir y problemau hyn gan yr anhawster o reoli setiau data mawr os oes gennym sgema esblygol yn hytrach nag un sefydlog, neu os oes rhai cyfyngiadau storio.

Mae prosesu data mawr yn cynyddu'r llwyth ar yr is-system storio - mae Hadoop yn storio data yn ddiangen i gyflawni goddefgarwch nam. Yn ogystal â disgiau, mae'r prosesydd, y rhwydwaith, y system mewnbwn / allbwn, ac ati yn cael eu llwytho. Wrth i gyfaint y data gynyddu, felly hefyd y gost o'i brosesu a'i storio.

Fformatau ffeil amrywiol yn Hadoop wedi'i ddyfeisio i ddatrys y problemau hyn yn union. Gall dewis y fformat ffeil priodol ddod â rhai buddion sylweddol:

  1. Amser darllen cyflymach.
  2. Amser recordio cyflymach.
  3. Ffeiliau a rennir.
  4. Cefnogaeth i esblygiad sgema.
  5. Cefnogaeth cywasgu estynedig.

Mae rhai fformatau ffeil wedi'u bwriadu ar gyfer defnydd cyffredinol, eraill at ddefnydd mwy penodol, ac mae rhai wedi'u cynllunio i fodloni nodweddion data penodol. Felly mae'r dewis yn eithaf mawr mewn gwirionedd.

Fformat ffeil Avro

I cyfresoli data Defnyddir Avro yn helaeth - mae'n seiliedig ar linyn, hynny yw, fformat storio data llinynnol yn Hadoop. Mae'n storio'r sgema ar ffurf JSON, gan ei gwneud yn hawdd i unrhyw raglen ei darllen a'i dehongli. Mae'r data ei hun mewn fformat deuaidd, yn gryno ac yn effeithlon.

Mae system gyfresoli Avro yn iaith niwtral. Gellir prosesu ffeiliau mewn amrywiaeth o ieithoedd, ar hyn o bryd C, C++, C#, Java, Python a Ruby.

Nodwedd allweddol o Avro yw ei gefnogaeth gadarn i sgemâu data sy'n newid dros amser, hynny yw, yn esblygu. Mae Avro yn deall newidiadau sgema - dileu, ychwanegu neu newid meysydd.

Mae Avro yn cefnogi amrywiaeth o strwythurau data. Er enghraifft, gallwch greu cofnod sy'n cynnwys arae, math wedi'i rifo, ac is-gofnod.

Fformatau ffeil mewn data mawr: rhaglen addysgol fer
Mae'r fformat hwn yn ddelfrydol ar gyfer ysgrifennu i barth glanio (pontio) llyn data (llyn data, neu lyn data - casgliad o achosion ar gyfer storio gwahanol fathau o ddata yn ogystal â ffynonellau data yn uniongyrchol).

Felly, mae'r fformat hwn yn fwyaf addas ar gyfer ysgrifennu i barth glanio llyn data am y rhesymau canlynol:

  1. Mae data o'r parth hwn fel arfer yn cael ei ddarllen yn ei gyfanrwydd i'w brosesu ymhellach gan systemau i lawr yr afon - ac mae fformat rhes yn fwy effeithlon yn yr achos hwn.
  2. Gall systemau i lawr yr afon adfer tablau sgema o ffeiliau yn hawdd - nid oes angen storio sgemâu ar wahân mewn storfa feta allanol.
  3. Mae unrhyw newid i'r sgema gwreiddiol yn hawdd ei brosesu (esblygiad sgema).

Fformat Ffeil Parquet

Mae Parquet yn fformat ffeil ffynhonnell agored ar gyfer Hadoop sy'n storio strwythurau data nythu mewn fformat colofnog gwastad.

O'i gymharu â'r dull rhes traddodiadol, mae Parquet yn fwy effeithlon o ran storio a pherfformiad.

Mae hyn yn arbennig o ddefnyddiol ar gyfer ymholiadau sy'n darllen colofnau penodol o dabl eang (llawer o golofnau). Diolch i fformat y ffeil, dim ond y colofnau angenrheidiol sy'n cael eu darllen, felly cedwir I/O i'r lleiafswm.

A digression bach ac esboniad: Er mwyn deall fformat ffeil Parquet yn Hadoop yn well, gadewch i ni weld beth yw fformat colofn - h.y. colofnog -. Mae'r fformat hwn yn storio gwerthoedd tebyg ar gyfer pob colofn gyda'i gilydd.

Er enghraifft,, mae'r cofnod yn cynnwys y meysydd ID, Enw, ac Adran. Yn yr achos hwn, bydd yr holl werthoedd colofn ID yn cael eu storio gyda'i gilydd, yn ogystal â gwerthoedd y golofn Enw, ac ati. Bydd y bwrdd yn edrych rhywbeth fel hyn:

ID
Enw
Adran

1
emp1
d1

2
emp2
d2

3
emp3
d3

Mewn fformat llinyn, bydd y data yn cael ei gadw fel a ganlyn:

1
emp1
d1
2
emp2
d2
3
emp3
d3

Mewn fformat ffeil golofnog, bydd yr un data yn cael ei gadw fel hyn:

1
2
3
emp1
emp2
emp3
d1
d2
d3

Mae'r fformat colofnog yn fwy effeithlon pan fydd angen i chi ymholi am sawl colofn o dabl. Bydd ond yn darllen y colofnau gofynnol oherwydd eu bod yn gyfagos. Yn y modd hwn, mae gweithrediadau I/O yn cael eu cadw mor isel â phosibl.

Er enghraifft, dim ond y golofn NAME sydd ei hangen arnoch chi. YN fformat llinyn Mae angen llwytho pob cofnod yn y set ddata, ei ddosrannu fesul maes, ac yna echdynnu'r data NAME. Mae fformat y golofn yn eich galluogi i ddrilio i lawr yn uniongyrchol i'r golofn Enw oherwydd bod yr holl werthoedd ar gyfer y golofn honno'n cael eu storio gyda'i gilydd. Nid oes rhaid i chi sganio'r recordiad cyfan.

Felly, mae'r fformat colofnol yn gwella perfformiad ymholiad oherwydd ei fod yn gofyn am lai o amser chwilio i gyrraedd y colofnau gofynnol ac yn lleihau nifer y gweithrediadau I/O oherwydd dim ond y colofnau dymunol sy'n cael eu darllen.

Un o'r nodweddion unigryw Parquet yw bod yn y fformat hwn y gall storio data gyda strwythurau nythu. Mae hyn yn golygu, mewn ffeil Parquet, y gellir darllen hyd yn oed caeau nythu yn unigol heb orfod darllen yr holl gaeau yn y strwythur nythu. Mae parquet yn defnyddio algorithm rhwygo a chydosod i storio strwythurau nythu.

Fformatau ffeil mewn data mawr: rhaglen addysgol fer
I ddeall fformat ffeil Parquet yn Hadoop, mae angen i chi wybod y termau canlynol:

  1. Grŵp o dannau (grŵp rhes): rhaniad llorweddol rhesymegol o ddata yn rhesi. Mae grŵp rhes yn cynnwys darn o bob colofn yn y set ddata.
  2. Darn o golofn (talp colofn): Darn o golofn benodol. Mae'r darnau colofn hyn yn byw mewn grŵp penodol o resi ac maent yn sicr o fod yn gyffiniol yn y ffeil.
  3. Tudalen (tudalen): Rhennir darnau colofn yn dudalennau wedi'u hysgrifennu un ar ôl y llall. Mae gan y tudalennau deitl cyffredin, felly gallwch chi hepgor rhai diangen wrth ddarllen.

Fformatau ffeil mewn data mawr: rhaglen addysgol fer
Yma mae'r teitl yn cynnwys y rhif hud yn unig PAR1 (4 beit) sy'n nodi'r ffeil fel ffeil Parquet.

Mae'r troedyn yn dweud y canlynol:

  1. Metadata ffeil sy'n cynnwys cyfesurynnau cychwyn metadata pob colofn. Wrth ddarllen, rhaid i chi yn gyntaf ddarllen metadata'r ffeil i ddod o hyd i'r holl ddarnau colofn o ddiddordeb. Yna dylid darllen y rhannau colofn yn olynol. Mae metadata eraill yn cynnwys y fersiwn fformat, sgema, ac unrhyw barau gwerth allweddol ychwanegol.
  2. Hyd metadata (4 beit).
  3. Rhif hud PAR1 (4 beit).

Fformat Ffeil ORC

Fformat ffeil rhes-golofn wedi'i optimeiddio (Colofn Rhes wedi'i Optimeiddio, CRO) yn cynnig ffordd effeithlon iawn o storio data ac fe'i cynlluniwyd i oresgyn cyfyngiadau fformatau eraill. Yn storio data ar ffurf berffaith gryno, sy'n eich galluogi i hepgor manylion diangen - heb fod angen adeiladu mynegeion mawr, cymhleth neu a gynhelir â llaw.

Manteision fformat ORC:

  1. Un ffeil yw allbwn pob tasg, sy'n lleihau'r llwyth ar y NameNode (nodyn enw).
  2. Cefnogaeth i fathau o ddata Hive, gan gynnwys DateTime, mathau o ddata degol a chymhleth (strwythur, rhestr, map ac undeb).
  3. Darllen yr un ffeil ar yr un pryd gan wahanol brosesau RecordReader.
  4. Y gallu i hollti ffeiliau heb sganio am farcwyr.
  5. Amcangyfrif o'r dyraniad cof pentwr mwyaf posibl ar gyfer prosesau darllen/ysgrifennu yn seiliedig ar wybodaeth yn nhroedyn y ffeil.
  6. Mae metadata yn cael ei storio yn y fformat cyfresoli deuaidd Protocol Buffers, sy'n caniatáu i feysydd gael eu hychwanegu a'u dileu.

Fformatau ffeil mewn data mawr: rhaglen addysgol fer
Mae ORC yn storio casgliadau o linynnau mewn un ffeil, ac o fewn y casgliad, mae data llinynnol yn cael ei storio mewn fformat colofnol.

Mae ffeil ORC yn storio grwpiau o linellau a elwir yn streipiau a gwybodaeth ategol yn nhroedyn y ffeil. Mae'r Ôl-nodyn ar ddiwedd y ffeil yn cynnwys paramedrau cywasgu a maint y troedyn cywasgedig.

Y maint streipen rhagosodedig yw 250 MB. Oherwydd streipiau mor fawr, mae darllen o HDFS yn cael ei berfformio'n fwy effeithlon: mewn blociau cyffiniol mawr.

Mae troedyn y ffeil yn cofnodi'r rhestr o lonydd yn y ffeil, nifer y rhesi fesul lôn, a math data pob colofn. Mae gwerth canlyniadol y cyfrif, y lleiafswm, yr uchafswm a'r swm ar gyfer pob colofn hefyd wedi'i ysgrifennu yno.

Mae troedyn y stribed yn cynnwys cyfeiriadur o leoliadau nentydd.

Defnyddir data rhes wrth sganio tablau.

Mae data mynegai yn cynnwys y gwerthoedd lleiaf ac uchaf ar gyfer pob colofn a lleoliad y rhesi ym mhob colofn. Defnyddir mynegeion ORC ar gyfer dewis streipiau a grwpiau rhes yn unig, nid ar gyfer ateb ymholiadau.

Cymharu gwahanol fformatau ffeil

Avro o'i gymharu â Parquet

  1. Fformat storio rhes yw Avro, tra bod Parquet yn storio data mewn colofnau.
  2. Mae parquet yn fwy addas ar gyfer ymholiadau dadansoddol, sy'n golygu bod gweithrediadau darllen a holi data yn llawer mwy effeithlon nag ysgrifennu.
  3. Mae gweithrediadau ysgrifennu yn Avro yn cael eu perfformio'n fwy effeithlon nag yn Parquet.
  4. Mae Avro yn delio ag esblygiad cylched yn fwy aeddfed. Dim ond ychwanegu sgema y mae parquet yn ei gefnogi, tra bod Avro yn cefnogi esblygiad amlswyddogaethol, hynny yw, ychwanegu neu newid colofnau.
  5. Mae parquet yn ddelfrydol ar gyfer holi is-set o golofnau mewn tabl aml-golofn. Mae Avro yn addas ar gyfer gweithrediadau ETL lle rydym yn cwestiynu pob colofn.

ORC vs Parquet

  1. Mae storfeydd parquet yn nythu data yn well.
  2. Mae ORC yn fwy addas ar gyfer gwthio i lawr.
  3. Mae ORC yn cefnogi eiddo ACID.
  4. Mae ORC yn cywasgu data yn well.

Beth arall i'w ddarllen ar y pwnc:

  1. Dadansoddiad data mawr yn y cwmwl: sut y gall cwmni ddod yn ddata-ganolog.
  2. Canllaw Humble i Sgemâu Cronfa Ddata.
  3. Ein sianel telegram am drawsnewid digidol.

Ffynhonnell: hab.com

Ychwanegu sylw