Co je datová kostka
Datová kostka (anglicky OLAP cube nebo data cube) je multidimenzionální datová struktura optimalizovaná pro analytické dotazy. Místo plochého řádku v tabulce si představte n-rozměrnou „krychli", kde každá strana představuje jednu obchodní dimenzi — typicky čas, geografii, produkt, zákazníka — a v jejím vnitřku jsou předpočítané agregované hodnoty měr (tržby, marže, počet objednávek).
Cílem datové kostky je odpovědět na analytickou otázku v řádu milisekund i nad miliardami zdrojových řádků. Toho dosahuje tím, že agregace (SUM, COUNT, AVG) přes všechny smysluplné kombinace dimenzí předpočítá dopředu při nočním zpracování kostky (cube processing).
Pojem zavedli E. F. Codd a kol. v roce 1993 v práci „Providing OLAP to User-Analysts". Komerčně rozšířily kostky platformy Microsoft SQL Server Analysis Services (SSAS Multidimensional), Oracle Essbase, IBM Cognos TM1 a SAP BW.
Jak datová kostka funguje
Životní cyklus klasické OLAP kostky má tři kroky:
- Načtení dat — kostka čte ze datového skladu, typicky modelovaného jako star schema (jedna fact tabulka + dimenzionální tabulky).
- Process / build — engine vypočítá agregace pro všechny relevantní kombinace dimenzí a uloží je do MOLAP úložiště. U bohaté kostky s 8 dimenzemi se počet kombinací rychle blíží miliardám, proto se používají heuristiky (aggregation design).
- Query — uživatel posílá dotaz v jazyce MDX (Multidimensional Expressions) nebo přes nástroj jako Excel Pivot Table, Power BI nebo ProClarity. Engine vrací předpočítanou agregaci nebo dopočítá menší rozdíl.
Klíčový rozdíl proti relační databázi je, že agregace se neprovádí v dotazu, ale jsou již připravené. To dělá kostku extrémně rychlou pro známé otázky, ale tuhou při změnách modelu nebo ad-hoc analýzách na nečekaných dimenzích.
Dimenze, míry a hierarchie
Kostka má tři základní stavební prvky:
- Dimenze — kategorické osy analýzy. Příklady: Datum, Produkt, Zákazník, Pobočka, Kampaň. Každá dimenze nese atributy (Produkt → Kategorie, Značka, Barva).
- Míry (measures) — kvantitativní hodnoty, které agregujeme. Tržba, počet kusů, marže, počet návštěv. Míra má vždy agregační funkci (typicky SUM).
- Hierarchie — uspořádaná cesta v rámci dimenze. Typická hierarchie Datum: Rok → Kvartál → Měsíc → Den. Hierarchie umožňuje rychlý drill-down a drill-up.
Bohatá datová kostka má 6–12 dimenzí a 20–80 měr. Větší modely se rozpadají na více menších kostek navázaných sdílenými dimenzemi (tzv. conformed dimensions).
OLAP operace: slice, dice, drill-down, roll-up, pivot
OLAP definuje pět základních interakcí, které dělají analýzu intuitivní:
- Slice — vyříznutí 2D plátku z N-dimenzionální kostky filtrem na jedné dimenzi. Příklad: tržby jen za rok 2025.
- Dice — vyříznutí menší podkrychle filtrem na více dimenzích. Příklad: tržby za 2025 + Česko + kategorie Elektronika.
- Drill-down — pohyb hierarchií dolů (Rok → Kvartál → Měsíc → Den).
- Roll-up — opačný pohyb nahoru (Den → Měsíc → Rok).
- Pivot (rotate) — záměna os v pohledu (řádky ↔ sloupce), typická operace v Excel Pivot Table.
Tyto operace jsou dnes dostupné ve všech moderních BI nástrojích — Power BI, Tableau, Looker, Qlik. Místo MDX se používá DAX (Power BI), LookML (Looker) nebo prostě drag-and-drop.
MOLAP, ROLAP a HOLAP — tři architektury kostek
Historicky se kostky implementovaly třemi způsoby:
- MOLAP (Multidimensional OLAP) — agregace předpočítané a uložené ve vlastním multidimenzionálním formátu. Nejrychlejší pro známé dotazy, ale velký processing okno a omezení velikostí. Příklad: SSAS Multidimensional, Essbase.
- ROLAP (Relational OLAP) — kostka jen logicky, fyzicky data zůstávají v relačním datovém skladu, agregace se počítají v SQL při dotazu (často s pomocí materialized views). Příklad: MicroStrategy, dnes většina cloud DW + semantic layer.
- HOLAP (Hybrid OLAP) — kombinace: agregované úrovně v MOLAP úložišti, detailní data v relačním skladu. Příklad: SSAS s režimem HOLAP.
Moderní columnar engine (Snowflake, BigQuery, Databricks Photon) v podstatě představují další generaci ROLAP — díky sloupcovému uložení, vektorovému zpracování a masivní paralelizaci dosahují podobné rychlosti jako MOLAP, ale bez nutnosti pre-aggregace.
Typické příklady použití datové kostky
- Finanční controlling — výsledovka, rozvaha a cash flow ve struktuře rok / kvartál / měsíc × středisko × nákladová položka × scénář (plán/skutečnost/forecast).
- Retail a e-commerce — prodejní analýzy v ose den × prodejna × kategorie × značka × kampaň × cenová hladina.
- Telco — provoz sítě, ARPU, churn po segmentech zákazníků a typech tarifu.
- Manufacturing — produktivita linek, zmetkovitost, doba taktu po závodech, změnách a produktových řadách.
- HR analytika — fluktuace, mzdové náklady a kapacitní plánování po divizích, lokalitách a kariérních úrovních.
Moderní alternativy datových kostek
V roce 2026 jsou klasické MOLAP kostky typu SSAS Multidimensional nebo SAP BW na ústupu. Nahrazují je tři přístupy, které dohromady dělají totéž — rychlou multidimenzionální analýzu — ale s podstatně nižším provozním overheadem:
- Columnar cloud data warehouse — Snowflake, Google BigQuery, Amazon Redshift, Azure Synapse. Sloupcové úložiště + MPP engine řeší agregace nad miliardami řádků v jednotkách vteřin bez pre-aggregace.
- Tabulkové (in-memory) modely — Power BI Premium (Tabular), SSAS Tabular, Tableau Hyper. Načítají model do RAM, používají sloupcový engine VertiPaq a DAX místo MDX. Dnes výchozí volba pro „klasickou kostku" v Microsoft stacku.
- Semantic layer nad data warehousem — dbt Semantic Layer, Cube.dev, AtScale, Looker (LookML). Definujete metriky a dimenze jednou, BI nástroje (Power BI, Tableau, Excel) je čtou stejně jako klasickou kostku.
U lakehouse stacku doplňuje obrázek Databricks SQL s Photon enginem, který nabízí kostku-like výkon přímo nad Delta Lake.
Srovnání: klasická kostka vs moderní cloud warehouse
Hlavní rozdíly v provozním modelu, výkonu a flexibilitě:
| Kritérium | Klasická OLAP kostka | Moderní cloud warehouse |
|---|---|---|
| Typické nástroje | SSAS Multidimensional, Essbase, SAP BW, Cognos TM1 | Snowflake, BigQuery, Databricks SQL, Power BI tabular |
| Storage | Pre-agregovaná multidimenzionální struktura | Columnar (Parquet, micro-partitions) |
| Latence dotazu | Milisekundy (pre-aggregace) | Vteřiny (live agregace, často s cache) |
| Refresh dat | Hodiny–dny (full cube process) | Minuty (CDC, streaming, micro-batch) |
| Škálovatelnost | Vertikální, omezená pamětí | Horizontální, prakticky neomezená |
| Změna modelu | Náročná (re-design + reprocess) | Snadná (přidej sloupec, nová dbt model) |
| Nestrukturovaná data | Nepodporuje | Podporuje (semi-structured, JSON, ML features) |
| Self-service BI | Omezené (vyžaduje MDX) | Široké (SQL, drag-and-drop v Power BI/Tableau) |
| TCO | Vyšší — licence + on-prem hardware | Pay-per-use, žádný hardware |
| Vhodné pro | Stabilní reporting na zralé doméně | Moderní BI + ML + ad-hoc analýzu |
- Klasická OLAP kostka
- SSAS Multidimensional, Essbase, SAP BW, Cognos TM1
- Moderní cloud warehouse
- Snowflake, BigQuery, Databricks SQL, Power BI tabular
- Klasická OLAP kostka
- Pre-agregovaná multidimenzionální struktura
- Moderní cloud warehouse
- Columnar (Parquet, micro-partitions)
- Klasická OLAP kostka
- Milisekundy (pre-aggregace)
- Moderní cloud warehouse
- Vteřiny (live agregace, často s cache)
- Klasická OLAP kostka
- Hodiny–dny (full cube process)
- Moderní cloud warehouse
- Minuty (CDC, streaming, micro-batch)
- Klasická OLAP kostka
- Vertikální, omezená pamětí
- Moderní cloud warehouse
- Horizontální, prakticky neomezená
- Klasická OLAP kostka
- Náročná (re-design + reprocess)
- Moderní cloud warehouse
- Snadná (přidej sloupec, nová dbt model)
- Klasická OLAP kostka
- Nepodporuje
- Moderní cloud warehouse
- Podporuje (semi-structured, JSON, ML features)
- Klasická OLAP kostka
- Omezené (vyžaduje MDX)
- Moderní cloud warehouse
- Široké (SQL, drag-and-drop v Power BI/Tableau)
- Klasická OLAP kostka
- Vyšší — licence + on-prem hardware
- Moderní cloud warehouse
- Pay-per-use, žádný hardware
- Klasická OLAP kostka
- Stabilní reporting na zralé doméně
- Moderní cloud warehouse
- Moderní BI + ML + ad-hoc analýzu
Kdy klasickou kostku ještě použít
Klasická MOLAP kostka má smysl ve třech scénářích:
- Stávající SAP BW / SSAS investice — pokud máte zralý ekosystém s desítkami reportů a uživatelů, big-bang migrace bývá dražší než postupný útlum.
- Velmi stabilní reporting bez ad-hoc — finanční uzávěrka, regulatorní reporting, kde se model nemění a dotazy se opakují každý měsíc.
- On-prem prostředí bez cloud strategie — kde cloud DW není volba (regulační důvody, izolovaná síť) a SSAS Tabular je dobrá moderní volba.
Pro nové projekty na zelené louce doporučujeme jít rovnou cestou cloud warehouse + semantic layer nebo Power BI tabular model.
Jak postavit moderní „kostku" v roce 2026
Praktický postup, který v Daata používáme u klientů:
- Datový sklad ve Snowflake / BigQuery / Databricks — staging vrstva, core dimenzionální model (Kimball star schema), serving vrstva.
- Transformace v dbt — staging modely (raw → typed), intermediate (business logic), marts (fact + dim tabulky). Versioning v Gitu, automatické testy, dokumentace.
- Semantic layer — metriky a dimenze v dbt Semantic Layer, Cube.dev nebo přímo v Power BI tabular modelu. Definuje měry a hierarchie jednou, dostupné napříč BI nástroji.
- BI a samoobslužná analytika — Power BI, Tableau nebo Looker nad semantic layerem. Uživatelé „pivotují" jako v klasické kostce, ale nad živými cloud daty.
- Orchestrace — Airflow nebo Dagster spouští dbt + refresh BI sémantiky v denním/hodinovém režimu.
Výsledek: multidimenzionální analýza jako z kostky, ale bez kostky — agilní, cloud-native, snadno rozšiřitelná o nové dimenze a metriky.
Časté dotazy o datových kostkách
Co je datová kostka jednoduše vysvětleno?
Datová kostka je multidimenzionální struktura, která předem spočítá agregace (součty, průměry) pro všechny smysluplné kombinace obchodních dimenzí (čas, region, produkt). Uživatel pak dostane odpověď v milisekundách, protože se nepočítá při dotazu, ale čte z předpočítaného úložiště.
Jaký je rozdíl mezi datovou kostkou a datovým skladem?
Datový sklad je úložiště všech historických dat ve strukturované podobě. Datová kostka je odvozená multidimenzionální struktura nad datovým skladem, optimalizovaná pro rychlé analytické dotazy. Moderní cloud warehousy ale dokážou kostku z velké části nahradit díky columnar storage a MPP enginu.
Co znamená MOLAP, ROLAP a HOLAP?
MOLAP ukládá agregace ve vlastním multidimenzionálním formátu (nejrychlejší, ale méně flexibilní). ROLAP nechává data v relační databázi a počítá agregace v SQL. HOLAP je hybrid — agregace v MOLAP, detail v relační databázi. Moderní columnar cloud warehousy efektivně překryly všechny tři přístupy.
Používají se datové kostky ještě v roce 2026?
V nových projektech jen výjimečně. Klasické MOLAP nástroje jako SSAS Multidimensional, SAP BW BEx nebo Essbase jsou na sestupu. Nahrazují je tabulkové modely v Power BI, semantic layery (dbt Semantic Layer, Cube.dev) a columnar enginy ve Snowflake, BigQuery nebo Databricks SQL.
Co je MDX a používá se ještě?
MDX (Multidimensional Expressions) je dotazovací jazyk pro OLAP kostky, navržený Microsoftem v roce 1997. Stále ho používají Excel Pivot Table proti SSAS, ale v moderním stacku ho vystřídal DAX (Power BI tabular), SQL (cloud DW) nebo MetricFlow (dbt Semantic Layer).
Jak dlouho trvá postavit datovou kostku?
Klasická SSAS Multidimensional kostka nad připraveným data martem: 4–12 týdnů včetně designu agregací. Moderní ekvivalent na Snowflake + dbt + Power BI tabular model: typicky 6–10 týdnů od kick-offu po první produkční dashboard, s podstatně menším provozním nákladem.
Co je „cube processing" a proč trvá tak dlouho?
Cube processing je výpočet všech předdefinovaných agregací v MOLAP kostce. U velké kostky s 8–10 dimenzemi a desítkami měr může trvat hodiny — engine musí spočítat součty pro každou smysluplnou kombinaci dimenzionálních úrovní. Proto se kostky obvykle procesují v noci po nahrání dat.
Můžu migrovat SAP BW kostky do Snowflake nebo BigQuery?
Ano, je to běžný projekt. Typický postup: 1) extrakce raw dat z BW (ODP / SLT / 3rd party konektor), 2) přemodelování do dimenzionálního star schema v cloud DW, 3) přepsání transformací z ABAP a BW transformací do dbt, 4) nová sémantická vrstva v Power BI nebo Looker. Doba: 4–9 měsíců podle rozsahu.
Co je Power BI tabular model a je to kostka?
Power BI tabular model je in-memory columnar engine (VertiPaq), který se chová jako moderní nástupce klasické MOLAP kostky. Definujete tabulky, vztahy, hierarchie a DAX míry — uživatelé pak pivotují stejně jako v klasické kostce, ale model je menší, rychleji se aktualizuje a integruje se s cloud DW.
Jakou roli má semantic layer (dbt, Cube.dev)?
Semantic layer je „kostka bez kostky" — centrálně definujete metriky, dimenze a hierarchie jednou v kódu (YAML/SQL), a všechny BI nástroje (Power BI, Tableau, Excel, Looker) je čtou konzistentně. Řeší problém „každý BI má jiný výpočet tržby", typický bolavý bod klasických multi-tool firem.
Co je „in-memory" kostka a kdy ji použít?
In-memory kostka (Power BI Premium, Tableau Hyper, SSAS Tabular, QlikView/Sense) drží celý komprimovaný model v RAM. Dotazy běží v milisekundách. Vhodná pro modely do cca 100–500 GB komprimovaných dat. Větší modely patří do cloud warehouse s live connection.
Kolik dimenzí má mít rozumná datová kostka?
6–10 dimenzí pro hlavní analytickou kostku, 20–60 měr. Více dimenzí dělá kostku náročnou na processing a hůře pochopitelnou pro uživatele. Komplexnější domény se rozkládají do více kostek navázaných sdílenými dimenzemi (conformed dimensions podle Kimballa).