Jo, jedinou správnou odpovědí na tuto otázku je “jak kdy” a že to záleží na tom, jaké řádky to jsou.

Pojďme si ale stejně vyzkoušet, jak se liší velikosti souborů podle formátů, do kterých ten milion řádků můžeme uložit.

Budeme pracovat s tabulkou, která má čtyři sloupce s náhodně generovanými čísly od jedné do deseti tisíc – tedy 4 000 000 buněk plus záhlaví.

Excel xlsx

Soubor má aktuálně něco přes 29 MB. Nešel by nějak zmenšit?

Excel xlsx přes Power Query

Můžeme vyzkoušet načíst data přes Power Query do jiného Excelu. Pomůžeme si? Samozřejmě že vůbec ne – soubor je skoro stejně velký, resp. má ještě o 7 kb více, protože data jsou stejná, jen jinak načtená. 

Takže to nebyl moc dobrý nápad, zkusme něco lepšího.

CSV

Další možností bude uložit tuto tabulku do csv. To bude znatelně lepší – místo 29 MB je najednou 20 MB. Na druhou stranu je pravda, že jsme přišli o všechnu excelovskou funkcionalitu a csv je prostě jen… no prostě jen csv.

XLSB

Pokud soubor uložíme do xlsb, bude to pořád Excel se vším co Excel umí, a navíc se soubor ještě o trochu zmenší – na cca 19,3 MB.

Datový model

Zdá se vám 19,3 mega ještě hodně? Zkusme data načíst do datového modelu Power PIvotu (a uložit třeba jako xlsx).

Udělali jsme velký skok, už jsme na 8,1 MB.

Power BI

Přesto lze jít ještě o trochu dál. Pokud data nacpeme do Power BI, dostaneme se dokonce na 7,3 MB (může se mírně lišit podle datového typu, ve kterém jsou data uložená.

Co z toho plyne?

Že Power BI je vítězem naší soutěže o nejmenší soubor. A že rozdíl mezi běžným Excelem a Power BI je z pohledu velikosti souboru relativně velký.

2 Komentářů

  1. Zajímavý experiment, kdysi jsem dělal podobný. Hodil by se k tomu nějaký komentář. Mohli byste sešit dát k dispozici? Jsou v něm předpokládám čistá data, ne vzorce. Na první pohled by se mohly výsledky jevit jako divné. Pokud vezmeme za etalon CSV coby čistou formu textových dat, pak XLSX je ve skutečnosti ZIP, a by měl dosáhnout odhadem 75% komprese. Tady je o cca 9 MB naopak větší. I když uvážím, že v XLSX bude spousta dat ohledně popisu buněk/mřížky (a vůbec styl adresování A1/R1C1 je do budoucna myslím neudržitelný), stejně mi to úplně nesedí. Stálo by za to také porovnat nejlepší kompresi pro textová data dneška s nejlepším výsledkem tady. Ono celé to není úplně fér. Mělo by to být první kolo v testech. Ve druhém pak obodovat přístup a rychlost načtení dat, univerzálnost (a v ní je obávám se pořád výsledkem CSV/UTF-8.

  2. Nemůžu už soubory najít, ale šlo o čtyři sloupce s čísly 1-10 000, hodnoty – ne vzorce. Předpokládám že důležitým vlivem bude kromě toho, co uvádíš také množství duplicit nebo naopak unikátních hodnot.
    J.

Napsat komentář

Vaše emailová adresa nebude publikována.

*

smazat formulářOdeslat komentář