Liforomo tsa faele ka data e kholo: lenaneo le khuts'oane la thuto

Liforomo tsa faele ka data e kholo: lenaneo le khuts'oane la thuto
Bomolimo ba leholimo ka Remarin

sehlopha Mail.ru Cloud Solutions e fana phetolelo ea sehlooho moenjiniere Rahul Bhatia ho tloha Clairvoyant mabapi le hore na ho na le liforomo life tsa lifaele ka data e kholo, ke likarolo life tse tloaelehileng tsa liforomo tsa Hadoop le hore na ke mofuta ofe o molemo ho o sebelisa.

Hobaneng ho hlokahala lifomate tse fapaneng tsa faele?

Bothata bo boholo ba ts'ebetso bakeng sa lits'ebetso tse lumelletsoeng ke HDFS joalo ka MapReduce le Spark ke nako eo e e nkang ho batla, ho bala le ho ngola lintlha. Mathata ana a eketsoa ke bothata ba ho laola li-data tse kholo haeba re e-na le schema e tsoelang pele ho e-na le e tsitsitseng, kapa haeba ho na le litšitiso tse itseng tsa polokelo.

Ho sebetsana le data e kholo ho eketsa mojaro tsamaisong e ka tlase ea polokelo - Hadoop e boloka datha haholo ho fihlela mamello ea liphoso. Ntle le li-disks, processor, marang-rang, sistimi ea ho kenya / tlhahiso, joalo-joalo li laeloa. Ha palo ea data e ntse e hola, ho joalo le ka litšenyehelo tsa ho e sebetsa le ho e boloka.

Mefuta e fapaneng ea liforomo tsa faele Hadoop e etselitsoe ho rarolla mathata ana hantle. Ho khetha mofuta o nepahetseng oa faele ho ka fana ka melemo e meng ea bohlokoa:

  1. Nako ea ho bala kapele.
  2. Nako ea ho rekota e potlakileng.
  3. Lifaele tse arolelanoeng.
  4. Tšehetso bakeng sa ho iphetola ha schema.
  5. Tšehetso e atolositsoeng ea compression.

Liforomo tse ling tsa lifaele li etselitsoe tšebeliso e akaretsang, tse ling bakeng sa ts'ebeliso e ikhethang, 'me tse ling li etselitsoe ho kopana le litšobotsi tse itseng tsa data. Kahoo khetho e hlile e kholo haholo.

Mofuta oa faele oa Avro

etsoe ho hlophisoa ha data Avro e sebelisoa haholo - eona khoele e thehiloeng, ke hore, mokhoa oa ho boloka data oa khoele ho Hadoop. E boloka schema ka sebopeho sa JSON, e etsa hore ho be bonolo ho bala le ho toloka ka lenaneo lefe kapa lefe. Lintlha ka boeona li ka sebopeho sa binary, se kopane ebile se sebetsa hantle.

Sistimi ea serialization ea Avro ha e nke lehlakore ka puo. Lifaele li ka sebetsoa ka lipuo tse fapaneng, hajoale C, C++, C#, Java, Python le Ruby.

Karolo ea bohlokoa ea Avro ke ts'ehetso ea eona e matla bakeng sa schemas ea data e fetohang ha nako e ntse e ea, ke hore, e fetoha. Avro e utloisisa liphetoho tsa schema-ho hlakola, ho eketsa, kapa ho fetola masimo.

Avro e ts'ehetsa mefuta e fapaneng ea lits'ebetso tsa data. Mohlala, o ka etsa rekoto e nang le lethathamo, mofuta o baliloeng, le rekoto e nyane.

Liforomo tsa faele ka data e kholo: lenaneo le khuts'oane la thuto
Sebopeho sena se loketse ho ngolla sebaka sa ho lulisa (phetoho) sa letša la data (letša la data, kapa data lake - pokello ea maemo a ho boloka mefuta e fapaneng ea data ho kenyelletsa mehloli ea data ka kotloloho).

Kahoo, sebopeho sena se loketse haholo ho ngolla sebaka sa ho lulisa sa letša la data ka mabaka a latelang:

  1. Lintlha tse tsoang sebakeng sena hangata li baloa ka botlalo bakeng sa ts'ebetso e tsoelang pele ke litsamaiso tse tlase - 'me mokhoa o thehiloeng ho mela o sebetsa hantle haholoanyane tabeng ena.
  2. Lits'ebetso tse tlase li ka fumana litafole tsa schema habonolo lifaeleng - ha ho na tlhoko ea ho boloka li-schemas ka thoko polokelong ea kantle ea meta.
  3. Phetoho efe kapa efe ho schema ea mantlha e sebetsoa habonolo (schema evolution).

Parquet File Format

Parquet ke mofuta oa faele oa mohloli o bulehileng oa Hadoop o bolokang meaho ea data e hahiloeng ka mokhoa o bataletseng oa columnar.

Ha ho bapisoa le mokhoa o tloaelehileng oa mela, Parquet e sebetsa hantle haholoanyane mabapi le polokelo le ts'ebetso.

Sena se bohlokoa haholo bakeng sa lipotso tse balang likholomo tse itseng ho tsoa tafoleng e pharaletseng (likholomo tse ngata). Ka lebaka la sebopeho sa faele, ho baloa litšiea tse hlokahalang feela, kahoo I / O e bolokiloe bonyane.

Phatoho e nyane le tlhaloso: Ho utloisisa hamolemo sebopeho sa faele ea Parquet ho Hadoop, a re boneng hore na sebopeho se thehiloeng ho kholumo - ke hore, columnar - format ke eng. Sebopeho sena se boloka litekanyetso tse tšoanang bakeng sa kholomo ka 'ngoe hammoho.

Ka mohlala, rekoto e kenyelletsa ID, Lebitso, le likarolo tsa Lefapha. Tabeng ena, litekanyetso tsohle tsa li-ID li tla bolokoa hammoho, joalo ka litekanyetso tsa lebitso la lebitso, joalo-joalo. Tafole e tla shebahala tjena:

ID
lebitso
Lefapha

1
EA-1
d1

2
EA-2
d2

3
EA-3
d3

Ka sebopeho sa likhoele, data e tla bolokoa ka tsela e latelang:

1
EA-1
d1
2
EA-2
d2
3
EA-3
d3

Ka sebopeho sa faele sa columnar, data e tšoanang e tla bolokoa ka tsela ena:

1
2
3
EA-1
EA-2
EA-3
d1
d2
d3

Sebopeho sa columnar se sebetsa hantle haholo ha o hloka ho botsa likholomo tse ngata tafoleng. E tla bala feela likholomo tse hlokahalang hobane li bapile. Ka tsela ena, ts'ebetso ea I/O e lula e fokola.

Mohlala, o hloka feela kholomo ea NAME. IN sebopeho sa khoele Rekoto e 'ngoe le e' ngoe e ho dataset e hloka ho kengoa, e aroloe ka lebala, ebe e ntša lintlha tsa NAME. Sebopeho sa kholomo se u lumella hore u theohele ka kotloloho ho kholumo ea Lebitso hobane litekanyetso tsohle tsa kholomo eo li bolokiloe hammoho. Ha ho hlokahale hore u hlahlobe rekoto eohle.

Ka hona, sebopeho sa columnar se ntlafatsa ts'ebetso ea lipotso hobane e hloka nako e fokolang ea ho batla ho fihla likholomong tse hlokahalang le ho fokotsa palo ea ts'ebetso ea I / O hobane ho baloa litšiea tse lakatsehang feela.

E 'ngoe ea likarolo tse ikhethang Mokete ke hore ka mokhoa ona e ka boloka data ka meaho e emeng. Sena se bolela hore faeleng ea Parquet, esita le masimo a lihlaha a ka baloa ka bonngoe ntle le ho bala masimo ohle a mohaho o entsoeng sehlaha. Parquet e sebelisa shredding le algorithm ea kopano ho boloka meaho e hahiloeng.

Liforomo tsa faele ka data e kholo: lenaneo le khuts'oane la thuto
Ho utloisisa sebopeho sa faele sa Parquet ho Hadoop, o hloka ho tseba mantsoe a latelang:

  1. Sehlopha sa mela (sehlopha sa mela): karohano e hlakileng ea data ka mela. Sehlopha sa mela se na le sekhechana sa kholomo ka 'ngoe sete ea data.
  2. Sekhechana sa kholomo (column chunk): Sekhechana sa kholomo e itseng. Likaroloana tsena tsa kholomo li lula sehlopheng se itseng sa mela 'me li tiisitsoe hore li tla kopana faeleng.
  3. Leqephe (leqephe): Likaroloana tsa kholomo li arotsoe ka maqephe a ngotsoeng ka ho latellana. Maqephe a na le sehlooho se tloaelehileng, kahoo u ka tlōla tse sa hlokahaleng ha u bala.

Liforomo tsa faele ka data e kholo: lenaneo le khuts'oane la thuto
Mona sehlooho se na le nomoro ea boselamose feela PAR1 (4 li-byte) tse khethollang faele e le faele ea Parquet.

Letlapa le re:

  1. Metadata ea faele e nang le likhokahano tsa ho qala tsa metadata ea kholumo ka 'ngoe. Ha u bala, u tlameha ho qala ka ho bala metadata ea faele ho fumana likhechana tsohle tsa kholomo tse khahlang. Joale likarolo tsa kholomo li lokela ho baloa ka tatellano. Metadata e meng e kenyelletsa mofuta oa sebopeho, schema, le lipara life kapa life tse ling tsa boleng ba bohlokoa.
  2. Bolelele ba metadata (li-byte tse 4).
  3. Nomoro ea boselamose PAR1 (li-byte tse 4).

Sebopeho sa faele sa ORC

E ntlafalitse sebopeho sa faele ea kholomo (Optimized Row Column, KAROLO) e fana ka mokhoa o sebetsang hantle haholo oa ho boloka data mme o ne o etselitsoe ho hlola mefokolo ea lifomate tse ling. E boloka lintlha ka mokhoa o phethahetseng, o u lumellang hore u tlōle lintlha tse sa hlokahaleng - ntle le ho hloka kaho ea li-index tse kholo, tse rarahaneng kapa tse hlokometsoeng ka letsoho.

Melemo ea sebopeho sa ORC:

  1. Faele e le 'ngoe ke tlhahiso ea mosebetsi ka mong, e fokotsang mojaro ho NameNode (node ​​ea mabitso).
  2. Ts'ehetso bakeng sa mefuta ea data ea Hive, ho kenyeletsoa DateTime, decimal le mefuta e rarahaneng ea data (sebopeho, lenane, 'mapa le kopano).
  3. Ho bala ka nako e le 'ngoe faele e le' ngoe ka mekhoa e fapaneng ea RecordReader.
  4. Bokhoni ba ho arola lifaele ntle le ho hlahloba matšoao.
  5. Khakanyo ea boholo bo ka khonehang kabo ea memori ea qubu bakeng sa lits'ebetso tsa ho bala/ho ngola ho ipapisitsoe le tlhaiso-leseling e botlaseng ba faele.
  6. Metadata e bolokoa ho Protocol Buffers binary serialization format, e lumellang hore masimo a eketsoe le ho tlosoa.

Liforomo tsa faele ka data e kholo: lenaneo le khuts'oane la thuto
ORC e ​​boloka pokello ea likhoele ka faele e le 'ngoe,' me ka har'a pokello, data ea likhoele e bolokoa ka sebopeho sa columnar.

Faele ea ORC e ​​boloka lihlopha tsa mela e bitsoang metsero le lintlha tse tšehetsang botlaseng ba faele. The Postscript qetellong ea faele e na le li-parameter tsa compression le boholo ba footer e hatelitsoeng.

Boholo ba mela ea kamehla ke 250 MB. Ka lebaka la mela e meholo joalo, ho bala ho tsoa ho HDFS ho etsoa ka mokhoa o atlehileng haholoanyane: ka li-blocks tse kholo tse kopaneng.

Botlaaseng ba faele bo tlaleha lethathamo la litselana faeleng, palo ea mela ka tsela, le mofuta oa data oa kholomo ka 'ngoe. Boleng ba sephetho ba palo, min, max le kakaretso bakeng sa kholomo ka 'ngoe le tsona li ngotsoe moo.

Karolo e ka tlase ea sekhahla e na le lethathamo la libaka tsa molapo.

Lintlha tsa mela li sebelisoa ha ho hlahlojoa litafole.

Lintlha tsa index li kenyelletsa bonyane le boleng bo phahameng ka ho fetisisa bakeng sa kholomo ka 'ngoe le boemo ba mela kholomong ka 'ngoe. Li-index tsa ORC li sebelisoa feela ho khetha mela le lihlopha tsa mela, eseng ho araba lipotso.

Papiso ea lifomate tse fapaneng tsa faele

Avro bapisoa le Parquet

  1. Avro ke mokhoa oa ho boloka mela, ha Parquet e boloka data ka likholomo.
  2. Parquet e loketse hantle bakeng sa lipotso tsa tlhahlobo, ho bolelang hore ts'ebetso ea ho bala le data ea ho botsa e sebetsa hantle ho feta ho ngola.
  3. Lits'ebetso tsa ho ngola ho Avro li etsoa ka mokhoa o atlehileng ho feta oa Parquet.
  4. Avro e sebetsana le phetoho ea potoloho ka mokhoa o holileng haholoanyane. Parquet e ts'ehetsa feela tlatsetso ea schema, athe Avro e ts'ehetsa ho iphetola ha lintho tse ngata, ke hore, ho eketsa kapa ho fetola litšiea.
  5. Parquet e loketse ho botsa sehlopha sa litšiea tafoleng ea likholomo tse ngata. Avro e loketse ts'ebetso ea ETL moo re botsang likholomo tsohle.

ORC vs Parquet

  1. Parquet e boloka data e bolokiloeng hantle.
  2. ORC e ​​loketse hamolemo bakeng sa ho sutumelletsa pele.
  3. ORC e ​​tšehetsa thepa ea ACID.
  4. ORC e ​​hatella data hantle.

Ke eng hape eo u lokelang ho e bala ka sehlooho:

  1. Tlhahlobo e kholo ea data marung: hore na k'hamphani e ka ba e shebaneng le data joang.
  2. Tataiso e ikokobelitseng ea li-database Schemas.
  3. Seteishene sa rona sa thelekramo mabapi le phetoho ea dijithale.

Source: www.habr.com

Eketsa ka tlhaloso