{"id":84416,"date":"2020-06-07T13:42:50","date_gmt":"2020-06-07T11:42:50","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/formaty-fajlov-v-bolshih-dannyh-kratkij-likbez"},"modified":"2020-06-07T13:42:50","modified_gmt":"2020-06-07T11:42:50","slug":"formaty-fajlov-v-bolshih-dannyh-kratkij-likbez","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/formaty-fajlov-v-bolshih-dannyh-kratkij-likbez","title":{"rendered":"F\u00e1jlform\u00e1tok a nagy adatokban: r\u00f6vid \u00fatmutat\u00f3","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"F\u00e1jlform\u00e1tok a nagy adatokban: r\u00f6vid \u00fatmutat\u00f3\" src=\"\/wp-content\/uploads\/2020\/06\/c909979e0474bc6a1f7234cd88167220.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.deviantart.com\/remarin\/art\/Weather-Deity-743892889\"><i>Az id\u0151j\u00e1r\u00e1s istene Remarin \u00e1ltal<\/i><\/a><\/noindex> <\/p>\n<p>A parancs <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/\">Mail.ru Cloud Solutions<\/a><\/noindex> aj\u00e1nlatot tesz <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.clairvoyantsoft.com\/big-data-file-formats-3fb659903271\">cikkford\u00edt\u00e1s\u00e1t<\/a><\/noindex> Rahul Bhatia, a Clairvoyant m\u00e9rn\u00f6ke arr\u00f3l besz\u00e9l, hogy milyen f\u00e1jlform\u00e1tumok l\u00e9teznek a big data-ban, milyen legelterjedtebb Hadoop form\u00e1tumfunkci\u00f3k vannak, \u00e9s melyik form\u00e1tumot \u00e9rdemes haszn\u00e1lni.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Mi\u00e9rt sz\u00fcks\u00e9gesek a k\u00fcl\u00f6nb\u00f6z\u0151 f\u00e1jlform\u00e1tumok?<\/h2>\n<p>\nA HDFS-t t\u00e1mogat\u00f3 alkalmaz\u00e1sok, mint a MapReduce \u00e9s a Spark teljes\u00edtm\u00e9nye szempontj\u00e1b\u00f3l komoly sz\u0171k keresztmetszet a keres\u00e9si, olvas\u00e1si \u00e9s \u00edr\u00e1si id\u0151k. Ezek a probl\u00e9m\u00e1k s\u00falyosbodnak, ha nem r\u00f6gz\u00edtett, hanem fejl\u0151d\u0151 s\u00e9m\u00e1val rendelkez\u0151, vagy valamilyen t\u00e1rol\u00e1si korl\u00e1toz\u00e1sokkal b\u00edr\u00f3 nagy adathalmazok kezel\u00e9s\u00e9r\u0151l van sz\u00f3.<\/p>\n<p>A nagy adatok feldolgoz\u00e1sa megn\u00f6veli a t\u00e1rol\u00f3 alrendszer terhel\u00e9s\u00e9t - a Hadoop redund\u00e1ns m\u00f3don t\u00e1rolja az adatokat a megb\u00edzhat\u00f3s\u00e1g \u00e9rdek\u00e9ben. A lemezek mellett a processzor, a h\u00e1l\u00f3zat, a bemeneti-kimeneti rendszer stb. is terhel\u0151dnek. Az adatok mennyis\u00e9g\u00e9nek n\u00f6veked\u00e9s\u00e9vel az elt\u00e1rol\u00e1suk \u00e9s feldolgoz\u00e1suk k\u00f6lts\u00e9gei is n\u0151nek.<\/p>\n<p>A k\u00fcl\u00f6nb\u00f6z\u0151 f\u00e1jlform\u00e1tumok <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/blog\/zachem-nuzhen-hadoop\">Hadoop<\/a><\/noindex> pontosan ezeknek a probl\u00e9m\u00e1knak a megold\u00e1s\u00e1ra lettek kifejlesztve. A megfelel\u0151 f\u00e1jlform\u00e1tum kiv\u00e1laszt\u00e1sa jelent\u0151s el\u0151ny\u00f6ket hozhat:<\/p>\n<ol>\n<li>Gyorsabb olvas\u00e1si id\u0151.<\/li>\n<li>Gyorsabb \u00edr\u00e1si id\u0151.<\/li>\n<li>Megosztott f\u00e1jlok.<\/li>\n<li>S\u00e9m\u00e1k evol\u00faci\u00f3j\u00e1nak t\u00e1mogat\u00e1sa.<\/li>\n<li>Jav\u00edtott t\u00f6m\u00f6r\u00edt\u00e9si t\u00e1mogat\u00e1s.<\/li>\n<\/ol>\n<p>\nEgyes f\u00e1jlform\u00e1tumokat \u00e1ltal\u00e1nos haszn\u00e1latra terveztek, m\u00edg m\u00e1sok specifikus vari\u00e1ci\u00f3kra k\u00e9sz\u00fcltek, \u00e9s egyesek kifejezetten az adatok egyedi jellemz\u0151ir\u0151l sz\u00f3lnak. Teh\u00e1t a v\u00e1laszt\u00e9k val\u00f3ban el\u00e9g nagy.<\/p>\n<h2>Az Avro f\u00e1jlform\u00e1tum<\/h2>\n<p>\nA <i>az adatok soros\u00edt\u00e1s\u00e1ra <\/i>sz\u00e9les k\u00f6rben haszn\u00e1lt \u2013 ez egy <i>sorok alap\u00fa<\/i>, m\u00e1s sz\u00f3val text alap\u00fa, adatf\u00e1jl-t\u00e1rol\u00e1si form\u00e1tum a Hadoopban. A s\u00e9ma JSON form\u00e1tumban van t\u00e1rolva, megk\u00f6nny\u00edtve annak olvas\u00e1s\u00e1t \u00e9s \u00e9rtelmez\u00e9s\u00e9t b\u00e1rmely program \u00e1ltal. Maguk az adatok bin\u00e1ris form\u00e1tumban, t\u00f6m\u00f6ren \u00e9s hat\u00e9konyan vannak elhelyezve.<\/p>\n<p>Az Avro soros\u00edt\u00e1si rendszere nyelvsemleges. A f\u00e1jlokat k\u00fcl\u00f6nb\u00f6z\u0151 programoz\u00e1si nyelvekkel lehet feldolgozni, jelenleg a C, C++, C#, Java, Python \u00e9s Ruby t\u00e1mogatott.<\/p>\n<p>Az Avro kulcsfontoss\u00e1g\u00fa jellemz\u0151je a megb\u00edzhat\u00f3 s\u00e9ma t\u00e1mogat\u00e1s, amely id\u0151vel v\u00e1ltozik, azaz fejl\u0151dik. Az Avro meg\u00e9rti a s\u00e9m\u00e1k v\u00e1ltoz\u00e1s\u00e1t \u2014 mez\u0151k elt\u00e1vol\u00edt\u00e1s\u00e1t, hozz\u00e1ad\u00e1s\u00e1t vagy m\u00f3dos\u00edt\u00e1s\u00e1t.<\/p>\n<p>Az Avro t\u00e1mogatja a v\u00e1ltozatos adatt\u00edpusokat. P\u00e9ld\u00e1ul l\u00e9trehozhatunk egy rekordot, amely tartalmaz egy t\u00f6mb\u00f6t, egy felsorolhat\u00f3 t\u00edpust \u00e9s egy alkotott rekordot.<\/p>\n<p><img decoding=\"async\" alt=\"F\u00e1jlform\u00e1tok a nagy adatokban: r\u00f6vid \u00fatmutat\u00f3\" src=\"\/wp-content\/uploads\/2020\/06\/9bf044329ac0980a48a125c505dee265.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEz a form\u00e1tum ide\u00e1lis a data lake \u00e1tmeneti z\u00f3n\u00e1j\u00e1ba val\u00f3 \u00edr\u00e1sra (<noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/blog\/chto-takoe-ozera-dannyh-i-zachem-tam-hranyat-big-data\">adat t\u00f3<\/a><\/noindex>, vagyis data lake \u2013 k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa adatok t\u00e1rol\u00e1s\u00e1ra szolg\u00e1l\u00f3 p\u00e9ld\u00e1nyok gy\u0171jtem\u00e9nye az adatforr\u00e1sok mellett. <\/p>\n<p>Teh\u00e1t az adatl\u00e1t\u00f3bevonati z\u00f3n\u00e1ba val\u00f3 \u00edr\u00e1shoz ez a form\u00e1tum a k\u00f6vetkez\u0151 okok miatt a legmegfelel\u0151bb:<\/p>\n<ol>\n<li>Az ebb\u0151l a z\u00f3n\u00e1b\u00f3l sz\u00e1rmaz\u00f3 adatokat \u00e1ltal\u00e1ban teljes eg\u00e9sz\u00e9ben olvass\u00e1k be a tov\u00e1bbi feldolgoz\u00e1s \u00e9rdek\u00e9ben, \u00edgy a sorokra alapozott form\u00e1tum ebben az esetben hat\u00e9konyabb.<\/li>\n<li>Az als\u00f3bb rendszerek k\u00f6nnyen kinyerhetik a s\u00e9mat\u00e1bl\u00e1kat a f\u00e1jlokb\u00f3l \u2013 nem sz\u00fcks\u00e9ges a s\u00e9m\u00e1k k\u00fcl\u00f6n k\u00fcls\u0151 meta-t\u00e1rol\u00f3ban val\u00f3 t\u00e1rol\u00e1sa.<\/li>\n<li>B\u00e1rmely v\u00e1ltoz\u00e1s az alap\u00e9rtelmezett s\u00e9m\u00e1ban k\u00f6nnyen kezelhet\u0151 (s\u00e9ma evol\u00faci\u00f3).<\/li>\n<\/ol>\n<p><\/p>\n<h2>A Parquet f\u00e1jlform\u00e1tum<\/h2>\n<p>\nA Parquet egy ny\u00edlt forr\u00e1sk\u00f3d\u00fa f\u00e1jlform\u00e1tum a Hadoop sz\u00e1m\u00e1ra, amely t\u00e1rolja <i>a be\u00e1gyazott adatstrukt\u00far\u00e1kat lapos oszlopos form\u00e1tumban.<\/i>.<\/p>\n<p>A hagyom\u00e1nyos soralap\u00fa megk\u00f6zel\u00edt\u00e9ssel \u00f6sszehasonl\u00edtva a Parquet t\u00e1rol\u00e1si \u00e9s teljes\u00edtm\u00e9ny szempontj\u00e1b\u00f3l hat\u00e9konyabb.<\/p>\n<p>Ez k\u00fcl\u00f6n\u00f6sen hasznos olyan lek\u00e9rdez\u00e9sek eset\u00e9n, amelyek sz\u00e9les (sok oszlopos) t\u00e1bl\u00e1zatb\u00f3l csak bizonyos oszlopokat olvasnak be. A f\u00e1jlform\u00e1tum lehet\u0151v\u00e9 teszi, hogy csak a sz\u00fcks\u00e9ges oszlopok olvashat\u00f3k, \u00edgy minimaliz\u00e1lva a bemeneti-kimeneti m\u0171veleteket.<\/p>\n<p><strong>Kis elt\u00e9r\u00e9s - magyar\u00e1zat<\/strong>: ahhoz, hogy jobban meg\u00e9rts\u00fck a Parquet f\u00e1jlform\u00e1tumot a Hadoopban, n\u00e9zz\u00fck meg, mi az az oszlopokra alapozott, azaz oszlopos form\u00e1tum. Ebben a form\u00e1tumban az egyes oszlopok azonos t\u00edpus\u00fa \u00e9rt\u00e9kei egy\u00fctt ker\u00fclnek t\u00e1rol\u00e1sra. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/netjs.blogspot.com\/\">P\u00e9ld\u00e1ul<\/a><\/noindex>, a bejegyz\u00e9s tartalmazza az ID, n\u00e9v \u00e9s oszt\u00e1ly mez\u0151ket. Ebben az esetben az ID oszlop \u00f6sszes \u00e9rt\u00e9ke egy\u00fctt ker\u00fcl t\u00e1rol\u00e1sra, ahogy a n\u00e9v oszlop \u00e9rt\u00e9kei is, \u00e9s \u00edgy tov\u00e1bb. A t\u00e1bla k\u00f6r\u00fclbel\u00fcl \u00edgy fog kin\u00e9zni:<\/p>\n<p><strong>) \u00e9s<\/strong><br \/>\n<strong>N\u00e9v<\/strong><br \/>\n<strong>Oszt\u00e1ly<\/strong><\/p>\n<p>1<br \/>\nemp1<br \/>\nd1<\/p>\n<p>2<br \/>\nemp2<br \/>\nd2<\/p>\n<p>3<br \/>\nemp3<br \/>\nd3<\/p>\n<p>\nA soros form\u00e1tumban az adatok \u00edgy lesznek t\u00e1rolva:<\/p>\n<p>1<br \/>\nemp1<br \/>\nd1<br \/>\n2<br \/>\nemp2<br \/>\nd2<br \/>\n3<br \/>\nemp3<br \/>\nd3<\/p>\n<p>\nA f\u00e1jlok oszlopos form\u00e1tum\u00e1ban ugyanazok az adatok \u00edgy lesznek t\u00e1rolva:<\/p>\n<p>1<br \/>\n2<br \/>\n3<br \/>\nemp1<br \/>\nemp2<br \/>\nemp3<br \/>\nd1<br \/>\nd2<br \/>\nd3<\/p>\n<p>\nAz oszlopos form\u00e1tum hat\u00e9konyabb, amikor n\u00e9h\u00e1ny oszlopot kell lek\u00e9rdezni a t\u00e1bl\u00e1zatb\u00f3l. Csak a sz\u00fcks\u00e9ges oszlopokat olvassa be, mert ezek szomsz\u00e9dosak. \u00cdgy minimaliz\u00e1lva a bemeneti-kimeneti m\u0171veleteket.<\/p>\n<p>P\u00e9ld\u00e1ul csak a NAME oszlopra van sz\u00fcks\u00e9ge. A<noindex><a rel=\"nofollow\" href=\"http:\/\/netjs.blogspot.com\/\"> soros form\u00e1tumban<\/a><\/noindex> minden bejegyz\u00e9st a k\u00e9szletb\u0151l be kell t\u00f6lteni, mez\u0151kre kell bontani, majd ki kell nyerni a NAME adatokat. Az oszlopos form\u00e1tum lehet\u0151v\u00e9 teszi, hogy k\u00f6zvetlen\u00fcl a Name oszlophoz l\u00e9pjen, mivel az \u00f6sszes \u00e9rt\u00e9k ehhez az oszlophoz egy\u00fctt van t\u00e1rolva. Nem kell v\u00e9gigszkennelni az eg\u00e9sz bejegyz\u00e9st.<\/p>\n<p>Ez\u00e9rt az oszlopos form\u00e1tum jav\u00edtja a lek\u00e9rdez\u00e9sek teljes\u00edtm\u00e9ny\u00e9t, mivel kevesebb keres\u00e9si id\u0151 sz\u00fcks\u00e9ges a sz\u00fcks\u00e9ges oszlopokhoz val\u00f3 hozz\u00e1f\u00e9r\u00e9shez \u00e9s cs\u00f6kken az I\/O m\u0171veletek sz\u00e1ma, mivel csak a sz\u00fcks\u00e9ges oszlopokat olvassuk.<\/p>\n<p>Egyedi jellemz\u0151je<noindex><a rel=\"nofollow\" href=\"http:\/\/netjs.blogspot.com\/\"> Parquet<\/a><\/noindex> az, hogy ebben a form\u00e1tumban k\u00e9pes <i>be\u00e1gyazott strukt\u00far\u00e1k t\u00e1rol\u00e1s\u00e1ra<\/i>. Ez azt jelenti, hogy a Parquet f\u00e1jlban m\u00e9g a be\u00e1gyazott mez\u0151ket is k\u00fcl\u00f6n olvashatjuk, an\u00e9lk\u00fcl hogy az \u00f6sszes mez\u0151t el kellene olvasnunk a be\u00e1gyazott strukt\u00far\u00e1ban. A Parquet be\u00e1gyazott strukt\u00far\u00e1k t\u00e1rol\u00e1s\u00e1ra darabol\u00e1si \u00e9s \u00f6sszes\u00edt\u00e9si algoritmust haszn\u00e1l.<\/p>\n<p><img decoding=\"async\" alt=\"F\u00e1jlform\u00e1tok a nagy adatokban: r\u00f6vid \u00fatmutat\u00f3\" src=\"\/wp-content\/uploads\/2020\/06\/8cba9a4faccc4bac7c5bbc3eec163a3c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA Hadoop Parquet f\u00e1jlform\u00e1tum\u00e1nak meg\u00e9rt\u00e9s\u00e9hez meg kell ismern\u00fcnk a k\u00f6vetkez\u0151 kifejez\u00e9seket:<\/p>\n<ol>\n<li><strong>Sorcsoport<\/strong> (row group): a sorok logikai v\u00edzszintes feloszt\u00e1sa. A sorcsoport egy t\u00f6red\u00e9ket tartalmaz minden oszlopb\u00f3l az adathalmozaton.<\/li>\n<li><strong>Oszlopt\u00f6red\u00e9k<\/strong> (column chunk): egy adott oszlop t\u00f6red\u00e9ke. Ezek az oszlopt\u00f6red\u00e9kek egy adott sorcsoportban tal\u00e1lhat\u00f3k, \u00e9s garant\u00e1ltan szomsz\u00e9dosak lesznek a f\u00e1jlban.<\/li>\n<li><strong>Oldal<\/strong> (page): az oszlopt\u00f6red\u00e9kek oldalakra vannak felosztva, amelyek egym\u00e1s ut\u00e1n lettek r\u00f6gz\u00edtve. Az oldalak k\u00f6z\u00f6s fejl\u00e9cet tartalmaznak, \u00edgy olvas\u00e1skor kihagyhatjuk a feleslegeseket.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"F\u00e1jlform\u00e1tok a nagy adatokban: r\u00f6vid \u00fatmutat\u00f3\" src=\"\/wp-content\/uploads\/2020\/06\/0f3d583bc2f07b6fef8430f10433cc14.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nItt a fejl\u00e9c egyszer\u0171en egy var\u00e1zssz\u00e1mot tartalmaz <i>PAR1<\/i> (4 b\u00e1jt), amely az f\u00e1jlt az Parquet form\u00e1tum\u00fa f\u00e1jlk\u00e9nt azonos\u00edtja.<\/p>\n<p>A l\u00e1bl\u00e9cben a k\u00f6vetkez\u0151 tal\u00e1lhat\u00f3:<\/p>\n<ol>\n<li>A f\u00e1jl metaadatai, amelyek tartalmazz\u00e1k minden oszlop metaadatainak kezd\u0151 koordin\u00e1t\u00e1it. Olvas\u00e1skor el\u0151sz\u00f6r a f\u00e1jl metaadatait kell elolvasni, hogy megtal\u00e1ljuk az \u00f6sszes sz\u00fcks\u00e9ges oszlopt\u00f6red\u00e9ket. Ezut\u00e1n az oszlop t\u00f6red\u00e9keket egym\u00e1s ut\u00e1n kell olvasni. A metaadatok k\u00f6z\u00e9 tartozik a form\u00e1tum verzi\u00f3ja, a s\u00e9ma \u00e9s b\u00e1rmilyen tov\u00e1bbi kulcs-\u00e9rt\u00e9k p\u00e1r.<\/li>\n<li>A metaadatok hossza (4 b\u00e1jt).<\/li>\n<li>A var\u00e1zslatos sz\u00e1m <i>PAR1<\/i> (4 b\u00e1jt).<\/li>\n<\/ol>\n<p><\/p>\n<h2>Az ORC f\u00e1jlform\u00e1tum<\/h2>\n<p>\n<i>Optim\u00e1lis soros-oszlopos f\u00e1jlform\u00e1tum<\/i> (Optimized Row Columnar, <noindex><a rel=\"nofollow\" href=\"https:\/\/orc.apache.org\/\">ORC<\/a><\/noindex>) nagyon hat\u00e9kony m\u00f3dot k\u00edn\u00e1l az adatok t\u00e1rol\u00e1s\u00e1ra, \u00e9s \u00fagy alak\u00edtott\u00e1k ki, hogy \u00e1thidalja m\u00e1s form\u00e1tumok korl\u00e1tait. Az adatokat t\u00f6k\u00e9letesen kompakt form\u00e1ban t\u00e1rolja, lehet\u0151v\u00e9 t\u00e9ve a felesleges r\u00e9szletek kihagy\u00e1s\u00e1t \u2014 ezzel nem ig\u00e9nyel nagy, bonyolult vagy manu\u00e1lisan karbantartott indexek l\u00e9trehoz\u00e1s\u00e1t. <\/p>\n<p>Az ORC form\u00e1tum el\u0151nyei:<\/p>\n<ol>\n<li>Minden feladat egy kimeneti f\u00e1jlja, ami cs\u00f6kkenti a terhel\u00e9st a NameNode-on (n\u00e9vcsom\u00f3pont).<\/li>\n<li>A Hive adat t\u00edpusok t\u00e1mogat\u00e1sa, bele\u00e9rtve a DateTime-ot, a tizedes \u00e9s \u00f6sszetett adatokat (strukt\u00fara, lista, t\u00e9rk\u00e9p \u00e9s egyes\u00fcl\u00e9s).<\/li>\n<li>Ugyanazon f\u00e1jl egyidej\u0171 olvas\u00e1sa k\u00fcl\u00f6nb\u00f6z\u0151 RecordReader folyamatok \u00e1ltal.<\/li>\n<li>F\u00e1jlok sz\u00e9tszed\u00e9s\u00e9nek lehet\u0151s\u00e9ge jel\u00f6l\u0151k keres\u00e9se n\u00e9lk\u00fcl.<\/li>\n<li>A legnagyobb lehets\u00e9ges mem\u00f3riaallok\u00e1ci\u00f3s becsl\u00e9s a heap sz\u00e1m\u00e1ra olvas\u00e1si\/\u00edr\u00e1si folyamatokhoz az \u00e1llom\u00e1ny l\u00e1bl\u00e9c\u00e9ben tal\u00e1lhat\u00f3 inform\u00e1ci\u00f3k alapj\u00e1n.<\/li>\n<li>A metaadatokat a Protocol Buffers bin\u00e1ris form\u00e1tum\u00e1ban t\u00e1rolj\u00e1k, amely lehet\u0151v\u00e9 teszi mez\u0151k hozz\u00e1ad\u00e1s\u00e1t \u00e9s elt\u00e1vol\u00edt\u00e1s\u00e1t.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"F\u00e1jlform\u00e1tok a nagy adatokban: r\u00f6vid \u00fatmutat\u00f3\" src=\"\/wp-content\/uploads\/2020\/06\/342a51df1730398d5280484407461d8c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAz ORC egy f\u00e1jlban t\u00e1rolja a karakterl\u00e1nc gy\u0171jtem\u00e9nyeket, m\u00edg a gy\u0171jtem\u00e9nyeken bel\u00fcl a soros adatok oszlopos form\u00e1tumban t\u00e1rol\u00f3dnak.<\/p>\n<p>Az ORC f\u00e1jl csoportokat t\u00e1rol, amelyek cs\u00edkoknak (stripes) nevezett elemek, \u00e9s kieg\u00e9sz\u00edt\u0151 inform\u00e1ci\u00f3kat a f\u00e1jl l\u00e1bl\u00e9c\u00e9ben. A f\u00e1jl v\u00e9g\u00e9n tal\u00e1lhat\u00f3 postscript a t\u00f6m\u00f6r\u00edt\u00e9si param\u00e9tereket \u00e9s a t\u00f6m\u00f6r\u00edtett l\u00e1bl\u00e9c m\u00e9ret\u00e9t tartalmazza.<\/p>\n<p>Alap\u00e9rtelmez\u00e9s szerint a cs\u00edk m\u00e9rete 250 MB. A nagy m\u00e9ret\u0171 cs\u00edkok r\u00e9v\u00e9n a HDFS-b\u0151l val\u00f3 olvas\u00e1s hat\u00e9konyabb: nagy, folyamatos blokkokban t\u00f6rt\u00e9nik.<\/p>\n<p>A f\u00e1jl l\u00e1bl\u00e9c\u00e9ben a f\u00e1jl cs\u00edkjainak list\u00e1ja, a sorok sz\u00e1ma cs\u00edkonk\u00e9nt \u00e9s az egyes oszlopok adat t\u00edpusa tal\u00e1lhat\u00f3. Itt tal\u00e1lhat\u00f3 a count, min, max \u00e9s sum v\u00e9gs\u0151 \u00e9rt\u00e9ke is minden oszlophoz.<\/p>\n<p>A cs\u00edk l\u00e1bl\u00e9c\u00e9ben a stream helyeinek katal\u00f3gusa tal\u00e1lhat\u00f3.<\/p>\n<p>A soros adatokat a t\u00e1bl\u00e1k beolvas\u00e1sakor haszn\u00e1lj\u00e1k.<\/p>\n<p>Az indexadatok az egyes oszlopok minim\u00e1lis \u00e9s maxim\u00e1lis \u00e9rt\u00e9keit, valamint a sorok hely\u00e9t tartalmazz\u00e1k az egyes oszlopokban. Az ORC indexek csak a cs\u00edkok \u00e9s a sorcsoportok kiv\u00e1laszt\u00e1s\u00e1ra haszn\u00e1lhat\u00f3k, nem pedig a lek\u00e9rdez\u00e9sek megv\u00e1laszol\u00e1s\u00e1ra.<\/p>\n<h2>K\u00fcl\u00f6nb\u00f6z\u0151 f\u00e1jlform\u00e1tumok \u00f6sszehasonl\u00edt\u00e1sa<\/h2>\n<p><\/p>\n<h3>Avro a Parquet-hoz k\u00e9pest<\/h3>\n<p><\/p>\n<ol>\n<li>Az Avro soralap\u00fa t\u00e1rol\u00e1si form\u00e1tum, m\u00edg a Parquet oszlopalap\u00fa m\u00f3don t\u00e1rolja az adatokat.<\/li>\n<li>A Parquet jobban illeszkedik az elemz\u0151 lek\u00e9rdez\u00e9sekhez, teh\u00e1t az olvas\u00e1si \u00e9s adatlek\u00e9rdez\u00e9si m\u0171veletek sokkal hat\u00e9konyabbak, mint az \u00edr\u00e1s.<\/li>\n<li>Az \u00edr\u00e1si m\u0171veletek az Avro-ban hat\u00e9konyabbak, mint a Parquet-ban.<\/li>\n<li>Az Avro \u00e9rettebb az s\u00e9m\u00e1k evol\u00faci\u00f3j\u00e1val. A Parquet csak a s\u00e9ma hozz\u00e1ad\u00e1s\u00e1t t\u00e1mogatja, m\u00edg az Avro multifunkcion\u00e1lis evol\u00faci\u00f3s megold\u00e1st tartalmaz, azaz mez\u0151k hozz\u00e1ad\u00e1s\u00e1t vagy m\u00f3dos\u00edt\u00e1s\u00e1t.<\/li>\n<li>A Parquet ide\u00e1lis a t\u00f6bb oszlopos t\u00e1bl\u00e1ban l\u00e9v\u0151 oszlopok alhalmaz\u00e1nak lek\u00e9rdez\u00e9s\u00e9re. Az Avro megfelel\u0151 az ETL m\u0171veletekhez, ahol minden oszlopot k\u00e9rdez\u00fcnk.<\/li>\n<\/ol>\n<p><\/p>\n<h3>ORC a Parquet-hoz k\u00e9pest<\/h3>\n<p><\/p>\n<ol>\n<li>A Parquet jobban t\u00e1rolja a be\u00e1gyazott adatokat.<\/li>\n<li>Az ORC jobban t\u00e1mogatja a predik\u00e1tumok el\u0151tol\u00e1s\u00e1t (predicate pushdown).<\/li>\n<li>Az ORC t\u00e1mogatja az ACID tulajdons\u00e1gokat.<\/li>\n<li>Az ORC jobban t\u00f6m\u00f6r\u00edti az adatokat.<\/li>\n<\/ol>\n<p>\n<strong>Mit \u00e9rdemes m\u00e9g olvasni a t\u00e9m\u00e1ban<\/strong>:<\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/blog\/analiz-bolshih-dannyh-v-oblake\">Nagy adatok elemz\u00e9se a felh\u0151ben: hogyan v\u00e1ljanak a c\u00e9gek adatk\u00f6zpont\u00fav\u00e1<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/501598\/\">Egyszer\u0171 \u00fatmutat\u00f3 az adatb\u00e1zis s\u00e9m\u00e1khoz<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tele.click\/zavtra_oblachno\">Telegram-csatorn\u00e1nk a digit\u00e1lis \u00e1talakul\u00e1sr\u00f3l<\/a><\/noindex>. \n<\/li>\n<\/ol>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/504952\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Weather Deity by Remarin \u041a\u043e\u043c\u0430\u043d\u0434\u0430 Mail.ru Cloud Solutions \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u0420\u0430\u0445\u0443\u043b\u0430 \u0411\u0445\u0430\u0442\u0438\u0438 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Clairvoyant \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u0435\u0441\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u0430\u043a\u0438\u0435 \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 Hadoop \u0438 \u043a\u0430\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u043d\u044b \u0440\u0430\u0437\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0444\u0430\u0439\u043b\u043e\u0432 \u0421\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435 \u0443\u0437\u043a\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 HDFS, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a MapReduce \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":84417,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-84416","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/formaty-fajlov-v-bolshih-dannyh-kratkij-likbez\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0424\u043e\u0440\u043c\u0430\u0442\u044b \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445: \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043b\u0438\u043a\u0431\u0435\u0437 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/formaty-fajlov-v-bolshih-dannyh-kratkij-likbez\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-07T11:42:50+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-07T11:42:50+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47F\u00e1jlform\u00e1tumok nagy adatokban: r\u00f6vid tudnival\u00f3k | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/formaty-fajlov-v-bolshih-dannyh-kratkij-likbez","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0424\u043e\u0440\u043c\u0430\u0442\u044b \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445: \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043b\u0438\u043a\u0431\u0435\u0437 | ProHoster","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/formaty-fajlov-v-bolshih-dannyh-kratkij-likbez","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-07T11:42:50+00:00","article:modified_time":"2020-06-07T11:42:50+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"84416","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:58:40","updated":"2022-09-28 08:24:46","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/84416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=84416"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/84416\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/84417"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=84416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=84416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=84416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}