{"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\/cs\/blog\/administrirovanie\/formaty-fajlov-v-bolshih-dannyh-kratkij-likbez","title":{"rendered":"Form\u00e1ty soubor\u016f v big datech: stru\u010dn\u00fd pr\u016fvodce","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Form\u00e1ty soubor\u016f v big datech: stru\u010dn\u00fd pr\u016fvodce\" 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>Weather Deity od Remarina<\/i><\/a><\/noindex> <\/p>\n<p>T\u00fdm <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/\">Mail.ru Cloud Solutions<\/a><\/noindex> nab\u00edz\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.clairvoyantsoft.com\/big-data-file-formats-3fb659903271\">p\u0159eklad \u010dl\u00e1nku<\/a><\/noindex> in\u017een\u00fdra Rahula Bhatia z firmy Clairvoyant o tom, jak\u00e9 existuj\u00ed form\u00e1ty soubor\u016f v big datech, jak\u00e9 jsou nejb\u011b\u017en\u011bj\u0161\u00ed funkce form\u00e1t\u016f Hadoop a kter\u00fd form\u00e1t je nejlep\u0161\u00ed pou\u017e\u00edt.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Pro\u010d jsou pot\u0159eba r\u016fzn\u00e9 form\u00e1ty soubor\u016f<\/h2>\n<p>\nZ\u00e1va\u017en\u00fdm \u00fazk\u00fdm m\u00edstem v v\u00fdkonu aplikac\u00ed podporuj\u00edc\u00edch HDFS, jako jsou MapReduce a Spark, je \u010das pot\u0159ebn\u00fd k vyhled\u00e1v\u00e1n\u00ed, \u010dten\u00ed a z\u00e1pisu dat. Tyto probl\u00e9my se zhor\u0161uj\u00ed obt\u00ed\u017eemi p\u0159i spr\u00e1v\u011b velk\u00fdch objem\u016f dat, pokud nem\u00e1me statickou, ale vyv\u00edjej\u00edc\u00ed se sch\u00e9ma, nebo existuj\u00ed n\u011bjak\u00e1 omezen\u00ed na ukl\u00e1d\u00e1n\u00ed.<\/p>\n<p>Zpracov\u00e1n\u00ed big dat zvy\u0161uje z\u00e1t\u011b\u017e na subsyst\u00e9m \u00falo\u017ei\u0161t\u011b \u2014 Hadoop ukl\u00e1d\u00e1 data redundantn\u011b pro zaji\u0161t\u011bn\u00ed odolnosti v\u016f\u010di chyb\u00e1m. Krom\u011b disk\u016f jsou zat\u00ed\u017eeny procesor, s\u00ed\u0165, syst\u00e9m vstupu a v\u00fdstupu a dal\u0161\u00ed. S rostouc\u00edm objemem dat se zvy\u0161uj\u00ed tak\u00e9 n\u00e1klady na jejich zpracov\u00e1n\u00ed a ukl\u00e1d\u00e1n\u00ed.<\/p>\n<p>R\u016fzn\u00e9 form\u00e1ty soubor\u016f v <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/blog\/zachem-nuzhen-hadoop\">Hadoop<\/a><\/noindex> byly vymy\u0161leny pr\u00e1v\u011b pro \u0159e\u0161en\u00ed t\u011bchto probl\u00e9m\u016f. V\u00fdb\u011br vhodn\u00e9ho form\u00e1tu souboru m\u016f\u017ee p\u0159in\u00e9st n\u011bkter\u00e9 v\u00fdznamn\u00e9 v\u00fdhody:<\/p>\n<ol>\n<li>Rychlej\u0161\u00ed \u010das \u010dten\u00ed.<\/li>\n<li>Rychlej\u0161\u00ed \u010das z\u00e1pisu.<\/li>\n<li>Sd\u00edlen\u00e9 soubory.<\/li>\n<li>Podpora evoluce sch\u00e9mat.<\/li>\n<li>Roz\u0161\u00ed\u0159en\u00e1 podpora komprese.<\/li>\n<\/ol>\n<p>\nN\u011bkter\u00e9 form\u00e1ty soubor\u016f jsou ur\u010deny pro v\u0161eobecn\u00e9 pou\u017eit\u00ed, jin\u00e9 pro specifi\u010dt\u011bj\u0161\u00ed varianty a n\u011bkter\u00e9 byly vyvinuty s ohledem na konkr\u00e9tn\u00ed charakteristiky dat. Skute\u010dn\u011b existuje \u0161irok\u00fd v\u00fdb\u011br.<\/p>\n<h2>Form\u00e1t soubor\u016f Avro<\/h2>\n<p>\nPro <i>serializace dat <\/i>se \u0161iroce pou\u017e\u00edv\u00e1 Avro \u2014 jedn\u00e1 se o <i>\u0159et\u011bzcov\u011b zalo\u017een\u00fd<\/i>, tedy textov\u00fd, form\u00e1t ukl\u00e1d\u00e1n\u00ed dat v Hadoopu. Ukl\u00e1d\u00e1 sch\u00e9ma ve form\u00e1tu JSON, co\u017e usnad\u0148uje jeho \u010dten\u00ed a interpretaci jak\u00fdmkoli programem. Samotn\u00e1 data jsou ulo\u017eena v bin\u00e1rn\u00edm form\u00e1tu, co\u017e je kompaktn\u00ed a efektivn\u00ed.<\/p>\n<p>Syst\u00e9m serializace Avro je neutr\u00e1ln\u00ed v\u016f\u010di jazyku. Soubory lze zpracov\u00e1vat r\u016fzn\u00fdmi jazyky, v sou\u010dasnosti to jsou C, C++, C#, Java, Python a Ruby.<\/p>\n<p>Kl\u00ed\u010dovou vlastnost\u00ed Avro je spolehliv\u00e1 podpora datov\u00fdch sch\u00e9mat, kter\u00e1 se v pr\u016fb\u011bhu \u010dasu m\u011bn\u00ed, tedy evolvuj\u00ed. Avro rozum\u00ed zm\u011bn\u00e1m sch\u00e9mat \u2014 odstran\u011bn\u00ed, p\u0159id\u00e1n\u00ed nebo zm\u011bn\u011b pol\u00ed.<\/p>\n<p>Avro podporuje r\u016fzn\u00e9 struktury dat. Nap\u0159\u00edklad lze vytvo\u0159it z\u00e1znam, kter\u00fd obsahuje pole, v\u00fd\u010dtov\u00fd typ a podz\u00e1znam.<\/p>\n<p><img decoding=\"async\" alt=\"Form\u00e1ty soubor\u016f v big datech: stru\u010dn\u00fd pr\u016fvodce\" src=\"\/wp-content\/uploads\/2020\/06\/9bf044329ac0980a48a125c505dee265.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nTento form\u00e1t je ide\u00e1ln\u00ed pro z\u00e1pis do p\u0159echodn\u00e9 z\u00f3ny datov\u00e9ho jezera (<noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/blog\/chto-takoe-ozera-dannyh-i-zachem-tam-hranyat-big-data\">datov\u00e9 jezero<\/a><\/noindex>, nebo data lake - kolekce instanc\u00ed pro ukl\u00e1d\u00e1n\u00ed r\u016fzn\u00fdch typ\u016f dat v dopln\u011bn\u00ed k samotn\u00fdm zdroj\u016fm dat). <\/p>\n<p>Tak\u017ee pro z\u00e1pis do p\u0159echodn\u00e9 z\u00f3ny datov\u00e9ho jezera je tento form\u00e1t nejlep\u0161\u00ed z n\u00e1sleduj\u00edc\u00edch d\u016fvod\u016f:<\/p>\n<ol>\n<li>Data z t\u00e9to z\u00f3ny se obvykle \u010dtou cel\u00e1 pro dal\u0161\u00ed zpracov\u00e1n\u00ed doln\u00edmi syst\u00e9my - a form\u00e1t zalo\u017een\u00fd na \u0159\u00e1dc\u00edch je v tomto p\u0159\u00edpad\u011b efektivn\u011bj\u0161\u00ed.<\/li>\n<li>Doln\u00ed syst\u00e9my mohou snadno extrahovat tabulky sch\u00e9mat z soubor\u016f - nen\u00ed nutn\u00e9 uchov\u00e1vat sch\u00e9mata samostatn\u011b ve vn\u011bj\u0161\u00edm meta-\u00falo\u017ei\u0161ti.<\/li>\n<li>Jak\u00e1koliv zm\u011bna po\u010d\u00e1te\u010dn\u00edho sch\u00e9matu se snadno zpracov\u00e1v\u00e1 (evoluce sch\u00e9matu).<\/li>\n<\/ol>\n<p><\/p>\n<h2>Form\u00e1t soubor\u016f Parquet<\/h2>\n<p>\nParquet je open-source form\u00e1t soubor\u016f pro Hadoop, kter\u00fd ukl\u00e1d\u00e1 <i>vno\u0159en\u00e9 datov\u00e9 struktury v ploch\u00e9m sloupcov\u00e9m form\u00e1tu.<\/i>.<\/p>\n<p>Ve srovn\u00e1n\u00ed s tradi\u010dn\u00edm \u0159\u00e1dkov\u00fdm p\u0159\u00edstupem je Parquet efektivn\u011bj\u0161\u00ed z hlediska \u00falo\u017en\u00e9ho prostoru a v\u00fdkonu.<\/p>\n<p>To je zvl\u00e1\u0161\u0165 u\u017eite\u010dn\u00e9 pro dotazy, kter\u00e9 \u010dtou ur\u010dit\u00e9 sloupce z \u0161irok\u00e9 (s mnoha sloupci) tabulky. D\u00edky form\u00e1tu soubor\u016f se \u010dtou pouze pot\u0159ebn\u00e9 sloupce, tak\u017ee se minimalizuje vstupn\u011b-v\u00fdstupn\u00ed operace.<\/p>\n<p><strong>Mal\u00e9 odbo\u010den\u00ed-vysv\u011btlen\u00ed<\/strong>: abychom l\u00e9pe pochopili form\u00e1t souboru Parquet v Hadoopu, pod\u00edvejme se, co je sloupcov\u00fd form\u00e1t - tedy sloupcov\u00fd form\u00e1t. V takov\u00e9m form\u00e1tu se spole\u010dn\u011b ukl\u00e1daj\u00ed hodnoty stejn\u00e9ho typu pro ka\u017ed\u00fd sloupec. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/netjs.blogspot.com\/\">Nap\u0159\u00edklad<\/a><\/noindex>, z\u00e1znam obsahuje pole ID, Name a Department. V tomto p\u0159\u00edpad\u011b budou v\u0161echny hodnoty sloupce ID ulo\u017eeny dohromady, stejn\u011b jako hodnoty sloupce Name atd. Tabulka bude m\u00edt p\u0159ibli\u017en\u011b takov\u00fdto vzhled:<\/p>\n<p><strong>ID<\/strong><br \/>\n<strong>N\u00e1zev<\/strong><br \/>\n<strong>Department<\/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>\nV \u0159\u00e1dkov\u00e9m form\u00e1tu se data ulo\u017e\u00ed n\u00e1sleduj\u00edc\u00edm zp\u016fsobem:<\/p>\n<p>1<br \/>\nemp1<br \/>\nd1<br \/>\n2<br \/>\nemp2<br \/>\nd2<br \/>\n3<br \/>\nemp3<br \/>\nd3<\/p>\n<p>\nVe sloupcov\u00e9m form\u00e1tu soubor\u016f se stejn\u00e1 data ulo\u017e\u00ed takto:<\/p>\n<p>1<br \/>\n2<br \/>\n3<br \/>\nemp1<br \/>\nemp2<br \/>\nemp3<br \/>\nd1<br \/>\nd2<br \/>\nd3<\/p>\n<p>\nSloupcov\u00fd form\u00e1t je efektivn\u011bj\u0161\u00ed, kdy\u017e pot\u0159ebujete dotazovat z tabulky n\u011bkolik sloupc\u016f. P\u0159e\u010dte pouze pot\u0159ebn\u00e9 sloupce, proto\u017ee jsou bl\u00edzko sebe. T\u00edm se minimalizuj\u00ed operace vstup\/v\u00fdstup.<\/p>\n<p>Nap\u0159\u00edklad, pot\u0159ebujete pouze sloupec NAME. V<noindex><a rel=\"nofollow\" href=\"http:\/\/netjs.blogspot.com\/\"> \u0159\u00e1dkov\u00e9m form\u00e1tu<\/a><\/noindex> Ka\u017ed\u00fd z\u00e1znam v datov\u00e9 sad\u011b je t\u0159eba na\u010d\u00edst, rozlo\u017eit na pole a pot\u00e9 extrahovat data NAME. Sloupcov\u00fd form\u00e1t umo\u017e\u0148uje p\u0159\u00edmo p\u0159ej\u00edt na sloupec Name, proto\u017ee v\u0161echny hodnoty pro tento sloupec jsou ulo\u017eeny dohromady. Nen\u00ed nutn\u00e9 proch\u00e1zet cel\u00fd z\u00e1znam.<\/p>\n<p>T\u00edmto zp\u016fsobem sloupcov\u00fd form\u00e1t zvy\u0161uje v\u00fdkon dotaz\u016f, proto\u017ee pro p\u0159echod k po\u017eadovan\u00fdm sloupc\u016fm je pot\u0159eba m\u00e9n\u011b \u010dasu na vyhled\u00e1v\u00e1n\u00ed a sni\u017euje se mno\u017estv\u00ed vstupn\u011b-v\u00fdstupn\u00edch operac\u00ed, proto\u017ee se \u010dtou pouze pot\u0159ebn\u00e9 sloupce.<\/p>\n<p>Jedn\u00edm z jedine\u010dn\u00fdch rys\u016f<noindex><a rel=\"nofollow\" href=\"http:\/\/netjs.blogspot.com\/\"> Parquet<\/a><\/noindex> je to, \u017ee v tomto form\u00e1tu m\u016f\u017ee <i>uchov\u00e1vat data s vno\u0159en\u00fdmi strukturami<\/i>. To znamen\u00e1, \u017ee v souboru Parquet lze dokonce \u010d\u00edst vno\u0159en\u00e1 pole odd\u011blen\u011b, ani\u017e by bylo nutn\u00e9 \u010d\u00edst v\u0161echna pole ve vno\u0159en\u00e9 struktu\u0159e. Parquet pou\u017e\u00edv\u00e1 algoritmus rozd\u011blov\u00e1n\u00ed a sestavov\u00e1n\u00ed k uchov\u00e1v\u00e1n\u00ed vno\u0159en\u00fdch struktur.<\/p>\n<p><img decoding=\"async\" alt=\"Form\u00e1ty soubor\u016f v big datech: stru\u010dn\u00fd pr\u016fvodce\" src=\"\/wp-content\/uploads\/2020\/06\/8cba9a4faccc4bac7c5bbc3eec163a3c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAbychom pochopili form\u00e1t souboru Parquet v Hadoopu, je t\u0159eba zn\u00e1t n\u00e1sleduj\u00edc\u00ed term\u00edny:<\/p>\n<ol>\n<li><strong>Skupina \u0159\u00e1dk\u016f<\/strong> (row group): logick\u00e9 horizont\u00e1ln\u00ed rozd\u011blen\u00ed dat na \u0159\u00e1dky. Skupina \u0159\u00e1dk\u016f se skl\u00e1d\u00e1 z fragmentu ka\u017ed\u00e9ho sloupce v sad\u011b dat.<\/li>\n<li><strong>Fragment sloupce<\/strong> (column chunk): fragment konkr\u00e9tn\u00edho sloupce. Tyto fragmenty sloupc\u016f se nach\u00e1zej\u00ed v ur\u010dit\u00e9 skupin\u011b \u0159\u00e1dk\u016f a zaru\u010den\u011b budou soused\u00edc\u00ed v souboru.<\/li>\n<li><strong>Str\u00e1nka<\/strong> (page): fragmenty sloupc\u016f jsou rozd\u011bleny na str\u00e1nky, kter\u00e9 jsou zapisov\u00e1ny za sebou. Str\u00e1nky maj\u00ed spole\u010dnou hlavi\u010dku, tak\u017ee p\u0159i \u010dten\u00ed lze p\u0159esko\u010dit nepot\u0159ebn\u00e9.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Form\u00e1ty soubor\u016f v big datech: stru\u010dn\u00fd pr\u016fvodce\" src=\"\/wp-content\/uploads\/2020\/06\/0f3d583bc2f07b6fef8430f10433cc14.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nZde hlavi\u010dka jednodu\u0161e obsahuje magick\u00e9 \u010d\u00edslo <i>PAR1<\/i> (4 bajty), kter\u00e9 identifikuje soubor jako soubor form\u00e1tu Parquet.<\/p>\n<p>V pati\u010dce je uvedeno n\u00e1sleduj\u00edc\u00ed:<\/p>\n<ol>\n<li>Metadatov\u00e9 soubory, kter\u00e9 obsahuj\u00ed po\u010d\u00e1te\u010dn\u00ed sou\u0159adnice metadat ka\u017ed\u00e9ho sloupce. P\u0159i \u010dten\u00ed je nejprve pot\u0159eba p\u0159e\u010d\u00edst metadata souboru, abychom na\u0161li v\u0161echny zaj\u00edmav\u00e9 fragmenty sloupc\u016f. Pot\u00e9 by m\u011bly b\u00fdt fragmenty sloupc\u016f \u010dteny postupn\u011b. Dal\u0161\u00ed metadata zahrnuj\u00ed verzi form\u00e1tu, sch\u00e9ma a jak\u00e9koli dal\u0161\u00ed p\u00e1ry kl\u00ed\u010d-hodnota.<\/li>\n<li>D\u00e9lka metadat (4 bajty).<\/li>\n<li>Magick\u00e9 \u010d\u00edslo <i>PAR1<\/i> (4 bajty).<\/li>\n<\/ol>\n<p><\/p>\n<h2>Form\u00e1t soubor\u016f ORC<\/h2>\n<p>\n<i>Optimalizovan\u00fd \u0159\u00e1dkov\u011b-sloupcov\u00fd form\u00e1t soubor\u016f<\/i> (Optimized Row Columnar, <noindex><a rel=\"nofollow\" href=\"https:\/\/orc.apache.org\/\">ORC<\/a><\/noindex>) nab\u00edz\u00ed velmi efektivn\u00ed zp\u016fsob ukl\u00e1d\u00e1n\u00ed dat a byl navr\u017een tak, aby p\u0159ekonal omezen\u00ed jin\u00fdch form\u00e1t\u016f. Ukl\u00e1d\u00e1 data v dokonale kompaktn\u00ed podob\u011b, co\u017e umo\u017e\u0148uje vynechat nepot\u0159ebn\u00e9 detaily \u2014 a z\u00e1rove\u0148 nevy\u017eaduje vytv\u00e1\u0159en\u00ed velk\u00fdch, slo\u017eit\u00fdch nebo ru\u010dn\u011b spravovan\u00fdch index\u016f. <\/p>\n<p>V\u00fdhody form\u00e1tu ORC:<\/p>\n<ol>\n<li>Jeden soubor na v\u00fdstupu ka\u017ed\u00e9ho \u00fakolu, co\u017e sni\u017euje z\u00e1t\u011b\u017e na NameNode (uzel n\u00e1zv\u016f).<\/li>\n<li>Podpora typ\u016f dat Hive, v\u010detn\u011b DateTime, desetinn\u00fdch a slo\u017eit\u00fdch datov\u00fdch typ\u016f (struct, list, map a union).<\/li>\n<li>Sou\u010dasn\u00e9 \u010dten\u00ed stejn\u00e9ho souboru r\u016fzn\u00fdmi procesy RecordReader.<\/li>\n<li>Mo\u017enost rozd\u011blen\u00ed soubor\u016f bez skenov\u00e1n\u00ed na p\u0159\u00edtomnost marker\u016f.<\/li>\n<li>Odhad maxim\u00e1ln\u00edho mo\u017en\u00e9ho p\u0159id\u011blen\u00ed pam\u011bti haldy pro procesy \u010dten\u00ed\/z\u00e1pisu podle informac\u00ed v pati\u010dce souboru.<\/li>\n<li>Metadatov\u00e9 informace jsou ulo\u017eeny v bin\u00e1rn\u00edm form\u00e1tu serializace Protocol Buffers, co\u017e umo\u017e\u0148uje p\u0159id\u00e1vat a odstra\u0148ovat pole.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Form\u00e1ty soubor\u016f v big datech: stru\u010dn\u00fd pr\u016fvodce\" src=\"\/wp-content\/uploads\/2020\/06\/342a51df1730398d5280484407461d8c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nORC ukl\u00e1d\u00e1 kolekce \u0159et\u011bzc\u016f v jednom souboru, p\u0159i\u010dem\u017e uvnit\u0159 kolekce jsou \u0159et\u011bzcov\u00e9 \u00fadaje ulo\u017eeny ve sloupcov\u00e9m form\u00e1tu.<\/p>\n<p>Soubory ORC ukl\u00e1daj\u00ed skupiny \u0159et\u011bzc\u016f, kter\u00e9 se naz\u00fdvaj\u00ed pruhy (stripes), a dal\u0161\u00ed informace v pati\u010dce souboru. Postscript na konci souboru obsahuje parametry komprese a velikost komprimovan\u00e9 pati\u010dky.<\/p>\n<p>V\u00fdchoz\u00ed velikost pruhu je 250 MB. D\u00edky tak velk\u00fdm pruh\u016fm se \u010dten\u00ed z HDFS prov\u00e1d\u00ed efektivn\u011bji: ve velk\u00fdch souvisl\u00fdch bloc\u00edch.<\/p>\n<p>V pati\u010dce souboru je uveden seznam pruh\u016f v souboru, po\u010det \u0159et\u011bzc\u016f na pruh a typ dat ka\u017ed\u00e9ho sloupce. Tam je tak\u00e9 zaznamen\u00e1na v\u00fdsledn\u00e1 hodnota count, min, max a sum pro ka\u017ed\u00fd sloupec.<\/p>\n<p>Pati\u010dka pruhu obsahuje adres\u00e1\u0159 um\u00edst\u011bn\u00ed proudu.<\/p>\n<p>\u0158et\u011bzcov\u00e9 \u00fadaje se pou\u017e\u00edvaj\u00ed p\u0159i skenov\u00e1n\u00ed tabulek.<\/p>\n<p>Indexov\u00e9 \u00fadaje zahrnuj\u00ed minim\u00e1ln\u00ed a maxim\u00e1ln\u00ed hodnoty pro ka\u017ed\u00fd sloupec a pozice \u0159et\u011bzc\u016f v ka\u017ed\u00e9m sloupci. Indexy ORC se pou\u017e\u00edvaj\u00ed pouze k v\u00fdb\u011bru pruh\u016f a skupin \u0159et\u011bzc\u016f, nikoli k odpov\u00edd\u00e1n\u00ed na dotazy.<\/p>\n<h2>Porovn\u00e1n\u00ed r\u016fzn\u00fdch form\u00e1t\u016f soubor\u016f<\/h2>\n<p><\/p>\n<h3>Avro ve srovn\u00e1n\u00ed s Parquet<\/h3>\n<p><\/p>\n<ol>\n<li>Avro je form\u00e1t ukl\u00e1d\u00e1n\u00ed po \u0159\u00e1dc\u00edch, zat\u00edmco Parquet ukl\u00e1d\u00e1 data po sloupc\u00edch.<\/li>\n<li>Parquet je l\u00e9pe p\u0159izp\u016fsoben analytick\u00fdm dotaz\u016fm, co\u017e znamen\u00e1, \u017ee operace \u010dten\u00ed a dotazov\u00e1n\u00ed dat jsou mnohem efektivn\u011bj\u0161\u00ed ne\u017e z\u00e1pis.<\/li>\n<li>Operace z\u00e1pisu v Avro prob\u00edhaj\u00ed efektivn\u011bji ne\u017e v Parquet.<\/li>\n<li>Avro pracuje s evoluc\u00ed sch\u00e9mat mnohem zraleji. Parquet podporuje pouze p\u0159id\u00e1n\u00ed sch\u00e9matu, zat\u00edmco v Avro je implementov\u00e1na multifunk\u010dn\u00ed evoluce, co\u017e znamen\u00e1 p\u0159id\u00e1n\u00ed nebo zm\u011bnu sloupc\u016f.<\/li>\n<li>Parquet je ide\u00e1ln\u00ed pro dotazy na podmno\u017einu sloupc\u016f v tabulce s v\u00edce sloupci. Avro je vhodn\u00fd pro ETL operace, kde po\u017eadujeme v\u0161echny sloupce.<\/li>\n<\/ol>\n<p><\/p>\n<h3>ORC ve srovn\u00e1n\u00ed s Parquet<\/h3>\n<p><\/p>\n<ol>\n<li>Parquet l\u00e9pe ukl\u00e1d\u00e1 vno\u0159en\u00e9 \u00fadaje.<\/li>\n<li>ORC je l\u00e9pe p\u0159izp\u016fsoben pro predik\u00e1tov\u00e9 propou\u0161t\u011bn\u00ed (predicate pushdown).<\/li>\n<li>ORC podporuje vlastnosti ACID.<\/li>\n<li>ORC l\u00e9pe komprimuje data.<\/li>\n<\/ol>\n<p>\n<strong>Co dal\u0161\u00edho si p\u0159e\u010d\u00edst na toto t\u00e9ma<\/strong>:<\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/blog\/analiz-bolshih-dannyh-v-oblake\">Anal\u00fdza velk\u00fdch dat v cloudu: jak se spole\u010dnosti st\u00e1vaj\u00ed datov\u011b orientovan\u00fdmi<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/501598\/\">Skromn\u00fd pr\u016fvodce datab\u00e1zov\u00fdmi sch\u00e9maty<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tele.click\/zavtra_oblachno\">N\u00e1\u0161 Telegram kan\u00e1l o digit\u00e1ln\u00ed transformaci<\/a><\/noindex>. \n<\/li>\n<\/ol>\n<p>Zdroj: <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\/cs\/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=\"cs_CZ\" \/>\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\/cs\/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\udd47Form\u00e1ty soubor\u016f ve velk\u00fdch datech: stru\u010dn\u00fd p\u0159ehled | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/formaty-fajlov-v-bolshih-dannyh-kratkij-likbez","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/84416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=84416"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/84416\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/84417"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=84416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=84416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=84416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}