słownik automatyzacji
ETL
ETL (Extract, Transform, Load) to wzorzec integracji danych polegający na pobraniu danych ze źródła, przekształceniu ich do docelowego formatu zgodnie z logiką biznesową i załadowaniu do docelowego systemu. To jeden z najstarszych i najszerzej stosowanych wzorców w inżynierii danych.
Każda faza ma swój zakres odpowiedzialności. Extract: połącz się ze źródłem (baza, API, plik, email, FTP), pobierz dane w surowej formie, zaloguj co i ile zostało pobrane. Transform: oczyść dane (usuń duplikaty, obsłuż brakujące wartości), znormalizuj formaty (daty, kwoty, kody krajów), zastosuj logikę biznesową (mapowania, wyliczenia, kategorie). Load: załaduj do miejsca docelowego z obsługą upsert (wstaw lub zaktualizuj), potwierdź kompletność, ewentualnie uruchom downstream procesy.
W erze nowoczesnych integracji pojawił się wariant ELT (Extract, Load, Transform), w którym transformacja odbywa się po załadowaniu, bezpośrednio w docelowej bazie. Sprawdza się gdy masz mocną bazę analityczną i surowe dane są wystarczająco małe, żeby je po prostu wrzucić. ETL nadal wygrywa gdy transformacja jest skomplikowana, dane są duże lub wrażliwe i nie chcesz surowych danych w docelowym systemie.
W praktyce
ETL dla migracji danych klientów z poprzedniego CRM do nowego systemu: Extract -- eksport CSV z wszystkimi kontaktami i historią transakcji z starego systemu. Transform -- w skrypcie Python: normalizacja numerów telefonów do formatu E.164, deduplikacja po adresie email, mapowanie starych kategorii klientów na nowe, wyliczenie LTV z historii zamówień, uzupełnienie brakujących pól wartościami domyślnymi. Load -- upsert do nowego Postgres przez API lub bezpośredni insert z transakcją i rollbackiem przy błędzie. Cały proces loguje każdy krok, żeby przy problematycznym rekordzie móc go zlokalizować i naprawić bez ponownego przetwarzania wszystkiego.
Powiązane
Masz dane w kilku systemach do scalenia?
Projektuję i buduję ETL pipeline'y w n8n z Pythonowymi transformacjami i Postgres jako celem.
Integracje API