Co je Data Warehousing a proč na něm záleží
Data Warehousing (DWH) je disciplína zaměřená na návrh, výstavbu a provoz centrálního úložiště pro analytické zpracování dat. Cílem je konsolidovat heterogenní zdroje (ERP, CRM, IoT, logy, marketingové platformy) do konzistentního, historizovaného a auditovatelného modelu, nad kterým je možné efektivně provozovat reporting, self-service analytiku, data science a plánování. DWH je typicky optimalizováno pro čtení (read-optimized), proto využívá sloupcové formáty, kompresi, indexy, materializace a MPP paralelní zpracování.
Referenční architektura a datové vrstvy
- Ingestion: dávkové importy (CSV, Parquet, API), CDC (Change Data Capture), streaming (Kafka, MQTT).
- Landing/Staging: surová data bez transformací, oddělená podle zdrojů a času příjmu. Slouží pro audit i opětovné zpracování.
- ODS (Operational Data Store): lehce harmonizovaná vrstva pro operativní analytiku s kratší historií.
- Enterprise Data Warehouse (EDW): kurátorská vrstva s business modely (dimenzní či Data Vault), řízená kvalitou a správou dat (governance).
- Data Marts: tematické oblasti (Finance, Sales, Marketing) optimalizované pro konkrétní uživatelské scénáře.
- Semantická vrstva: metriky, kalkulace, obchodní definice (centralizace definic KPI, RLS/CLS).
ETL vs. ELT a orchestrace
ETL (Extract–Transform–Load) přesouvá transformace mimo databázi. ELT (Extract–Load–Transform) využívá výpočetní výkon DWH/data jezera. Moderní přístup preferuje ELT, verzování SQL transformací a declarative pipelines (například nástroje typu dbt, Airflow, Dagster). Orchestrace řídí závislosti, plánování, retry politiky, parametrizaci a notifikace.
Modelovací přístupy: Kimball, Inmon, Data Vault 2.0
- Kimball (dimenzní modelování): Star schema s faktovými tabulkami (měření) a dimenzemi (atributy). Výhody: rychlá odezva, přehlednost, jednoduchá semantika.
- Inmon (Corporate Information Factory): normalizované EDW (3NF), nad kterým se budují datamarty. Výhody: integrita a konzistence na úrovni celopodnikového modelu.
- Data Vault 2.0: Hub–Link–Satellite pro škálovatelné, auditovatelné a agilní propojení zdrojů. Výhody: flexibilita při změnách zdrojů, historizace, SLA přátelskost.
Dimenzní modelování do hloubky
- Grain (zrno): základní „atom“ faktu (např. řádek objednávky). Zrno se volí jako první – určuje klíče, metriky, agregace.
- Typy faktů: transakční, snapshot (stav k určitému času), akumulované (životní cyklus procesu), eventové.
- Dimenze: konformační (sdílené napříč martami), časová, produktová, zákaznická, geografická apod.
- Slowly Changing Dimensions (SCD):
- Typ 0: neměnit (retence původní hodnoty),
- Typ 1: přepsání bez historie,
- Typ 2: historizace s intervaly platnosti (valid_from/to),
- Typ 3: uchování předchozí hodnoty v dedikovaném sloupci,
- Typ 4/6/7: pokročilé varianty kombinující historii a aktuální stav.
- Surrogate keys: interní identifikátory zajišťující stabilitu napříč zdroji a časem.
Datové formáty, ukládání a výpočet
- Sloupcové formáty: Parquet/ORC pro kompresi, efektivní skenování, predicate pushdown a vectorized IO.
- Indexování a clustering: partitioning (čas, entita), clustering/sorting (např. Z-order), statistiky pro optimalizátor.
- MPP a separace storage/compute: horizontální škálování uzlů, nezávislé škálování výpočetního výkonu a kapacity úložiště.
- Materializace: agregované snapshoty, incremental models, result set caching.
Cloudové DWH a ekonomika provozu
Moderní platformy (například cloudová data warehousy a lakehouse motory) nabízejí on-demand výpočetní výkon, automatické škálování, time travel, zero-copy cloning či víceklastrovou současnost (concurrency). Ekonomika stojí na třech pilířích: úložiště, výpočet, přenosy. Návrhové zásady:
- Minimalizovat „full scan“ přes velké tabulky (partition pruning, clustering, filtrovací materializace).
- Omezit extrémně granulární small files (kompaktace do větších souborů).
- Oddělit prod a dev workload, plánovat neslučitelné dotazy do mimošpičkových časů.
Lakehouse, data lake a DWH: vzájemné vztahy
Data Lake uchovává surová data v levném objektovém úložišti, DWH poskytuje kurátorský model a výkon pro BI účely. Lakehouse integruje transakční vrstvy nad jezery (ACID tabulky, schema evolution, time travel), čímž spojuje flexibilitu data jezera s řízením a kvalitou DWH. V praxi často koexistují: jezero pro raw/bronze data, DWH pro gold reporting.
Kvalita dat (DQ) a testování
- Validace schématu: povinné sloupce, datové typy, limity.
- Integritní testy: unicity, referenční vazby (FK surrogate keys).
- Profilace: distribuce hodnot, minima/maxima, sezónnost.
- Business pravidla: například „objednávka má zápornou marži jen se schválením“.
- Monitorování driftu: změny ve zdrojích (nové hodnoty kódovníků), pokles pokrytí.
Change Data Capture (CDC) a near-real-time DWH
CDC zaznamenává změny v zdrojích (binlog, redo log, replikace založená na logu) a doručuje je do DWH téměř v reálném čase. Výhody: nižší latence a zátěž zdrojů. Klíčové je řešit deduplikaci, pořadí událostí, idempotenci a late arriving data. Pro streamování se využívají topics (např. Kafka) a stream-to-table sinky.
Řízení přístupu a bezpečnost
- RBAC/ABAC: řízení přístupu na základě rolí nebo atributů, Row Level Security (oddělení trhů, týmů) a Column Masking (PII).
- Šifrování: At-rest (KMS/HSM), in-transit (TLS), správa klíčů a jejich rotace.
- Audit & lineage: kdo, kdy a co četl či měnil; sledování původu dat od zdroje až po report.
- Sandboxing: oddělené prostory pro vývoj a experimenty bez rizika úniku dat.
Metadata, katalog a semantická vrstva
Bez správy metadat se DWH stává „černou skříňkou“. Katalog (data dictionary) eviduje tabulky, sloupce, klasifikaci citlivosti, SLA a vlastnictví dat. Semantická vrstva poskytuje jednotnou definici metrik (např. „hrubá marže“) a zajišťuje konzistenci napříč BI nástroji. Součástí bývá také lineage a impact analysis pro bezpečné změny.
Výkon a optimalizace dotazů
- Distribuce dat: hash/shardování podle klíče s vysokou kardinálitou (vyhnout se nerovnoměrnému rozdělení – skew).
- Sort & cluster keys: zrychlení rozsahových dotazů, účinnější pruning.
- Statistiky a query plans: pravidelná aktualizace statistik, kontrola pořadí joinů, broadcast joins pro malé dimenze.
- Materializované pohledy: inkrementální obnova, řízení závislostí a invalidace.
DataOps, CI/CD a správa prostředí
- Verzování kódu: SQL modely, schémata, testy, dokumentace v Gitu.
- CI: linting SQL, spuštění testů, kontrola zásad (naming conventions, DDL policy).
- CD: migrační skripty (DDL/DML), blue–green release, feature flags.
- IaC: Terraform/CloudFormation pro reprodukovatelné nasazení clusterů, rolí, politik a síťových prvků.
Governance, kvalita a SLA
Podniková governance definuje data ownership, SLA/SLO (dostupnost, latence, čerstvost), RACI a životní cyklus dat (archivace, expirační politiky). Důležité je odlišit mission-critical metriky (finanční závěrka) od best-effort metrik (marketingové experimenty) a přizpůsobit tomu standardy kvality a monitoring.
GDPR, PII a etika práce s daty
- Minimalizace: neshromažďovat více dat, než je účelné; pseudonymizace a anonymizace.
- Práva subjektů: právo být zapomenut, přenositelnost; implementace soft-delete a delete propagation.
- Maskování a tokenizace: řízení přístupu k PII na úrovni sloupců; audit čtení.
Migrační strategie a modernizace
- Inventura zdrojů a reportů: mapování závislostí, dekompozice monolitických ETL.
- Architektonický target: DWH vs. lakehouse, volba modelu (Kimball/DV), semantická vrstva.
- Proof of Value: pilotní use-case (např. revenue dashboard) s jasnými KPI (latence, náklady, přesnost).
- Inkrementální přepis: replatforming po doménách; běh starého i nového paralelně (shadow mode).
- Decommission: řízené vypnutí starých pipeline po dosažení parity a schválení byznysem.
Antivzory (anti-patterns), kterým se vyhnout
- „Extrakce všeho navždy“: nekonečné náklady bez byznysové hodnoty; definujte účel a retenční politiku.
- Spaghetti SQL: transformace roztroušené v BI nástrojích, chybí governance a testy.
- Big-bang redesign: vysoké riziko; preferujte postupné doručování hodnoty.
- Ignorace semantiky: bez centrálních definic KPI dochází k „duelu dashboardů“.
- Under-partitioning/over-partitioning: buď plné skeny, nebo miliony souborů; hledejte rovnováhu.
Ukázkový rozhodovací strom pro SCD
| Otázka | Doporučení |
|---|---|
| Potřebujete úplnou historii atributu? | SCD 2 (intervaly platnosti) |
| Stačí aktuální stav bez historie? | SCD 1 (přepsání) |
| Chcete porovnat „před a po“ u několika klíčových atributů? | SCD 3 (dedikované sloupce „previous_…“) |
Metriky úspěchu DWH
- Čerstvost dat (freshness): medián latence mezi zdrojem a reportem.
- Dostupnost: % času, kdy je semantická vrstva a klíčové dashboardy dostupné.
- Kvalita: počet incidentů DQ na milion řádků.
- Ekonomika: náklady na dotaz/uživatele/měsíc, cena za insight.
- Adopce: aktivní uživatelé, počet certifikovaných dashboardů, doba k zavedení nové metriky.
Best practices v kostce
- Začněte definicí zrnem a vyhlašte konformní dimenze.
- Preferujte ELT s verzovanými transformacemi a automatickými testy.
- Zaveďte semantickou vrstvu a katalog s lineage.
- Automatizujte DataOps, CI/CD a observabilitu (metriky pipeline, kvalita, náklady).
- Řiďte bezpečnost a compliance (RLS/CLS, šifrování, maskování).
- Optimalizujte partitions, clustering a materializace; průběžně čistěte malé soubory.