Datové sklady a procesy ETL

Účel datového skladu a jeho místo v BI ekosystému

Datový sklad (Data Warehouse, DWH) je centralizované, historizované a tematicky orientované úložiště, které konsoliduje data z heterogenních zdrojů za účelem podpory analytiky, reportingu, plánování a rozhodování. Na rozdíl od operačních systé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é marty.
  • Data Marts: tematicky zaměřené podsady pro konkrétní domény (prodej, finance, marketing) optimalizované pro uživatelské dotazy a BI nástroje.
  • Semantic/Presentation: sémantická vrstva (definice metrik, role, bezpečnost), která sjednocuje význam metrik napříč nástroji.
  • Topologie: on-prem MPP, cloudové sklady, lakehouse přístup (object storage + SQL engine), hybridy se separací výpočetní vrstvy a úložiště.

Datové modelování: volba paradigmatu

  • Dimenzionální model (Kimball): faktové tabulky (měřitelné události, aditivní/semiaditivní) a dimenzní tabulky (kdo, co, kdy, kde, jak). Výhoda – jednoduchost dotazů, výkon agregací.
  • Sněhová vločka: normalizace dimenzí (subdimenzí); úspora místa, potenciálně složitější joiny.
  • Data Vault 2.0: Huby (business klíče), Linky (vztahy), Satelity (atributy v čase). Výhoda – odolnost vůči změnám zdrojů, auditovatelnost; nad Data Vaultem se budují mapované hvězdy pro reporting.
  • Lakehouse: formáty typu Parquet/Delta/Iceberg s ACID vlastnostmi, time-travel a separovaným výpočetním prostředím; flexibilní pro ELT a data science.

Granularita, fakta a dimenze

  • Granularita (grain): nejnižší úroveň detailu faktu – určující pro budoucí flexibilitu; vždy explicitně definovat (např. „řádek účtenky po položkách“).
  • Typy faktů: transakční (aditivní), snapshot (stav k datu), „accumulating snapshot“ (životní cyklus procesu).
  • Dimenze: konformační (sdílené napříč marty), role-playing (např. datum pro prodej i expedici), degenerované (kód v 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řepis (overwrite) Opravy chyb, nerelevantní historie
Typ 2 Historie v řádcích (valid-from/to, current flag) Auditovatelné změny pro analytiku
Typ 3 Limitovaná historie ve sloupcích Porovnání „před/po“ pro vybrané atributy
Hybrid Kombinace (např. 1+2) Pragmatická optimalizace

ETL vs. ELT: operační strategie

Aspekt ETL (Transformace mimo DWH) ELT (Transformace v DWH/Lake)
Výpočet Middleware / ETL server Push-down do MPP / clusteru
Agilita Silná kontrola, pomalejší změny Rychlé iterace, SQL / Notebooky
Náklady Licencování ETL, menší výpočetní cloudové náklady Spotřeba výpočtů ve skladu
Správa schémat Upfront modelování Schema-on-read, pozdější kurátorství
Datové vědy Méně přirozené Nativní integrace s lakehouse

Získávání dat: dávka, CDC a streaming

  • Full/Incremental load: kompletní načtení versus přírůstky podle časových značek (timestamp) či identifikátorů; nutno zohlednit pozdní příchody dat.
  • CDC (Change Data Capture): logově orientované CDC (binlog/WAL), triggerově založené, na základě timestampů; snižuje zátěž zdrojových systémů.
  • Streaming: event-driven ingest (Kafka / PubSub), Lambda / Kappa architektury; vyžaduje „exactly-once“ sémantiku a strategie opětovného zpracování.

Čištění, standardizace a slučování (Cleansing & Conformance)

  • Profilace: kardinalita, vzory, anomálie, referenční integrita; automatizované profilační běhy při změně schématu.
  • Validační pravidla: syntaktická (datové typy, rozsahy), sémantická (business pravidla), referenční (MDM), geokódy, ISO standardy.
  • Dedup a zlaté záznamy: fuzzy matching, pravidla survivorship, vážené zdroje; integrace s MDM.

Klíče, identita a referenční data

  • Surrogate keys: stabilní interní identifikátory (integer/hash) pro dimenze; oddělené od business klíčů.
  • Business klíče: uchovávat pro sledování původu a detekci změn (SCD2).
  • Reference / MDM: řízení číselníků (měny, země, organizace), schvalovací workflow, verzování a publikace.

Výkon a optimalizace dotazů

  • Sloupcové uložení: komprese, vectorized execution, „late materialization“; zásadní pro analytická zatížení.
  • Particionace a clustering: podle času či domény; minimalizace skenování, urychlení spojení (joinů).
  • Materializované pohledy a agregáty: předpočítané klíčové ukazatele výkonnosti (KPI); řízení čerstvosti (TTL / refresh) vs. náklady.
  • Cost-based optimalizér: statistiky tabulek a sloupců; pravidelná obnova.

Orchestrace, plánování a spolehlivost

  • Workflow orchestrace: DAG s explicitními závislostmi, idempotence kroků, transakční hranice.
  • Retry a backoff: řízené opakování, „dead-letter“ fronty, kompenzační operace.
  • Verzování pipeline: Infrastructure as Code, parametrizace prostředí (DEV / UAT / PROD), migrační skripty.
  • Testování: unit testy SQL / transformací, datové testy (počty řádků, podíl null hodnot, referenční integrita), regresní testy metrik.

Monitorování, observabilita a lineage

  • Metry běhu: doba zpracování, průtok, chybovost, objemy; SLO / SLA pro čerstvost a dostupnost datasetů.
  • Datová observabilita: detekce změn distribucí, schema drift, alarmy na čerstvost, outlieri v metrikách.
  • Lineage a katalog: end-to-end původ dat (na úrovni sloupců), identifikace dopadů změn, vyhledatelnost a popisy (business glossary).

Bezpečnost, řízení přístupu a compliance

  • RBAC / ABAC: role a atributy (oddělení, země, účel zpracování); princip minimálních oprávnění.
  • Řízení citlivých dat: klasifikace PII / PHI, maskování (statické / dynamické), tokenizace, šifrování v klidu i přenosu.
  • Row-level a Column-level security: filtry podle nájemců (tenantů) / regionů; audit přístupů.
  • GDPR a retenční politiky: právní titul, doba uchování, právo na výmaz; privacy-by-design.

KPI a governance pro DWH

  • Kvalita dat: % záznamů splňujících validační pravidla, počet incidentů, MTTR (Mean Time To Repair).
  • Čerstvost: latence od události ke KPI, on-time delivery rate.
  • Využití: aktivní uživatelé, frekvence dotazů, klíčové datasetů.
  • Náklady: náklady na dotaz / dataset, jednotková cena metrik, optimalizace výpočtů a úložiště.

BI a sémantická vrstva

  • Business glossary: jednotné definice metrik (např. „Hrubý zisk“, „Aktivní zákazník 30 dní“), verzování a schvalování.
  • Semantic model: kalkulace, role-playing dimenze, časová inteligence (YoY, YTD), jazyky DAX / LookML / semantic SQL.
  • Self-service BI: řízená vrstva dat plus guardrails (row-level security, certifikace datových sad).

Lakehouse a moderní ELT patterny

  • Medallion architektura: Bronze (raw), Silver (čištěno / konformováno), Gold (business ready).
  • Time-travel a ACID: bezpečné re-procesy, audit, rollback; klonování tabulek pro experimenty bez nutnosti kopírování dat.
  • Notebook-oriented transformations: kombinace SQL a Python / Scala pro pokročilé obohacování dat a ML featury.

Výpočty metrik a agregací

  • Atomicita vs. agregace: uchovávat atomickou granularitu a odvozovat agregace s materializací tam, kde to má smysl (významné KPI, sezónní reporty).
  • Kalendářní dimenze: tabulka času s atributy (fiskální období, týdny dle ISO, svátky); klíčová pro časové výpočty.
  • Měnové konverze: tabulky kurzů s platností v čase, multi-měnové metriky (spot, EoD, průměr).

Ukázkový ETL/ELT workflow (vysoká úroveň)

  1. Ingest: CDC z ERP / CRM do Raw (Parquet / Delta) plus metadatové záznamy (zdroj, offset, schema hash).
  2. Standardizace: typové konverze, ořezání mezer, normalizace kódů (ISO-3166, ISO-4217), validace povinných atributů.
  3. Conformance: mapování číselníků z MDM, deduplikace zákazníků (match-merge, survivorship pravidla).
  4. Historizace: generování SCD2 pro dimenze (valid_from/to, current_flag), tvorba surrogate keys.
  5. Fakta: plnění faktových tabulek z transakcí, vazby na dimenze, výpočet derivovaných metrik a auditních stop (hash diff, source_system).
  6. Data Marts: denormalizované hvězdy, materializované pohledy pro KPI, row/column security politiky.
  7. Publikace: registrace v katalogu, přidání do sémantické vrstvy, certifikace a SLA pro čerstvost dat.

Nákladový model a škálování

  • Výpočet vs. úložiště: oddělené škálování; plánování velikosti „warehouse“, auto-suspend / auto-resume, spot / preemptible instance pro dávky.
  • Cost governance: kvóty, rozpočty, tagování projektů, chargeback / showback.
  • Elasticita: horizontální škálování při uzávěrkách, snižování kapacity v nečinnosti, priority front.

Typické prohřešky a jak jim předejít

  • Nejasné definice metrik → zavést business glossary a sémantickou vrstvu, schvalovací workflow.
  • „Big Ball of Mud“ v 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í → materiálovat cíleně, spravovat refresh a závislosti.

Checklist pro návrh a provoz DWH/ETL