timu Mail.ru Cloud Solutions umafuna kumasulira nkhani injiniya Rahul Bhatia wochokera ku Clairvoyant za mafayilo omwe ali mu data yayikulu, ndi zinthu ziti zomwe zimakonda kwambiri mawonekedwe a Hadoop ndi mtundu wanji womwe ndi wabwino kugwiritsa ntchito.
Cholepheretsa chachikulu pamapulogalamu omwe ali ndi HDFS monga MapReduce ndi Spark ndi nthawi yomwe zimatengera kufufuza, kuwerenga, ndi kulemba deta. Mavutowa amakulitsidwa ndi zovuta pakuwongolera ma seti akulu akulu ngati tili ndi schema yosintha m'malo mokhazikika, kapena ngati pali zopinga zina zosungira.
Kukonza deta yayikulu kumawonjezera katundu pazigawo zosungirako - Hadoop amasunga zambiri kuti akwaniritse zolakwa. Kuphatikiza pa ma disks, purosesa, network, input/output system, ndi zina zotero zimanyamulidwa. Pamene kuchuluka kwa deta kumakula, momwemonso mtengo wa kukonza ndi kusunga.
Mitundu yosiyanasiyana ya mafayilo mu Hadoop anapangidwa kuti athetse mavutowa ndendende. Kusankha mtundu woyenera wa fayilo kungapereke phindu lalikulu:
Nthawi yowerenga mwachangu.
Nthawi yojambulira mwachangu.
Mafayilo ogawana.
Thandizo pakusintha kwa schema.
Thandizo lowonjezera la compression.
Mafayilo ena amapangidwa kuti azigwiritsidwa ntchito wamba, ena kuti agwiritsidwe ntchito mwapadera, ndipo ena amapangidwa kuti akwaniritse mawonekedwe amtundu wa data. Kotero kusankha ndi kwakukulu ndithu.
Mtundu wa fayilo ya Avro
chifukwa kusanja deta Avro amagwiritsidwa ntchito kwambiri - izo chingwe zochokera, ndiko kuti, mtundu wosungiramo zingwe mu Hadoop. Imasunga schema mumtundu wa JSON, kupangitsa kuti ikhale yosavuta kuwerenga ndikutanthauzira ndi pulogalamu iliyonse. Deta yokhayo ili mu mawonekedwe a binary, ophatikizana komanso ogwira mtima.
Dongosolo la serialization la Avro sililowerera pachilankhulo. Mafayilo amatha kusinthidwa m'zilankhulo zosiyanasiyana, pano C, C++, C#, Java, Python ndi Ruby.
Chofunikira kwambiri cha Avro ndikuthandizira kwake kolimba kwa ma data omwe amasintha pakapita nthawi, ndiko kuti, kusinthika. Avro amamvetsetsa kusintha kwa schema-kufufuta, kuwonjezera, kapena kusintha magawo.
Avro imathandizira mitundu yosiyanasiyana ya data. Mwachitsanzo, mutha kupanga zolemba zomwe zili ndi gulu, mtundu wowerengeka, ndi kalembedwe kakang'ono.
Fomu iyi ndiyabwino polembera ku malo otsetsereka (kusintha) kwa nyanja ya data (data lake, kapena data lake - mndandanda wa zochitika zosungira mitundu yosiyanasiyana ya deta kuwonjezera pa magwero a deta mwachindunji).
Chifukwa chake, mawonekedwe awa ndiwabwino kwambiri polembera malo otsetsereka a nyanja ya data pazifukwa izi:
Machitidwe otsika amatha kupeza mosavuta matebulo a schema m'mafayilo-palibe chifukwa chosungira schemas padera posungira kunja kwa meta.
Kusintha kulikonse ku schema yoyambirira kumakonzedwa mosavuta (kusintha kwa schema).
Fayilo ya Parquet
Parquet ndi fayilo yotseguka ya Hadoop yomwe imasunga adayika ma data mumtundu wathyathyathya wa columnar.
Poyerekeza ndi njira yachikhalidwe ya mzere, Parquet ndiyothandiza kwambiri posungirako komanso magwiridwe antchito.
Izi ndizothandiza makamaka pamafunso omwe amawerenga mizati yeniyeni kuchokera patebulo lalikulu (zambiri). Chifukwa cha mawonekedwe a fayilo, mizati yofunikira yokha ndiyomwe imawerengedwa, kotero I / O imakhala yochepa.
Kutuluka pang'ono ndi kufotokozera: Kuti mumvetse bwino mawonekedwe a fayilo ya Parquet mu Hadoop, tiyeni tiwone momwe mzere wokhazikika - mwachitsanzo, columnar - format. Mtunduwu umasunga zikhalidwe zofanana pagawo lililonse palimodzi.
Mwachitsanzo, mbiriyo ili ndi ID, Dzina, ndi magawo a Dipatimenti. Pachifukwa ichi, ziwerengero zonse za ID zidzasungidwa palimodzi, monga momwe zidzakhalire dzina la dzina, ndi zina zotero. Tebulo liziwoneka motere:
ID dzina Dipatimenti
1
Emp1
d1
2
Emp2
d2
3
Emp3
d3
Mumtundu wa chingwe, deta idzasungidwa motere:
1
Emp1
d1
2
Emp2
d2
3
Emp3
d3
Mu fayilo ya columnar, deta yomweyi idzasungidwa motere:
1
2
3
Emp1
Emp2
Emp3
d1
d2
d3
Mawonekedwe a columnar ndiabwino kwambiri mukafuna kufunsa mazaza angapo patebulo. Ingowerenga mizati yofunikira chifukwa ili moyandikana. Mwanjira iyi, ntchito za I/O zimachepetsedwa.
Mwachitsanzo, mumangofunika ndime ya NAME. MU mtundu wa chingwe Zolemba zilizonse zomwe zili mu dataset zimayenera kukwezedwa, kutsatiridwa ndi gawo, kenako ndikuchotsa data ya NAME. Mawonekedwe amzanja amakulolani kuti mutsike molunjika ku gawo la Dzina chifukwa zikhalidwe zonse za gawolo zimasungidwa palimodzi. Simuyenera kuyang'ana zojambula zonse.
Chifukwa chake, mawonekedwe a columnar amawongolera magwiridwe antchito amafunso chifukwa amafunikira nthawi yochepa yoyang'ana kuti afike pamizere yofunikira ndikuchepetsa kuchuluka kwa ntchito za I / O chifukwa ndime zomwe mukufuna zimawerengedwa.
Chimodzi mwazinthu zapadera parquet ndi kuti mu mawonekedwe awa akhoza sungani zidziwitso zokhala ndi zomangira zisa. Izi zikutanthauza kuti mu fayilo ya Parquet, ngakhale minda yokhalamo imatha kuwerengedwa payekhapayekha popanda kuwerenga minda yonse yomwe ili m'chisa. Parquet amagwiritsa ntchito shredding ndi algorithm yophatikizira kusungirako zisa.
Kuti mumvetse mtundu wa fayilo ya Parquet ku Hadoop, muyenera kudziwa mawu awa:
Gulu la mizere (gulu la mizere): kugawikana kopingasa koyenera kwa data m'mizere. Gulu la mizere lili ndi chidutswa cha gawo lililonse mu seti ya data.
Chidutswa cha mzati (chidutswa chandalama): Chidutswa chandalama inayake. Zidutswa zazanjazi zimakhala m'gulu linalake la mizere ndipo zimatsimikiziridwa kukhala zolumikizana mufayilo.
Tsamba (tsamba): Zidutswa za mβzazagawidwa mβmasamba olembedwa chimodzi pambuyo pa chimzake. Masamba ali ndi mutu wamba, kotero mutha kudumpha osafunikira powerenga.
Apa mutuwo uli ndi nambala yamatsenga PAR1 (4 bytes) yomwe imazindikiritsa fayilo ngati fayilo ya Parquet.
Pansi pake akuti:
Fayilo ya metadata yomwe ili ndi zoyambira za metadata ya gawo lililonse. Powerenga, muyenera kuwerenga kaye metadata ya fayilo kuti mupeze zidutswa zonse zomwe zimakonda. Zigawo zazanjazi ziyenera kuwerengedwa motsatizana. Metadata ina imaphatikizapo mtundu wa mtundu, schema, ndi zina zowonjezera zamtengo wapatali.
Fayilo ya ORC imasunga magulu a mizere yotchedwa milozo ndi chidziwitso chothandizira m'munsi mwa fayilo. The Postscript kumapeto kwa fayilo ili ndi magawo oponderezedwa ndi kukula kwa chopondapo choponderezedwa.
Kukula kwa mizere yokhazikika ndi 250 MB. Chifukwa cha mikwingwirima yayikulu chotere, kuwerenga kuchokera ku HDFS kumachitika bwino kwambiri: m'mabwalo akulu olumikizana.
Fayilo yapansi panthaka imalemba mndandanda wamizere mufayilo, kuchuluka kwa mizere pamzere uliwonse, ndi mtundu wa data pagawo lililonse. Zotsatira za chiwerengero, min, max ndi sum pagawo lililonse zimalembedwanso pamenepo.
Pansi pa mzerewu muli chikwatu cha malo omwe amatsikira.
Deta ya mizere imagwiritsidwa ntchito posanthula matebulo.
Deta ya index imaphatikizapo ziwerengero zochepa komanso zopambana pagawo lililonse komanso malo amizere pagawo lililonse. Ma index a ORC amagwiritsidwa ntchito posankha milozo ndi magulu amizere, osati poyankha mafunso.
Kufananiza kwamafayilo osiyanasiyana
Avro poyerekeza ndi Parquet
Avro ndi mtundu wosungira mizere, pomwe Parquet imasunga deta m'mizere.