Encyklopedia architektury danych — zasoby edukacyjne dla analityków Polska
Strona główna Data Lake Data Warehouse ETL Modelowanie danych Governance danych O nas Kontakt
Integracja danych

ETL — Extract, Transform, Load

ETL to trójfazowy proces integracji danych, w którym dane są wyodrębniane ze źródeł (Extract), przekształcane do docelowego formatu (Transform) i ładowane do repozytorium docelowego (Load). Jest to fundamentalny mechanizm zasilania hurtowni danych i data lake.

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.