Format file ing data gedhe: program pendidikan singkat

Format file ing data gedhe: program pendidikan singkat
Weather Deity dening Remarin

tim Solusi Cloud Mail.ru nawakake terjemahan artikel insinyur Rahul Bhatia saka Clairvoyant babagan format file apa sing ana ing data gedhe, apa fitur paling umum saka format Hadoop lan format sing luwih apik kanggo digunakake.

Napa format file sing beda-beda dibutuhake?

Kemacetan kinerja utama kanggo aplikasi sing aktif HDFS kayata MapReduce lan Spark yaiku wektu sing dibutuhake kanggo nggoleki, maca, lan nulis data. Masalah kasebut ditambah karo kesulitan ngatur set data gedhe yen kita duwe skema sing berkembang tinimbang sing tetep, utawa yen ana sawetara kendala panyimpenan.

Ngolah data gedhe nambah beban ing subsistem panyimpenan - Hadoop nyimpen data kanthi berlebihan kanggo entuk toleransi kesalahan. Saliyane disk, prosesor, jaringan, sistem input / output, lan liya-liyane dimuat. Nalika volume data mundhak, biaya pangolahan lan panyimpenan.

Macem-macem format file ing Hadoop diciptakake kanggo ngatasi masalah kasebut kanthi tepat. Milih format file sing cocog bisa menehi sawetara keuntungan sing signifikan:

  1. Wektu maca luwih cepet.
  2. Wektu ngrekam luwih cepet.
  3. File sing dienggo bareng.
  4. Dhukungan kanggo evolusi skema.
  5. Dhukungan kompresi sing ditambahi.

Sawetara format file ditujokake kanggo panggunaan umum, liyane kanggo panggunaan sing luwih spesifik, lan sawetara dirancang kanggo nyukupi karakteristik data tartamtu. Dadi pilihane pancen cukup gedhe.

Format file Avro

Kanggo serialisasi data Avro digunakake digunakake - iku adhedhasar string, yaiku, format panyimpenan data string ing Hadoop. Iki nyimpen skema ing format JSON, supaya gampang diwaca lan diinterpretasikake dening program apa wae. Data kasebut dhewe ana ing format binar, kompak lan efisien.

Sistem serialisasi Avro netral basa. File bisa diproses ing macem-macem basa, saiki C, C ++, C #, Java, Python lan Ruby.

Fitur utama Avro yaiku dhukungan sing kuat kanggo skema data sing owah saka wektu, yaiku, berkembang. Avro ngerti owah-owahan skema-mbusak, nambah, utawa ngganti kolom.

Avro ndhukung macem-macem struktur data. Contone, sampeyan bisa nggawe rekaman sing ngemot array, jinis enumerated, lan subrecord.

Format file ing data gedhe: program pendidikan singkat
Format iki becik kanggo nulis menyang zona kebangkrutan (transisi) saka tlaga data (data lake, utawa data lake - kumpulan conto kanggo nyimpen macem-macem jinis data saliyane sumber data langsung).

Dadi, format iki paling cocog kanggo nulis menyang zona pendaratan tlaga data amarga alasan ing ngisor iki:

  1. Data saka zona iki biasane diwaca kabeh kanggo diproses luwih lanjut dening sistem hilir - lan format basis baris luwih efisien ing kasus iki.
  2. Sistem hilir bisa kanthi gampang njupuk tabel skema saka file-ora perlu nyimpen skema kanthi kapisah ing panyimpenan meta eksternal.
  3. Sembarang owah-owahan menyang skema asli gampang diproses (evolusi skema).

Format file parket

Parquet minangka format file open source kanggo Hadoop sing disimpen struktur data nested ing format columnar flat.

Dibandhingake karo pendekatan baris tradisional, Parquet luwih efisien babagan panyimpenan lan kinerja.

Iki utamanΓ© migunani kanggo pitakonan sing maca kolom tartamtu saka sudhut (akeh kolom) tabel. Thanks kanggo format file, mung kolom sing dibutuhake diwaca, supaya I / O tetep minimal.

A digression cilik lan panjelasan: Kanggo luwih ngerti format file Parquet ing Hadoop, ayo kang ndeleng apa basis kolom - yaiku kolom - format. Format iki nyimpen nilai sing padha kanggo saben kolom bebarengan.

Contone, cathetan kasebut kalebu kolom ID, Jeneng, lan Departemen. Ing kasus iki, kabeh nilai kolom ID bakal disimpen bebarengan, uga nilai kolom Jeneng, lan liya-liyane. Tabel bakal katon kaya iki:

ID
jeneng
Departemen

1
emp1
d1

2
emp2
d2

3
emp3
d3

Ing format string, data bakal disimpen kaya ing ngisor iki:

1
emp1
d1
2
emp2
d2
3
emp3
d3

Ing format file columnar, data sing padha bakal disimpen kaya iki:

1
2
3
emp1
emp2
emp3
d1
d2
d3

Format kolom luwih efisien nalika sampeyan kudu takon pirang-pirang kolom saka tabel. Iku mung bakal maca kolom sing dibutuhake amarga padha jejer. Kanthi cara iki, operasi I/O tetep minimal.

Contone, sampeyan mung butuh kolom NAME. ING format string Saben rekaman ing set data kudu dimuat, diurai miturut kolom, banjur diekstrak data NAME. Format kolom ngidini sampeyan ngebor langsung menyang kolom Jeneng amarga kabeh nilai kanggo kolom kasebut disimpen bebarengan. Sampeyan ora kudu mindhai kabeh rekaman.

Mangkono, format kolom nambah kinerja query amarga mbutuhake wektu nggoleki kurang kanggo njaluk menyang kolom sing dibutuhake lan nyuda jumlah operasi I / O amarga mung kolom sing dikarepake diwaca.

Salah siji fitur unik Parket iku ing format iki bisa nyimpen data karo struktur nested. Iki tegese ing file Parket, malah kolom nested bisa diwaca individu tanpa kudu maca kabeh kolom ing struktur nested. Parquet nggunakake algoritma shredding lan perakitan kanggo nyimpen struktur nested.

Format file ing data gedhe: program pendidikan singkat
Kanggo ngerti format file Parquet ing Hadoop, sampeyan kudu ngerti istilah ing ngisor iki:

  1. Klompok senar (kelompok baris): divisi horisontal logis saka data menyang baris. Klompok baris kasusun saka fragmen saben kolom ing set data.
  2. Fragmen kolom (kolom cuwilan): A pecahan saka kolom tartamtu. Pecahan kolom iki manggon ing klompok baris tartamtu lan dijamin bakal cedhak ing file kasebut.
  3. Halaman (kaca): Pecahan kolom dibagi dadi kaca sing ditulis siji-sijine. Kaca-kaca kasebut nduweni judhul sing umum, supaya sampeyan bisa ngliwati kaca sing ora perlu nalika maca.

Format file ing data gedhe: program pendidikan singkat
Ing kene judhul mung ngemot nomer sihir PAR1 (4 bita) sing ngenali file kasebut minangka file Parquet.

Footer ngandika ing ngisor iki:

  1. Metadata file sing ngemot koordinat wiwitan saben metadata kolom. Nalika maca, sampeyan kudu maca metadata file kanggo nemokake kabeh fragmen kolom sing diminati. Bagian kolom kudu diwaca kanthi urutan. Metadata liyane kalebu versi format, skema, lan pasangan nilai kunci tambahan.
  2. Dawane metadata (4 bita).
  3. nomer sihir PAR1 (4 bait).

Format File ORC

Format file kolom-baris sing dioptimalake (Kolom Baris sing Dioptimalake, CRO) nawakake cara sing efisien banget kanggo nyimpen data lan dirancang kanggo ngatasi watesan format liyane. Nyimpen data ing wangun sing kompak, ngidini sampeyan ngliwati rincian sing ora perlu - tanpa mbutuhake pambangunan indeks sing gedhe, kompleks utawa dikelola kanthi manual.

Keuntungan saka format ORC:

  1. Siji file minangka output saben tugas, sing nyuda beban ing NameNode (node ​​jeneng).
  2. Dhukungan kanggo jinis data Hive, kalebu DateTime, desimal lan jinis data Komplek (struct, dhaftar, peta lan union).
  3. Maca simultaneous saka file padha dening pangolahan RecordReader beda.
  4. Kemampuan kanggo pamisah file tanpa mindhai kanggo spidol.
  5. Estimasi alokasi memori tumpukan maksimum kanggo proses maca / nulis adhedhasar informasi ing footer file.
  6. Metadata disimpen ing format serialisasi binar Protocol Buffers, sing ngidini lapangan bisa ditambah lan dibusak.

Format file ing data gedhe: program pendidikan singkat
ORC nyimpen koleksi senar ing file siji, lan ing koleksi kasebut, data senar disimpen ing format kolom.

File ORC nyimpen klompok garis sing diarani garis lan informasi pendukung ing footer file. Postscript ing pungkasan file ngemot parameter kompresi lan ukuran footer sing dikompres.

Ukuran garis standar yaiku 250 MB. Amarga garis-garis gedhe kasebut, maca saka HDFS ditindakake kanthi luwih efisien: ing blok sing cedhak.

Footer file nyathet dhaptar jalur ing file, jumlah baris saben jalur, lan jinis data saben kolom. Nilai asil count, min, max lan jumlah kanggo saben kolom uga ditulis ing kono.

Footer strip ngemot direktori lokasi stream.

Data cilik digunakake nalika mindhai tabel.

Data indeks kalebu nilai minimal lan maksimal kanggo saben kolom lan posisi baris ing saben kolom. Indeks ORC mung digunakake kanggo milih garis lan grup baris, ora kanggo njawab pitakon.

Perbandingan macem-macem format file

Avro dibandhingake Parquet

  1. Avro minangka format panyimpenan baris, nalika Parquet nyimpen data ing kolom.
  2. Parquet luwih cocog kanggo pitakon analitis, tegese operasi maca lan data query luwih efisien tinimbang nulis.
  3. Operasi nulis ing Avro ditindakake kanthi luwih efisien tinimbang ing Parquet.
  4. Avro ngurusi evolusi sirkuit kanthi luwih dewasa. Parket mung ndhukung tambahan skema, nalika Avro ndhukung evolusi multifungsi, yaiku, nambah utawa ngganti kolom.
  5. Parket becik kanggo pitakon subset kolom ing tabel multi-kolom. Avro cocok kanggo operasi ETL ing ngendi kita takon kabeh kolom.

ORC vs Parquet

  1. Parquet nyimpen data nested luwih apik.
  2. ORC luwih cocok kanggo predikat pushdown.
  3. ORC ndhukung sifat ACID.
  4. ORC ngompres data luwih apik.

Apa maneh kanggo maca babagan topik kasebut:

  1. Analisis data gedhe ing awan: kepiye perusahaan bisa dadi orientasi data.
  2. Pandhuan Sedheng kanggo Skema Database.
  3. Saluran telegram kita babagan transformasi digital.

Source: www.habr.com

Add a comment