Format rakitra amin'ny angon-drakitra lehibe: programa fanabeazana fohy

Format rakitra amin'ny angon-drakitra lehibe: programa fanabeazana fohy
Weather Deity nataon'i Remarin

ekipa Mail.ru Cloud Solutions tolotra fandikana lahatsoratra injeniera Rahul Bhatia avy ao amin'ny Clairvoyant momba ny endrika rakitra misy amin'ny angon-drakitra lehibe, inona ireo endri-javatra mahazatra indrindra amin'ny endrika Hadoop ary inona no endrika tsara kokoa ampiasaina.

Nahoana no ilaina ny endrika rakitra samihafa?

Ny tsy fahampian'ny fampandehanana lehibe ho an'ny rindranasa ampiasaina amin'ny HDFS toy ny MapReduce sy Spark dia ny fotoana ilana fikarohana, famakiana ary fanoratana angona. Ireo olana ireo dia ampiarahana amin'ny fahasarotana amin'ny fitantanana angon-drakitra lehibe raha toa ka manana drafitra mivoatra isika fa tsy raikitra, na raha misy teritery fitahirizana.

Ny fanodinana angon-drakitra lehibe dia mampitombo ny enta-mavesatra ao amin'ny subsystem fitahirizana - Mitahiry angon-drakitra i Hadoop mba hahazoana fandeferana diso. Ho fanampin'ny kapila, ny processeur, ny tambajotra, ny rafitra fidirana / famoahana, sy ny sisa. Rehefa mitombo ny habetsaky ny angona, dia mitombo koa ny vidin'ny fanodinana sy fitehirizana azy.

Format rakitra isan-karazany amin'ny Hadoop noforonina hamahana ireo olana ireo. Ny fisafidianana ny format rakitra mety dia mety hanome tombony lehibe sasany:

  1. Famakiana haingana kokoa.
  2. Fotoana fandraketana haingana kokoa.
  3. rakitra zaraina.
  4. Fanohanana ny fivoaran'ny schema.
  5. Fanohanana fanerena miitatra.

Ny endrika rakitra sasany dia natao ho an'ny fampiasana ankapobeny, ny hafa ho an'ny fampiasana manokana, ary ny sasany dia natao hifanaraka amin'ny toetran'ny angona manokana. Noho izany dia tena lehibe ny safidy.

Format rakitra Avro

ho an'ny data serialization Avro no be mpampiasa - izany mifototra amin'ny tady, izany hoe endrika fitahirizana angon-drakitra amin'ny tady ao Hadoop. Mitahiry ny schema amin'ny endrika JSON izy io, mahatonga azy io ho mora ny mamaky sy mandika ny programa rehetra. Ny angon-drakitra mihitsy dia amin'ny endrika binary, compact ary mahomby.

Ny rafitra serialization an'i Avro dia tsy miandany amin'ny fiteny. Azo atao amin'ny fiteny isan-karazany ny rakitra, C, C++, C#, Java, Python ary Ruby amin'izao fotoana izao.

Ny endri-javatra manan-danja amin'ny Avro dia ny fanohanana matanjaka ho an'ny schema data izay miova rehefa mandeha ny fotoana, izany hoe mivoatra. Avro dia mahatakatra ny fiovan'ny schemaβ€”mamafa, manampy, na manova saha.

Avro dia manohana rafitra data isan-karazany. Azonao atao, ohatra, ny mamorona rakitsoratra misy laharana, karazana voatanisa, ary zana-tsoratra.

Format rakitra amin'ny angon-drakitra lehibe: programa fanabeazana fohy
Ity endrika ity dia mety tsara amin'ny fanoratana any amin'ny faritra fipetrahana (fifindran'ny) farihy data (data lake, na farihy data - fitambarana tranga hitahirizana karazana angona isan-karazany ankoatra ny loharanom-baovao mivantana).

Noho izany, ity endrika ity dia mety indrindra amin'ny fanoratana any amin'ny faritry ny farihy data noho ireto antony manaraka ireto:

  1. Ny angona avy amin'ity faritra ity dia matetika vakiana manontolo ho an'ny fanodinana bebe kokoa amin'ny alΓ lan'ny rafitra midina - ary ny endrika mifototra amin'ny laharana dia mahomby kokoa amin'ity tranga ity.
  2. Ny rafitra ambany dia afaka maka mora foana ny tabilao schema avy amin'ny rakitra-tsy mila mitahiry schema misaraka amin'ny fitahirizana meta ivelany.
  3. Ny fanovana rehetra amin'ny schema tany am-boalohany dia mora karakaraina (evolution schema).

Format rakitra parquet

Parquet dia endrika rakitra loharano misokatra ho an'ny Hadoop izay mitahiry firafitry ny angon-drakitra amin'ny endrika tsanganana fisaka.

Raha ampitahaina amin'ny fomba fanao andalana nentim-paharazana, ny Parquet dia mahomby kokoa amin'ny resaka fitahirizana sy fampisehoana.

Tena ilaina izany ho an'ny fanontaniana mamaky tsanganana manokana avy amin'ny latabatra midadasika (tsanganana maro). Noho ny endrika rakitra dia ny tsanganana ilaina ihany no vakiana, ka ny I/O dia tazonina ho faran'izay kely indrindra.

Fihodinana kely sy fanazavana: Mba hahatakarana bebe kokoa ny endrika fichier parquet ao amin'ny Hadoop, andeha hojerentsika ny atao hoe tsanganana - izany hoe columnar - format. Ity endrika ity dia mitahiry sanda mitovy amin'ny tsanganana tsirairay miaraka.

Ohatra, ny rakitra dia ahitana ny ID, Anarana, ary ny sahan'ny Departemanta. Amin'ity tranga ity, ny sandan'ny tsanganana ID rehetra dia hotehirizina miaraka, toy ny sandan'ny tsanganana Anarana, sy ny sisa. Ho toy izao ny tabilao:

ID
anarana
sampan-draharaha

1
emp1
d1

2
emp2
d2

3
emp3
d3

Amin'ny endrika tady dia hotehirizina toy izao manaraka izao ny angona:

1
emp1
d1
2
emp2
d2
3
emp3
d3

Amin'ny endrika rakitra tsanganana, ny angona mitovy dia hotehirizina toy izao:

1
2
3
emp1
emp2
emp3
d1
d2
d3

Ny endrika tsanganana dia mahomby kokoa rehefa mila manontany tsanganana maromaro avy amin'ny latabatra ianao. Ireo tsanganana ilaina ihany no hovakiany satria mifanakaiky. Amin'izany fomba izany, ny fiasan'ny I/O dia tazonina ho faran'izay kely indrindra.

Ohatra, ny tsanganana NAME ihany no ilainao. IN endrika tady Ny firaketana tsirairay ao amin'ny angon-drakitra dia mila asiana entana, asiana sehatra, ary alaina avy eo ny angona NAME. Ny endrika tsanganana dia ahafahanao midina mivantana mankany amin'ny tsanganana Anarana satria ny sanda rehetra ho an'io tsanganana io dia voatahiry miaraka. Tsy mila mijery ny firaketana manontolo ianao.

Noho izany, ny format tsanganana dia manatsara ny fahombiazan'ny fangatahana satria mitaky fotoana kely kokoa ny fitadiavana ireo tsanganana ilaina ary mampihena ny isan'ny asa I/O satria ny tsanganana tiana ihany no vakina.

Iray amin'ireo endri-javatra miavaka Parquet fa amin'ity format ity dia afaka mitahiry angona miaraka amin'ny rafitra misy akany. Midika izany fa amin'ny rakitra Parquet, na ny saha misy akany aza dia azo vakiana tsirairay tsy mila mamaky ny saha rehetra ao amin'ny rafitra misy akany. Ny parquet dia mampiasa algorithm shredding sy fivorian'ny fitehirizana ireo rafitra misy akany.

Format rakitra amin'ny angon-drakitra lehibe: programa fanabeazana fohy
Raha te hahalala ny endrika rakitra Parquet amin'ny Hadoop dia mila mahafantatra ireto teny manaraka ireto ianao:

  1. Vondrona tady (vondrona andalana): fizarana lojika mitsivalana ny angona ho andalana. Vondrona andalana dia misy sombiny amin'ny tsanganana tsirairay ao amin'ny angon-drakitra.
  2. Sombiny tsanganana (tsangantsanganana): Sombiny amin'ny tsanganana manokana. Mipetraka ao anatin'ny vondrona andalana manokana ireo sombiny tsanganana ireo ary azo antoka fa mifanakaiky ao anaty rakitra.
  3. pejy (pejy): Zaraina ho pejy misesy ny sombin-tsangantsanganana. Ny pejy dia manana lohateny iraisana, ka azonao atao ny mandingana ireo tsy ilaina rehefa mamaky.

Format rakitra amin'ny angon-drakitra lehibe: programa fanabeazana fohy
Eto ny lohateny dia ahitana ny isa majika PAR1 (4 bytes) izay mamaritra ny rakitra ho rakitra Parquet.

Hoy ny footer:

  1. Metadata fisie misy ny koordinate fanombohan'ny metadata an'ny tsanganana tsirairay. Rehefa mamaky ianao dia tsy maintsy mamaky ny metadatan'ny rakitra aloha ianao mba hahitana ireo sombin-tsangantsangana mahaliana rehetra. Tokony hovakiana misesy avy eo ny ampahany amin'ny tsanganana. Ny metadata hafa dia ahitana ny kinova endrika, skema, ary izay tsiroaroa manan-danja fanampiny.
  2. Halavan'ny metadata (4 bytes).
  3. isa majika PAR1 (4 bita).

Format rakitra ORC

Ny endrika rakitra andalana-tsangantsanganana optimisΓ© (Tsanganana andalana nohatsaraina, CRO) dia manolotra fomba tena mahomby hitahirizana angon-drakitra ary natao handresena ny fetran'ny endrika hafa. Mitahiry angon-drakitra amin'ny endrika mirindra tsara, ahafahanao mandingana ny antsipirian'ny tsy ilaina - tsy mitaky ny fananganana tondro lehibe, sarotra na tanana.

Ny tombony amin'ny endrika ORC:

  1. Ny rakitra iray dia ny famoahana ny asa tsirairay, izay mampihena ny enta-mavesatra amin'ny NameNode (node ​​anarana).
  2. Fanohanana ny karazana data Hive, ao anatin'izany ny DateTime, karazana angon-drakitra desimal ary sarotra (struct, list, map ary union).
  3. Famakiana miaraka amin'ny rakitra mitovy amin'ny fizotran'ny RecordReader samihafa.
  4. Fahaiza-mizara rakitra nefa tsy mikaroka marika.
  5. Tombanana amin'ny fizarana fitadidiana antontam-bato ambony indrindra ho an'ny fizotran'ny famakiana/soratana mifototra amin'ny fampahalalana ao amin'ny tohin'ny rakitra.
  6. Ny metadata dia voatahiry ao amin'ny endrika serialization binary Protocol Buffers, izay ahafahan'ny saha ampiana sy esorina.

Format rakitra amin'ny angon-drakitra lehibe: programa fanabeazana fohy
Ny ORC dia mitahiry angona tady ao anaty rakitra tokana, ary ao anatin'ilay fanangonana dia voatahiry amin'ny endrika tsanganana ny angona tady.

Ny rakitra ORC dia mitahiry andiana tsipika antsoina hoe stripes sy fampahalalana fanohanana ao amin'ny tongotry ny rakitra. Ny Postscript amin'ny faran'ny rakitra dia misy masontsivana fanerena sy ny haben'ny footer voatsindry.

Ny haben'ny stripe default dia 250 MB. Noho ny tsipika lehibe toy izany, ny famakiana avy amin'ny HDFS dia atao amin'ny fomba mahomby kokoa: amin'ny sakana lehibe mifanakaiky.

Ny footer fisie dia mirakitra ny lisitry ny lalana ao amin'ny rakitra, ny isan'ny andalana isaky ny lalana ary ny karazana angona isaky ny tsanganana. Voasoratra ao koa ny sandan'ny isa, min, max ary isa ho an'ny tsanganana tsirairay.

Ny tongotr'ilay strip dia misy lahatahiry misy ny toerana misy ny renirano.

Ny angona andalana dia ampiasaina rehefa mijery latabatra.

Ny angona fanondroana dia ahitana ny sanda kely indrindra sy ambony indrindra ho an'ny tsanganana tsirairay ary ny toeran'ny andalana isaky ny tsanganana. Ny fanondroana ORC dia tsy ampiasaina afa-tsy amin'ny fifantenana tsipika sy vondrona andalana, fa tsy amin'ny famaliana fanontaniana.

Fampitahana ny endrika rakitra samihafa

Avro raha oharina amin'ny Parquet

  1. Ny Avro dia endrika fitahirizana andalana, raha mitahiry angona ao anaty tsanganana kosa ny Parquet.
  2. Ny parquet dia mety tsara kokoa amin'ny famakafakana fanontaniana, midika izany fa ny asa famakiana sy ny angona fangatahana dia mahomby kokoa noho ny fanoratana.
  3. Ny asa fanoratana amin'ny Avro dia vita amin'ny fomba mahomby kokoa noho ny amin'ny Parquet.
  4. Avro dia miresaka momba ny fivoaran'ny faritra amin'ny fomba matotra kokoa. Ny parquet dia manohana ny fanampim-panazavana fotsiny, fa ny Avro kosa dia manohana ny fivoarana multifunctional, izany hoe manampy na manova tsanganana.
  5. Ny parquet dia mety tsara amin'ny fangatahana ampahany amin'ny tsanganana ao anaty latabatra misy tsanganana maro. Avro dia mety amin'ny asa ETL izay anontaniantsika ny tsanganana rehetra.

ORC vs Parquet

  1. Ny parquet dia mitahiry angon-drakitra tsara kokoa.
  2. Ny ORC dia mety kokoa amin'ny fanosehana mialoha.
  3. ORC dia manohana ny fananana ACID.
  4. ORC dia manindry angona tsara kokoa.

Inona koa no vakiana momba ny lohahevitra:

  1. Famakafakana angon-drakitra lehibe ao amin'ny rahona: ahoana no ahafahan'ny orinasa ho lasa miompana amin'ny data.
  2. TorolΓ lana manetry tena ho an'ny tetika angona.
  3. Ny fantsona telegrama momba ny fanovana nomerika.

Source: www.habr.com

Add a comment