_CORE
2.4B
Eventů denně (peak)
<50ms
P99 end-to-end latence (streaming)
99.99%
Data delivery guarantee
100%
Lineage coverage (column-level)
Architektura

Vrstvy datové platformy

Od ingestion přes transformaci po serving — každá vrstva má jasného ownera, SLA a monitoring. Žádné „data swamp".

Ingestion & Streaming

Apache Kafka 4.0 s KRaft (ZooKeeper kompletně odstraněn), Kafka Connect pro CDC z databází, Debezium pro change data capture z PostgreSQL, SQL Server, MongoDB. Schema Registry s Avro/Protobuf pro kontrakt mezi producenty a konzumenty.

Kafka 4.0 KRaft Debezium Schema Registry

Batch & Stream Processing

Apache Spark 4.0 pro batch (20–50 % performance gain díky Photon a nativnímu VARIANT typu). Apache Flink pro complex event processing a real-time aggregace. Spark Structured Streaming pro hybridní workloady.

Spark 4.0 Flink Structured Streaming Spark Connect

Storage & Lakehouse

Delta Lake jako primární table format — ACID transakce nad object storage, time travel, schema evolution. ADLS Gen2 / S3 jako storage layer. Oddělení compute a storage pro cost-efektivní škálování.

Delta Lake ADLS Gen2 S3 Apache Iceberg

Transformace & Modelování

dbt Core pro SQL-first transformace s version control, testováním a dokumentací. Microbatch strategie (od dbt 1.9) pro efektivní inkrementální zpracování velkých datasetů. Analytics engineering jako disciplína.

dbt Core Microbatch Fusion Engine SQL Mesh

Orchestrace

Apache Airflow 2.x s TaskFlow API pro komplexní DAGy. Dagster jako alternativa pro data-asset-centric přístup. Orchestrace pokrývá scheduling, retry logiku, SLA monitoring a dependency management.

Airflow Dagster Prefect

Serving & Analytics

Datový katalog s column-level lineage. Self-service BI přes Power BI a Apache Superset. Semantic layer pro konzistentní metriky napříč reporty. Feature store pro ML pipeline.

Power BI Superset Unity Catalog Feature Store
End-to-End

Streaming pipeline architektura

Od zdrojového systému po analytický dashboard — real-time s exactly-once sémantikou a plným tracing.

Zdroje PostgreSQL, APIs, IoT
CDC / Ingest Debezium, Connect
Kafka KRaft, Schema Reg.
Processing Flink / Spark SS
Lakehouse Delta Lake / Iceberg
Transform dbt / Spark SQL
Serving BI, ML, APIs

Apache Kafka 4.0: konec éry ZooKeeper

Kafka 4.0 (vydán Q1 2025) přinesl nejzásadnější architektonickou změnu za dekádu: kompletní odstranění ZooKeeper. KRaft (Kafka Raft) je teď jediný způsob správy metadata. Pro provoz to znamená jednodušší deployment (žádný ZooKeeper cluster na údržbu), rychlejší partition recovery a lepší škálovatelnost — Kafka cluster s milionem partitions už není edge case.

Proč KRaft mění hru

  • Jednodušší operace — místo dvou distribuovaných systémů (Kafka + ZooKeeper) provozujete jeden. Méně moving parts = méně incidentů. Upgrade window se zkrátil z hodin na desítky minut.
  • Rychlejší controller failover — KRaft controller election v řádu sekund vs. desítky sekund u ZooKeeper. Pro high-availability clustery zásadní rozdíl.
  • Škálovatelnost metadata — KRaft zvládá metadata pro miliony partitions bez degradace. ZooKeeper byl hard limit na ~200K partitions per cluster.
  • Next-gen consumer group protocol — nový rebalance protocol snižuje rebalance čas z minut na sekundy, což eliminuje „stop-the-world" momenty pro konzumenty.

Naše čísla: Migrace z Kafka 3.6 + ZooKeeper na Kafka 4.0 KRaft pro fintech klienta: operační overhead snížen o 40 %, partition recovery time z 45 s na 8 s, celkový cluster footprint -25 % (eliminace ZK nodů).

Schema management a data contracts

V enterprise prostředí je Kafka jen tak dobrý, jak dobrý je kontrakt mezi producenty a konzumenty. Confluent Schema Registry s Avro nebo Protobuf schématy je náš standard. Každá změna schématu prochází compatibility check (backward/forward/full) — žádný breaking change se nedostane do produkce bez explicitního review.

Pro kritické toky implementujeme data contracts: formalizovaný popis schématu, SLA, ownership a quality expectations. Data contract je verzovaný artefakt v Git — změna prochází stejným review procesem jako kód.

Stream processing: Flink vs. Spark Structured Streaming

Volba mezi Flink a Spark Structured Streaming není dogmatická — závisí na use case:

Kritérium Apache Flink Spark Structured Streaming
Latence True real-time (ms) Micro-batch (~100ms–1s)
Stavové výpočty Nativní, RocksDB state backend Omezené, watermark-based
Event-time processing First-class, flexible watermarks Podporováno, méně flexibilní
Batch + Stream unifikace Dobrá (DataStream + Table API) Výborná (stejné API)
Ekosystém & hiring Menší, specializovaný Obrovský, snadnější onboarding
Náš default CEP, fraud detection, IoT ETL streaming, analytics

Lessons learned: Flink je výrazně lepší pro complex event processing (fraud detection s pattern matching přes časová okna). Spark Structured Streaming je pragmatická volba tam, kde tým už Spark zná a latence 200ms–1s stačí. V praxi nasazujeme oboje — Flink pro hot path, Spark pro warm path.

Moderní úložiště

Data Lakehouse architektura

Data lakehouse spojuje to nejlepší z data lake (škálovatelnost, flexibilita schématu, nízké náklady) s tím nejlepším z data warehouse (ACID transakce, schema enforcement, výkon pro BI). Není to buzzword — je to architektonický vzor, který řeší reálný problém: „data lake se stal data swamp, data warehouse je příliš drahý."

Delta Lake jako primární table format

Delta Lake je náš default table format. Proč ne Apache Iceberg? Obojí je produkčně zralé, ale Delta má výhodu v ekosystému — nativní podpora v Databricks, Spark, a nyní i v dalších enginech díky Delta Kernel (univerzální čtecí knihovna). Nicméně pro klienty s multi-engine požadavky (Spark + Trino + Presto) doporučujeme Apache Iceberg.

  • ACID transakce — concurrent writes bez data corruption. Optimistic concurrency control s conflict resolution.
  • Time travel — query na libovolnou historickou verzi dat. Kritické pro audit trail a debugging produkčních pipeline.
  • Schema evolution — přidání sloupce bez přepsání celé tabulky. Merge schema pro backward-compatible změny.
  • Z-Order clustering — fyzické řazení dat pro dramatické zrychlení query s filtry. Na našich datasetách typicky 5–10× speedup pro analytické queries.
  • Vacuum & Optimize — automatizovaná údržba: compaction malých souborů, čištění starých verzí. Scheduling přes Airflow s monitoring v Grafana.

Medallion architektura (Bronze → Silver → Gold)

Standardní lakehouse pattern, který používáme na všech projektech:

  • Bronze (Raw) — surová data přesně tak, jak přišla ze zdroje. Append-only, schema-on-read. Slouží jako immutable audit log.
  • Silver (Cleaned) — deduplikovaná, typově validovaná, enrichovaná data. dbt modely s testy (unique, not_null, accepted_values, custom). Tady žije business logika.
  • Gold (Curated) — agregované metriky, dimenze, fact tabulky pro BI. Optimalizované pro query pattern analytického týmu. Materialized views tam, kde to dává smysl.

Anti-pattern: „Všechno do jedné Gold tabulky." Viděli jsme lakehouse s 500+ sloupci v jedné tabulce — neudržovatelné, neperformantní, bez jasného ownership. Správný přístup: data mesh principy — domény vlastní své Gold modely, centrální platforma poskytuje infrastrukturu a governance.

Transformace

dbt: Analytics Engineering v praxi

SQL-first transformace s version control, testováním a dokumentací. dbt udělal z data transformací software engineering disciplínu.

Proč dbt (a ne čistý Spark/SQL)

dbt není execution engine — je to transformační framework nad vaším warehouse/lakehouse enginem. Přináší software engineering best practices do světa dat: version control (Git), code review, automatizované testy, dokumentace jako kód a dependency management.

Od verze dbt Core 1.9 je k dispozici microbatch strategie — inkrementální modely zpracovávají data v diskrétních časových oknech, každé s vlastním SQL query. Pro velké event-driven datasety to znamená dramatické snížení compute cost a processing time. V dbt Core 1.11 (konec 2025) přibyla Fusion engine pro rychlejší lokální development.

Náš dbt stack

  • dbt Core (ne dbt Cloud) — provozujeme na vlastní infrastruktuře, scheduling přes Airflow nebo Dagster. Plná kontrola nad prostředím, secrets a networking.
  • dbt-spark / dbt-databricks — adaptéry pro lakehouse engine. Optimalizace: incremental models s merge strategií, partition pruning hints.
  • dbt packagesdbt_utils, dbt_expectations (Great Expectations-style testy), dbt_project_evaluator pro linting projektu.
  • Slim CI — v CI/CD pipeline buildujeme jen modely ovlivněné změnou (dbt build --select state:modified+). Typická úspora: 80 % build time.
  • Documentation as code — každý model má description, column descriptions a data tests. dbt docs generate produkuje interaktivní data catalog s lineage grafem.

Data quality framework

Data quality není volitelný krok — je integrální součást pipeline. Každý dbt model má:

  • Schema testyunique, not_null, accepted_values, relationships (referenční integrita)
  • Custom testy — business pravidla jako SQL query (např. „suma transakcí per den musí souhlasit s kontrolním součtem ze source systému")
  • Freshness checksdbt source freshness kontroluje, zda zdrojová data nejsou starší než definované SLA. Alert přes PagerDuty pokud SLA prošvihnuto.
  • Row count monitoring — anomaly detection na počtu řádků: pokud denní increment odchýlí od moving average o více než 3 σ, automaticky alert.

Reálný dopad: Pro e-commerce klienta: zavedení dbt + data quality framework snížilo počet data incidentů (chybné reporty) z ~12/měsíc na 1–2/měsíc. Mean time to detect klesla z 4 hodin na 15 minut (automatické testy v pipeline).

Provoz v produkci

Orchestrace & Data Observability

Apache Airflow

TaskFlow API pro čitelné DAGy v Pythonu. Dynamic task mapping pro paralelní zpracování. Kubernetes Executor pro izolaci workloadů. Connections a Variables v HashiCorp Vault — žádné secrets v kódu.

  • SLA monitoring s alertingem (Slack, PagerDuty)
  • Backfill automation pro historické reprocessing
  • Custom sensors pro data availability checks

Dagster (alternativa)

Software-defined assets místo task-centric DAGů. Materialization tracking, built-in lineage, type-checked IO. Ideální pro týmy, které chtějí data-asset-centric přístup a tight integration s dbt.

  • Native dbt integration (dbt assets v Dagster UI)
  • Partition-aware scheduling
  • Built-in data catalog a asset lineage

Data Observability

OpenTelemetry pro tracing celé pipeline (Kafka → Spark → dbt → serving). Grafana dashboardy pro pipeline health: latence, throughput, error rate, data freshness. Custom metriky per business doména.

  • End-to-end latence tracking per event
  • Schema drift detection (automatické alerty)
  • Cost attribution per pipeline/team

Governance & Catalog

Unity Catalog nebo Apache Atlas pro centrální data governance. Column-level lineage, access control (RBAC + ABAC), data classification (PII tagging). Compliance-ready pro GDPR, DORA a bankovní regulace.

  • Automatic PII detection a masking
  • Data retention policies enforcement
  • Self-service data discovery pro analytiky
Processing Engine

Apache Spark 4.0 v produkci

Spark 4.0 (vydán Q1 2025) je major release, který přinesl ANSI mode jako default, nativní VARIANT data type pro semi-strukturovaná data a Spark Connect — client-server architektura pro vzdálený přístup ke clusteru. Pro naše workloady to znamená 20–50 % performance improvement na analytických queries díky lepší query optimalizaci a Photon engine.

Co se změnilo a proč to matters

  • VARIANT data type — nativní podpora pro JSON/semi-strukturovaná data bez explicitního parsování. Eliminuje nutnost from_json() a zrychluje queries nad semi-strukturovanými daty 2–5×.
  • Spark Connect — thin client pro vzdálený přístup. Data science tým může spouštět Spark jobs z lokálního Jupyter notebooku proti produkčnímu clusteru bez SSH nebo VPN. Izolace per session.
  • ANSI mode default — striktní typová kontrola. Konec tichých NULL-ů při overflow nebo invalid cast. Breaking change, ale vyšší data quality out of the box.
  • Pandas 2.x podpora — PySpark DataFrame API kompatibilní s pandas 2.x, Apache Arrow jako default transfer format. Interop mezi Spark a pandas bez kopírování dat.

Náš Spark deployment pattern

Spark na Kubernetes (Spark on K8s operator) — žádný standalone cluster. Výhody: resource sharing s ostatními workloady, auto-scaling, unified monitoring. Cost optimization: spot/preemptible instances pro executor pods (s graceful decommissioning), on-demand pro driver.

Sizing: Typický enterprise Spark workload: driver 4 cores / 16 GB, executory 8 cores / 32 GB, dynamic allocation 4–40 executorů. Pro batch processing 500 GB denně: cluster cost ~$200/den na Azure (spot instances), ~$600/den na on-demand. 3× úspora s proper scheduling a spot.

Další deep dive

Prozkoumat další stacky

Další krok

Potřebujete datovou platformu?

Pojďme si promluvit o vašich datech. Pomůžeme vám navrhnout architekturu, vybrat správné technologie a dotáhnout to do produkce — od PoC po enterprise scale.

Kontaktujte nás