Účel datového skladu a jeho místo v ekosystému BI
Datový sklad (Data Warehouse, DWH) je centralizované, historizované a tematicky orientované úložiště, které konsoliduje data z heterogenních zdrojů s cílem podpořit analytiku, reporting, plánování a rozhodování. Oproti operačním systémům klade důraz na konzistenci, auditovatelnost, časovou dimenzi a výkon analytických dotazů. Základními vlastnostmi jsou integrace, nezávislost na zdrojích, nekonfliktní definice metrik a řízená kvalita dat.
Architektonické vrstvy a topologie
- Landing/Raw: izolované uložení surových dat (nejlépe neměnné – „immutable“) v původní granularitě včetně metadat o načtení, původu a schématu.
- Staging/Integration: technická integrační vrstva pro čištění, standardizaci a slučování; zde probíhá většina transformační logiky a deduplikace.
- Core DWH: stabilizovaný model (hvězda/sněhová vločka/Data Vault), historizace a řízení klíčů; zdroj pro řízené datové mart’y.
- Data Marts: tematicky zaměřené podsady pro konkrétní domény (prodej, finance, marketing) optimalizované pro uživatelské dotazy a nástroje BI.
- Semantic/Presentation: sémantická vrstva (definice ukazatelů, role, zabezpečení), která sjednocuje význam metrik napříč nástroji.
- Topologie: on-prem MPP, cloudové sklady, přístup lakehouse (object storage + SQL engine), hybridní řešení s odděleným výpočetním výkonem a úložištěm.
Datové modelování: volba paradigmatu
- Dimenzionální model (Kimball): faktové tabulky (měřitelné události, aditivní/semiaditivní) a dimenzionální tabulky (kdo, co, kdy, kde, jak). Výhodou je jednoduchost dotazů a výkon agregací.
- Sněhová vločka: normalizace dimenzí (subdimenzí); úspora místa, potenciálně složitější spojení.
- Data Vault 2.0: Huby (business klíče), Linky (vztahy), Satelity (atributy v čase). Výhodou je odolnost vůči změnám zdrojů a auditovatelnost; nad DV se pro reporting vytvářejí mapované hvězdicové modely.
- Lakehouse: formáty typu Parquet/Delta/Iceberg s ACID, funkcí time-travel a odděleným výpočetním výkonem; flexibilní řešení pro ELT a datovou vědu.
Granularita, fakta a dimenze
- Grain: nejnižší úroveň detailu faktu – určující pro budoucí flexibilitu; vždy ji výslovně definujte (např. „řádek účtenky po položkách“).
- Typy faktů: transakční (aditivní), snímek (stav k datu), „průběžný snímek“ (životní cyklus procesu).
- Dimenze: konformační (sdílené napříč datovými marty), s různými rolemi (např. datum pro prodej i expedici), degenerované (kód ve faktu).
Pomalé změny dimenzí (SCD) a historizace
| Typ SCD | Chování | Využití |
|---|---|---|
| Typ 0 | Žádná změna (zafixování) | Historické referenční hodnoty |
| Typ 1 | Přepsání (overwrite) | Opravy chyb, historie bez významu |
| Typ 2 | Historie v řádcích (valid-from/to, příznak aktuálnosti) | Auditovatelné změny pro analytiku |
| Typ 3 | Omezená historie ve sloupcích | Porovnání „před/po“ u vybraných atributů |
| Hybridní | Kombinace (např. 1+2) | Pragmatická optimalizace |
ETL vs. ELT: provozní strategie
| Aspekt | ETL (transformace mimo DWH) | ELT (transformace v DWH/Lake) |
|---|---|---|
| Výpočet | Middleware/ETL server | Přenesení výpočtu do MPP/clusteru |
| Agilita | Silná kontrola, pomalejší změny | Rychlé iterace, SQL/notebooky |
| Náklady | Licencování ETL, nižší náklady na cloudové výpočty | Spotřeba výpočetních zdrojů ve skladu |
| Správa schémat | Modelování předem | Schema-on-read, pozdější kurátorské zpracování |
| Datová věda | Méně přirozené | Nativní integrace s lakehouse |
Získávání dat: dávkové zpracování, CDC a streaming
- Full/Incremental load: kompletní načtení vs. přírůstky podle časového razítka/identifikátoru; je třeba zohlednit pozdní příchody.
- CDC (Change Data Capture): CDC založené na protokolu (binlog/WAL), spouštěčích nebo časových razítkách; snižuje zátěž zdrojů.
- Streaming: příjem dat řízený událostmi (Kafka/PubSub), architektury Lambda/Kappa; nutnost sémantiky „exactly-once“ a strategií opětovného zpracování.
Čištění, standardizace a slučování (Cleansing & Conformance)
- Profilace: mohutnost, vzory, anomálie, referenční integrita; automatizované profilování při změně schématu.
- Validační pravidla: syntaktická (typy, rozsahy), sémantická (business pravidla), referenční (MDM), geokódy, normy ISO.
- Deduplikace a zlaté záznamy: fuzzy matching, pravidla přežití, vážené zdroje; integrace s MDM.
Klíče, identita a referenční data
- Surrogate keys: stabilní interní ID (integer/hash) pro dimenze; oddělení od business klíčů.
- Business klíče: uchovávejte je pro sledování původu a detekci změn (SCD2).
- Reference/MDM: správa číselníků (měny, země, organizace), schvalovací workflow, verzování a publikování.
Výkon a optimalizace dotazů
- Sloupcové úložiště: komprese, vektorové zpracování, „late materialization“; zásadní pro analytické úlohy.
- Particionování a clustering: podle času/domény; minimalizace skenování, zrychlení spojení.
- Materializované pohledy a agregáty: předpočítané KPI; řízení aktuálnosti (ttl/refresh) ve vztahu k nákladům.
- Optimalizátor založený na nákladech: statistiky tabulek a sloupců; pravidelná aktualizace.
Orchestrace, plánování a spolehlivost
- Orchestrace workflow: DAG s výslovně definovanými závislostmi, idempotence kroků, transakční hranice.
- Retry a backoff: řízené opakování, fronty „dead-letter“, kompenzační operace.
- Verzování pipeline: Infrastructure as Code, parametrizace prostředí (DEV/UAT/PROD), migrační skripty.
- Testování: jednotkové testy SQL/transformací, datové testy (počet řádků, podíl hodnot NULL, referenční integrita), regresní testy metrik.
Monitorování, observabilita a lineage
- Metriky běhu: doba, průtok, chybovost, objemy; SLO/SLA pro aktuálnost a dostupnost datových sad.
- Datová observabilita: změny distribucí, schema drift, upozornění na „freshness“, odlehlé hodnoty v metrikách.
- Lineage a katalog: původ dat od začátku do konce (na úrovni sloupců), identifikace dopadů změn, možnost vyhledávání a popisy (business glossary).
Bezpečnost, řízení přístupu a soulad s předpisy
- RBAC/ABAC: role a atributy (oddělení, země, účel zpracování); princip nejnižších nutných oprávnění.
- Řízení citlivých dat: klasifikace PII/PHI, maskování (statické/dynamické), tokenizace, šifrování uložených dat i dat při přenosu.
- Zabezpečení na úrovni řádků/sloupců: filtry podle tenantů/regionů; audit přístupů.
- GDPR a retenční politiky: právní titul, doba uchovávání, právo na výmaz; ochrana soukromí již od návrhu.
KPI a governance pro DWH
- Kvalita dat: % záznamů splňujících pravidla, počet incidentů, MTTR.
- Aktuálnost: latence od události ke KPI, míra včasného doručení.
- Využití: aktivní uživatelé, četnost dotazů, často používané datové sady.
- Náklady: náklady na dotaz/datovou sadu, jednotková cena metrik, optimalizace výpočetních zdrojů a úložiště.
BI a sémantická vrstva
- Business glossary: jednotné definice metrik (např. „Hrubý zisk“, „Aktivní zákazník 30D“), verzování a schvalování.
- Semantic model: výpočty, dimenze s různými rolemi, časová inteligence (YoY, YTD), jazyk DAX/LookML/semantic SQL.
- Self-service BI: řízená datová vrstva + ochranná opatření (zabezpečení na úrovni řádků, certifikace datových sad).
Lakehouse a moderní vzory ELT
- Medallion architektura: Bronze (surová data), Silver (vyčištěná/konformovaná data), Gold (připraveno pro business).
- Time-travel a ACID: bezpečné opětovné zpracování, audit, návrat k předchozímu stavu; klonování tabulek pro experimenty bez kopírování dat.
- Transformace v noteboocích: kombinace SQL a Pythonu/Scaly pro pokročilé obohacování a přípravu příznaků pro ML.
Výpočty metrik a agregací
- Atomicita vs. agregace: ukládat data v atomické granularitě a odvozovat agregace s materializací tam, kde to dává smysl (náročné KPI, sezónní sestavy).
- Kalendářní dimenze: tabulka času s atributy (fiskální období, týden ISO, svátky); klíčová pro časové výpočty.
- Měnové konverze: tabulky kurzů s časovou platností, víceměnové ukazatele (spot, EoD, průměr).
Ukázkový workflow ETL/ELT (na vysoké úrovni)
- Ingest: CDC z ERP/CRM do Raw (Parquet/Delta) + metadatové záznamy (zdroj, offset, hash schématu).
- Standardizace: převody typů, ořezání mezer, normalizace kódů (ISO-3166, ISO-4217), validace povinných polí.
- Conformance: mapování číselníků z MDM, deduplikace zákazníků (match-merge, pravidla přežití).
- Historizace: generování SCD2 pro dimenze (valid_from/to, current_flag), tvorba náhradních klíčů.
- Fakta: naplnění faktů z transakcí, vazby na dimenze, výpočet odvozených metrik a auditních stop (hash diff, source_system).
- Data Marts: denormalizované hvězdicové modely, materializované pohledy pro KPI, zásady zabezpečení na úrovni řádků/sloupců.
- Publikování: registrace v katalogu, přidání do sémantické vrstvy, certifikace a SLA pro aktuálnost.
Nákladový model a škálování
- Compute vs. Storage: oddělené škálování; plánování velikosti „warehouse“, auto-suspend/auto-resume, spot/preemptible uzly pro dávkové úlohy.
- Cost governance: kvóty, rozpočty, označování projektů štítky, chargeback/showback.
- Elasticita: horizontální škálování při uzávěrkách, omezování při nečinnosti, fronty s prioritami.
Typické chyby a jak jim předcházet
- Nejasné definice metrik → zavést glossary a sémantickou vrstvu, schvalovací workflow.
- „Big Ball of Mud“ SQL → modularizovat transformace, testovat a verzovat.
- Chybějící lineage → nástrojová podpora s vazbami na úrovni sloupců, automatická dokumentace.
- Přílišná denormalizace bez řízení → materializovat cíleně, spravovat aktualizace a závislosti.
Kontrolní seznam pro návrh a provoz DWH/ETL
- Je definován grain faktů a konformační dimenze?
- Je zvolen způsob historizace (SCD) a pravidla změn?
- Jsou určeny vrstvy Raw–Staging–Core–Mart a jejich SLA/retence?
- Je zajištěna orchestrace se strategiemi idempotence a opakování?
- Observabilita: upozornění na aktuálnost, kvalitu a schema drift?
- Bezpečnost: klasifikace PII, RLS/CLS, audit?
- Řízení nákladů a automatická optimalizace (partice, cluster, MV)?
- Katalog, glossary a certifikace datových sad?
Závěr
Moderní datový sklad a procesy ETL/ELT tvoří páteř business intelligence. Úspěch závisí na správném modelování, spolehlivém příjmu dat, kvalitě a historizaci dat, automatizované orchestraci, observabilitě a governance. Využití cloudových skladů, technologií lakehouse a sémantické vrstvy umožňuje škálovat analytiku, zkrátit dobu potřebnou k získání poznatků a současně udržet náklady a rizika pod kontrolou.
