Trzy fazy ETL
Extract (Wyodrębnianie) — dane pobierane są z systemów źródłowych. Może to obejmować bazy relacyjne, pliki płaskie, API REST, strumienie zdarzeń, arkusze kalkulacyjne. Na tym etapie kluczowe jest określenie trybu odczytu: pełne załadowanie (full load) lub przyrostowe (incremental load) na podstawie znacznika czasu lub numeru sekwencyjnego.
Transform (Transformacja) — dane są przetwarzane do docelowego formatu. Transformacje obejmują: normalizację, standaryzację typów danych, deduplikację, wzbogacanie o dane referencyjne, obliczanie metryk pochodnych i filtrowanie rekordów niespełniających kryteriów jakości.
Load (Ładowanie) — przetworzone dane trafiają do docelowego repozytorium. Wyróżnia się dwa tryby: pełne zastąpienie (truncate-and-load) i załadowanie przyrostowe (append lub upsert).
Articles published on this website summarize publicly available information, industry research and educational materials.
ELT — wariant chmurowy
W podejściu ELT (Extract, Load, Transform) kolejność faz jest zmieniona: dane trafiają do docelowego repozytorium w surowej postaci, a transformacje są wykonywane in-situ z wykorzystaniem mocy obliczeniowej silnika docelowego. Podejście ELT jest preferowane w środowiskach chmurowych, gdzie platformy takie jak Snowflake, BigQuery czy Databricks oferują skalowalne zasoby obliczeniowe.
| Cecha | ETL | ELT |
|---|---|---|
| Miejsce transformacji | Pośredni serwer ETL | Silnik docelowy |
| Wymagania sprzętowe | Własna infrastruktura | Skalowalność chmury |
| Widoczność surowych danych | Ograniczona | Pełna (strefa Bronze) |
| Typowe środowisko | On-premise, legacy DW | Cloud DW, Data Lakehouse |
| Przykładowe narzędzia | Informatica, SSIS, Talend | dbt, Spark SQL, BigQuery |
Batch vs. Streaming
Procesy ETL mogą działać w trybie wsadowym (batch) lub strumieniowym (streaming). Wybór trybu zależy od wymaganej świeżości danych i architektury źródeł.
| Cecha | Batch ETL | Streaming ETL |
|---|---|---|
| Częstotliwość | Godzinowo, dziennie, tygodniowo | Ciągła, sub-sekundowa |
| Opóźnienie danych | Minuty do godzin | Sekundy do minut |
| Złożoność | Niższa | Wyższa |
| Obsługa błędów | Prostsze ponowne uruchomienie | Wymaga checkpointów |
| Przykłady narzędzi | Airflow, SSIS, dbt | Kafka, Flink, Spark Structured Streaming |
Jakość danych w procesie ETL
Kontrola jakości danych jest integralną częścią fazy transformacji. Typowe sprawdzenia obejmują: kompletność (brak wartości NULL w wymaganych polach), unikalność (brak duplikatów w kluczach), poprawność formatów (daty, liczby, kody), spójność referencyjną (istnienie wartości klucza obcego w tabeli wymiarów) oraz wartości w oczekiwanych zakresach.
Kategorie narzędzi ETL
Narzędzia ETL można podzielić na kilka kategorii ze względu na architekturę i zastosowanie:
- Narzędzia graficzne (low-code) — przepływy danych definiowane wizualnie; charakterystyczne dla środowisk korporacyjnych
- Transformacja SQL (dbt) — modele transformacji zapisane jako pliki SQL z zarządzaniem zależnościami
- Frameworki programistyczne — Apache Spark, Apache Beam; maksymalna elastyczność dla złożonych transformacji
- Platformy iPaaS — integracja SaaS przez API; typowo stosowane do łączenia aplikacji biznesowych
Harmonogramowanie i orchestracja
Orchestracja ETL polega na zarządzaniu zależnościami między zadaniami, harmonogramowaniem uruchomień i obsługą błędów. Systemy orchestracji definiują przepływ pracy jako DAG (Directed Acyclic Graph) — skierowany graf acykliczny, gdzie węzły reprezentują zadania, a krawędzie — zależności między nimi.