Cov ntaub ntawv tawm tswv yim hauv cov ntaub ntawv loj: ib qho kev qhia luv luv

Cov ntaub ntawv tawm tswv yim hauv cov ntaub ntawv loj: ib qho kev qhia luv luv
Huab cua Deity los ntawm Remarin

pab neeg Mail.ru Huab Solutions muaj tsab xov xwm txhais engineer Rahul Bhatia los ntawm Clairvoyant txog dab tsi cov ntaub ntawv tawm tswv yim muaj nyob rau hauv cov ntaub ntawv loj, dab tsi yog cov yam ntxwv feem ntau ntawm Hadoop hom thiab hom twg yog qhov zoo dua los siv.

Vim li cas thiaj xav tau cov ntaub ntawv sib txawv?

Ib qho kev ua haujlwm tseem ceeb rau HDFS-enabled applications xws li MapReduce thiab Spark yog lub sijhawm nws siv los tshawb nrhiav, nyeem, thiab sau cov ntaub ntawv. Cov teeb meem no tau sib xyaw ua ke los ntawm qhov nyuaj hauv kev tswj hwm cov ntaub ntawv loj yog tias peb muaj cov txheej txheem hloov pauv ntau dua li qhov ruaj khov, lossis yog tias muaj qee qhov kev txwv.

Kev ua cov ntaub ntawv loj ua rau cov khoom thauj ntawm lub subsystem cia - Hadoop khaws cov ntaub ntawv rov ua dua kom ua tiav qhov ua txhaum cai. Ntxiv rau disks, processor, network, input/output system, thiab lwm yam yog loaded. Raws li qhov ntim ntawm cov ntaub ntawv loj hlob, yog li tus nqi ntawm kev ua thiab khaws cia.

Ntau hom ntaub ntawv hauv Hadoop invented los daws precisely cov teeb meem no. Xaiv cov ntaub ntawv tsim nyog tuaj yeem muab qee cov txiaj ntsig tseem ceeb:

  1. Lub sijhawm nyeem ntawv ceev dua.
  2. Lub sijhawm kaw nrawm dua.
  3. Muab cov ntaub ntawv.
  4. Txhawb rau schema evolution.
  5. Expanded compression kev txhawb nqa.

Qee cov ntaub ntawv tawm tswv yim yog npaj rau kev siv dav dav, lwm tus rau kev siv tshwj xeeb, thiab qee qhov yog tsim los ua kom tau raws li cov ntaub ntawv tshwj xeeb. Yog li qhov kev xaiv yeej loj heev.

Avro file format

rau cov ntaub ntawv serialization Avro yog dav siv - nws txoj hlua raws, uas yog, txoj hlua cov ntaub ntawv khaws cia hauv Hadoop. Nws khaws cov schema hauv JSON hom, ua kom yooj yim nyeem thiab txhais los ntawm txhua qhov kev pab cuam. Cov ntaub ntawv nws tus kheej yog nyob rau hauv binary hom, compact thiab npaum.

Avro's serialization system yog lus nruab nrab. Cov ntaub ntawv tuaj yeem ua tiav hauv ntau hom lus, tam sim no C, C ++, C#, Java, Python thiab Ruby.

Ib qho tseem ceeb ntawm Avro yog nws txoj kev txhawb nqa zoo rau cov ntaub ntawv schemas uas hloov pauv lub sijhawm, uas yog, hloov zuj zus. Avro nkag siab txog kev hloov pauv - rho tawm, ntxiv, lossis hloov chaw.

Avro txhawb ntau hom ntaub ntawv. Piv txwv li, koj tuaj yeem tsim cov ntaub ntawv uas muaj cov array, ib hom enumerated, thiab subrecord.

Cov ntaub ntawv tawm tswv yim hauv cov ntaub ntawv loj: ib qho kev qhia luv luv
Hom ntawv no yog qhov zoo tagnrho rau kev sau ntawv mus rau qhov chaw tsaws (kev hloov pauv) ntawm ib lub pas dej cov ntaub ntawv (data pas dej, los yog cov ntaub ntawv pas dej - ib qho kev sau ua ke rau khaws ntau hom ntaub ntawv ntxiv rau cov ntaub ntawv ncaj qha).

Yog li, hom ntawv no yog qhov zoo tshaj plaws rau kev sau ntawv mus rau thaj chaw tsaws ntawm cov ntaub ntawv pas dej rau cov laj thawj hauv qab no:

  1. Cov ntaub ntawv los ntawm cheeb tsam no feem ntau yog nyeem tag nrho rau kev ua haujlwm ntxiv los ntawm cov kab hauv qab - thiab cov kab ntawv raws li kev ua tau zoo dua hauv qhov no.
  2. Cov kab ke hauv qab tuaj yeem yooj yim khaws cov ntawv schema los ntawm cov ntaub ntawv-tsis tas yuav khaws cov schemas nyias nyob rau hauv sab nraud meta cia.
  3. Txhua qhov kev hloov pauv mus rau qhov qub schema yog yooj yim ua tiav (schema evolution).

Parquet File Format

Parquet yog ib hom ntawv qhib rau Hadoop uas khw muag khoom nested data structures nyob rau hauv flat columnar hom.

Piv nrog rau cov kab ke ib txwm, Parquet muaj txiaj ntsig zoo dua ntawm kev cia thiab kev ua haujlwm.

Qhov no yog qhov tshwj xeeb tshaj yog rau cov lus nug uas nyeem cov kab lus tshwj xeeb los ntawm cov lus dav (ntau kab). Ua tsaug rau cov ntaub ntawv hom ntawv, tsuas yog cov kab ntawv tsim nyog tau nyeem, yog li I / O khaws cia kom tsawg.

Me me digression thiab piav qhia: Kom nkag siab zoo dua Parquet cov ntaub ntawv hom hauv Hadoop, cia peb pom dab tsi ntawm kab-raws li - piv txwv li columnar - hom ntawv yog. Hom ntawv no khaws cov txiaj ntsig zoo sib xws rau txhua kem ua ke.

Piv txwv, cov ntaub ntawv suav nrog ID, Lub Npe, thiab Chaw Haujlwm. Nyob rau hauv cov ntaub ntawv no, tag nrho cov ID kem qhov tseem ceeb yuav muab khaws cia ua ke, raws li yuav lub npe kem nqi, thiab hais txog. Lub rooj yuav zoo li no:

ID
lub npe
Department

1
pem 1
d1

2
pem 2
d2

3
pem 3
d3

Hauv txoj hlua hom, cov ntaub ntawv yuav raug cawm raws li hauv qab no:

1
pem 1
d1
2
pem 2
d2
3
pem 3
d3

Hauv ib hom ntawv columnar, tib cov ntaub ntawv yuav raug cawm dim zoo li no:

1
2
3
pem 1
pem 2
pem 3
d1
d2
d3

Cov hom ntawv columnar yog qhov ua tau zoo dua thaum koj xav nug ntau kab los ntawm ib lub rooj. Nws tsuas yog nyeem cov kab ntawv uas xav tau vim tias lawv nyob ib sab. Nyob rau hauv txoj kev no, kev ua haujlwm I / O yog khaws cia kom tsawg.

Piv txwv li, koj tsuas xav tau NAME kem. IN txoj hlua hom Txhua cov ntaub ntawv nyob rau hauv cov ntaub ntawv yuav tsum tau muab thauj, parsed los ntawm teb, thiab ces muab rho tawm NAME cov ntaub ntawv. Daim ntawv kab ntawv tso cai rau koj mus laum ncaj qha mus rau lub npe kem vim tias tag nrho cov txiaj ntsig ntawm kab ntawv tau muab khaws cia ua ke. Koj tsis tas yuav luam theej duab tag nrho.

Yog li, cov ntawv columnar txhim kho cov lus nug kev ua tau zoo vim tias nws yuav tsum tau tshawb nrhiav tsawg dua kom tau mus rau cov kab uas xav tau thiab txo cov haujlwm I / O vim tsuas yog cov kab xav tau nyeem.

Ib qho tshwj xeeb nta Parquet yog tias nyob rau hauv hom ntawv no nws ua tau khaws cov ntaub ntawv nrog cov qauv nested. Qhov no txhais tau hais tias nyob rau hauv cov ntaub ntawv Parquet, txawm tias nested teb tuaj yeem nyeem tus kheej yam tsis tas yuav nyeem tag nrho cov teb hauv cov qauv nested. Parquet siv lub shredding thiab los ua ke algorithm los khaws cov qauv nested.

Cov ntaub ntawv tawm tswv yim hauv cov ntaub ntawv loj: ib qho kev qhia luv luv
Txhawm rau nkag siab txog cov ntaub ntawv Parquet hauv Hadoop, koj yuav tsum paub cov ntsiab lus hauv qab no:

  1. Pab pawg ntawm cov hlua (kab pab pawg): logical kab rov tav faib cov ntaub ntawv rau hauv kab. Ib pawg kab muaj ib feem ntawm txhua kab hauv cov ntaub ntawv teev.
  2. Kem fragment (kem chunk): Ib feem ntawm ib kem tshwj xeeb. Cov kab tawg no nyob hauv ib pab pawg tshwj xeeb ntawm kab thiab tau lees tias yuav txuas mus rau hauv cov ntaub ntawv.
  3. Π’Ρ€Π°Π½ΠΈΡ†Π° (nplooj): Kem fragments muab faib ua cov nplooj ntawv sau ib tom qab. Cov nplooj ntawv muaj cov npe sib xws, yog li koj tuaj yeem hla cov tsis tsim nyog thaum nyeem.

Cov ntaub ntawv tawm tswv yim hauv cov ntaub ntawv loj: ib qho kev qhia luv luv
Ntawm no lub npe tsuas muaj tus lej khawv koob PAR1 (4 bytes) uas txheeb xyuas cov ntaub ntawv raws li cov ntaub ntawv Parquet.

Lub footer hais tias:

  1. Cov ntaub ntawv metadata uas muaj qhov pib ua haujlwm ntawm txhua kem cov metadata. Thaum nyeem ntawv, koj yuav tsum xub nyeem cov ntaub ntawv metadata kom pom tag nrho cov kab ke ntawm kev txaus siab. Tom qab ntawd cov kab ntawv yuav tsum tau nyeem ua ntu zus. Lwm cov metadata muaj xws li hom ntawv version, schema, thiab ib qho ntxiv tus nqi tseem ceeb.
  2. Metadata ntev (4 bytes).
  3. khawv koob naj npawb PAR1 (4 bytes).

ORC File Format

Optimized kab-kem cov ntaub ntawv hom (Optimized Kab Kab, CRO) muab txoj hauv kev zoo heev los khaws cov ntaub ntawv thiab tau tsim los kov yeej cov kev txwv ntawm lwm hom ntawv. Khaws cov ntaub ntawv nyob rau hauv daim ntawv cog lus zoo kawg nkaus, tso cai rau koj hla cov ntsiab lus tsis tsim nyog - yam tsis tas yuav tsum muaj kev tsim kho ntawm cov loj, complex lossis manually tswj indexes.

Qhov zoo ntawm ORC hom:

  1. Ib cov ntaub ntawv yog cov zis ntawm txhua txoj haujlwm, uas txo cov load ntawm NameNode (lub npe node).
  2. Kev them nyiaj yug rau Hive cov ntaub ntawv hom, suav nrog DateTime, tus lej lej thiab cov ntaub ntawv nyuaj (struct, list, map thiab union).
  3. Kev nyeem ib txhij ntawm tib cov ntaub ntawv los ntawm cov txheej txheem RecordReader sib txawv.
  4. Muaj peev xwm faib cov ntaub ntawv yam tsis muaj scanning rau cov cim.
  5. Kev kwv yees ntawm qhov siab tshaj plaws ua tau heap nco kev faib rau kev nyeem / sau cov txheej txheem raws li cov ntaub ntawv hauv cov ntaub ntawv footer.
  6. Metadata yog khaws cia rau hauv Protocol Buffers binary serialization format, uas tso cai rau cov teb ntxiv thiab tshem tawm.

Cov ntaub ntawv tawm tswv yim hauv cov ntaub ntawv loj: ib qho kev qhia luv luv
ORC khaws cov ntawv sau ntawm cov hlua hauv ib cov ntaub ntawv, thiab hauv cov ntawv sau, cov ntaub ntawv cov ntaub ntawv khaws cia rau hauv ib hom ntawv columnar.

Cov ntaub ntawv ORC khaws cov pawg kab hu ua kab txaij thiab txhawb cov ntaub ntawv hauv qab ntawm cov ntaub ntawv. Lub Postscript tom kawg ntawm cov ntaub ntawv muaj compression tsis thiab qhov loj ntawm cov compressed footer.

Lub default stripe loj yog 250 MB. Vim yog cov kab txaij loj, kev nyeem ntawv los ntawm HDFS ua tau zoo dua: hauv cov kab sib txuas loj.

Cov ntaub ntawv footer sau cov npe ntawm txoj kab hauv cov ntaub ntawv, tus lej ntawm kab ib txoj kab, thiab cov ntaub ntawv hom ntawm txhua kab. Qhov tshwm sim tus nqi ntawm suav, min, max thiab cov lej rau txhua kab kuj tau sau rau ntawd.

Lub footer ntawm lub sawb muaj cov npe ntawm cov chaw ntws.

Cov ntaub ntawv kab yog siv thaum luam cov ntxhuav.

Index cov ntaub ntawv suav nrog qhov tsawg kawg nkaus thiab siab tshaj qhov tseem ceeb rau txhua kab thiab txoj haujlwm ntawm cov kab hauv txhua kab. ORC indexes tsuas yog siv rau xaiv kab txaij thiab kab kab, tsis yog los teb cov lus nug.

Kev sib piv ntawm cov ntaub ntawv sib txawv

Avro piv rau Parquet

  1. Avro yog kab ntawv cia, thaum Parquet khaws cov ntaub ntawv hauv kab.
  2. Parquet yog qhov zoo dua rau kev txheeb xyuas cov lus nug, lub ntsiab lus nyeem kev ua haujlwm thiab kev nug cov ntaub ntawv muaj txiaj ntsig ntau dua li kev sau.
  3. Sau cov haujlwm hauv Avro tau ua tau zoo dua li hauv Parquet.
  4. Avro cuam tshuam nrog Circuit Court evolution ntau maturely. Parquet tsuas yog txhawb nqa schema ntxiv, thaum Avro txhawb kev hloov pauv ntau yam, uas yog, ntxiv lossis hloov kab.
  5. Parquet yog qhov zoo tagnrho rau querying subset ntawm txhua kab hauv ntau kab lus. Avro yog tsim rau ETL cov haujlwm uas peb nug txhua kab.

ORC vs Parquet

  1. Parquet khaws cov ntaub ntawv nested zoo dua.
  2. ORC yog qhov zoo dua rau kev ua haujlwm rau kev thawb.
  3. ORC txhawb nqa cov khoom ACID.
  4. ORC compresses cov ntaub ntawv zoo dua.

Dab tsi ntxiv los nyeem ntawm lub ncauj lus:

  1. Kev tsom xam cov ntaub ntawv loj hauv huab: yuav ua li cas lub tuam txhab tuaj yeem ua cov ntaub ntawv-taw qhia.
  2. Phau Ntawv Qhia Txog Kev Txom Nyem rau Database Schemas.
  3. Peb telegram channel hais txog kev hloov pauv digital.

Tau qhov twg los: www.hab.com

Ntxiv ib saib