Proces ETL – Extract, Transform, Load

Co to jest ETL?

ETL to skrót od nazwy procesu, którego zadaniem jest ekstrakcja danych z systemu źródłowego (Extract), następnie przekształcenie danych do pożądanej formy lub struktury (Transform). Ostatnim etapem procesu ETL jest wprowadzenie (Load) przekształconych danych do repozytorium (najczęściej bazy danych), z którego będą dostępne do wykorzystania przez aplikacje klienckie.

Proces ETL to złożony zbiór działań, który w praktyce wymaga zaangażowania wielu stron projektu jak analitycy biznesowi, analitycy systemowi, eksperci dziedzinowi jak dział IT w postaci programistów i testerów Quality Assurance.

Mimo skomplikowanej natury projektowania, wdrażania i utrzymania procesu ETL, zdecydowana większość organizacji chcących korzystać z wartości danych decyduje się na podjęcie tego wyzwania. Klasyczny proces ETL jest kluczowym elementem architektury Business Intelligence.

Dlaczego potrzebujesz procesów ETL?

Współczesne organizacje mają dostęp do ogromnej ilości danych. Często źródła ich pochodzenia nie są ograniczone tylko do samej organizacji. Uzupełniają je dane instytucji badawczych, social media lub inne związane z biznesem. Innymi słowy dane pochodzą ze źródeł wewnętrznych oraz zewnętrznych. Co więcej dane przychodzą w bardzo zróżnicowanych formatach. Chcąc prowadzić analizy biznesowe, jak również zaawansowane raportowanie organizacje potrzebują często procesu, który:

  • zintegruje źródła danych,
  • oczyści dane (wyciągnie tylko potrzebne informacje),
  • dokona działań sprzyjających utrzymaniu jakości danych na najwyższym możliwym poziomie,
  • sprawi, że nasze systemy raportowe, prowadzone analizy lub aplikacje opierające się o repozytoria danych, będą miały stały i stabilny dostęp do najświeższych danych.

Proces ETL – zalety i wyzwania

Proces ETL jest metodą przenoszenia danych do łatwo dostępnego repozytorium. Może nim być hurtownia danych, data mart, aplikacje webowe czy inne oprogramowanie klienckie.

Do kluczowych zalet procesu należy zaliczyć:

  • Pomaga w migracji danych z rozproszonych systemów,
  • Centralizuje dane,
  • Konwertuje dane na różne formaty i typy celem zachowania spójności z systemem docelowym,
  • Może wykonywać złożone transformacje i obliczenia,
  • Wspiera politykę dostępu i składowania danych organizacji,
  • Jest ośrodkiem realnej informacji o przepływie danych w organizacji (często na linii systemy źródłowe – hurtownia danych),
  • Umożliwia skonfigurowanie przykładowego zestawu danych w środowisku testowym.

Wyzwaniem dla organizacji chcących skorzystać z systemów ETL jest często próg wejścia związany z uruchomieniem rozwiązania – wyrażany w koszcie licencji, roboczo-godzinie specjalistów do obsługi oraz pracochłonności w konfiguracji.

Rynek systemów ETL jest bardzo szeroki. Większość dostawców sprzedaje produkty dedykowane specjalistom IT. Wykorzystanie ich w praktyce może przynieść bardzo wymierne korzyści w kategorii niezawodności i skalowalności.

Tę samą wizję rozwiązań wspiera firma Alteryx dostarczając jednocześnie narzędzie proste w obsłudze zarówno dla Analityków Biznesowych jak i specjalistów IT. Łącząc dwa światy potrzeb Alteryx plasuje się bardzo wysoko m.in. w rankingach firmy Gartner.

Etapy procesu ETL

Ekstrakcja, wyodrębnienie

Na tym etapie dane są pobierane z systemu źródłowego do obszaru przejściowego (tzw. staging). Transformacje, jeśli takie istnieją, są wykonywane w obszarze przejściowym tak, aby wydajność systemu źródłowego nie uległa pogorszeniu. Jedną z zalet wykorzystania staging’u jest kontrola jakości danych zanim przejdą do następnego etapu (np. procesu ładowania danych do tabel hurtowni danych lub data mart’u).

Źródła mogą być determinowane przez starsze aplikacje takie, jak komputery mainframe, aplikacje niestandardowe, urządzenia kontaktowe, np. bankomaty, przełączniki połączeń, pliki tekstowe, arkusze kalkulacyjne, systemy ERP, dane od dostawców i wiele innych.

Aby opanować złożony świat informacji, potrzebujemy kompleksowo przygotowanego procesu ETL, który posłuży jako warstwa integrująca źródła danych. Jednocześnie pozwoli na przejrzysty wgląd w pochodzenie i specyfikę źródeł danych, na których biznes opiera decyzje. Dzięki zastosowaniu procesu ETL w aplikacjach, ich odbiorcy otrzymują dedykowane im informacje.

Ekstrakcja może wpływać na wydajność i czas odpowiedzi systemów źródłowych. Każde spowolnienie lub zablokowanie może wpłynąć na wyniki finansowe firmy. Z tego względu potrzebna jest wiedza, jak to zjawisko zminimalizować lub wręcz wykluczyć. Takiemu wyzwaniu mogą sprostać profesjonaliści, którzy przy pomocy skryptów zaprogramują najlepsze sposoby ekstrakcji. Istnieją również narzędzia, które wspierają minimalizowanie czasu odpowiedzi systemu źródłowego przez pakiety gotowych rozwiązań, m.in. wspomniany wcześniej Alteryx.

Aby etap wyodrębniania przyniósł najlepsze rezultaty, powinno się zadbać o następujące walidacje:

  • Weryfikacja pochodzenia danych,
  • Uzgodnienie rekordów z danymi źródłowymi (np. sprawdzenie ilości rekordów na wejściu i na wyjściu),
  • Kontrola typów danych (oflagowanie źródeł, które będą wymagały transformacji),
  • Usunięcie zbędnych danych,
  • Przygotowanie procesu weryfikującego ukończenie ekstrakcji z sukcesem,
  • Przygotowanie systemu powiadamiania na wypadek nieukończenia procesu,
  • Rejestracja zdarzeń w trakcie ekstrakcji,
  • Przygotowanie ścieżki alternatywnej dla niepowodzenia lub wystąpienia problemów w trakcie ekstrakcji (brak połączenia sieciowego, utrata zasilania, brak przestrzeni dyskowej, etc.).

Transformacja

Dane wyodrębnione z serwera źródłowego przychodzą do nas w surowej formie i najczęściej nie nadają się do użytku w swojej oryginalnej postaci. Aby je wykorzystać, musimy zaaplikować działania, których celem będzie oczyszczenie i powiązanie ze sobą danych w kontekście ich późniejszego wykorzystania. Jest to krok wyróżniający ETL. Na tym etapie stosuje się zestaw funkcji do wyodrębnionych danych.

Dane, które nie wymagają żadnej transformacji, są przenoszone bezpośrednio. Określa się je jako pass-through data lub direct move.

Zagadnienia związane z transformacją danych często wynikają z potrzeby łączenia danych zewnętrznych z danymi wewnętrznymi firmy.

Ciekawym przykładem może być potrzeba stworzenia ujednoliconego sposobu zapisu danych w sytuacji przejęcia kolejnej organizacji. Mogą wówczas powstawać zagadnienia stworzenia słownika wszystkich klientów lub produktów, których sposób zapisu różnił się między organizacjami. Transformacja może dotyczyć również tworzenia plików w innych formatach niż źródłowe (np. z XML’a w CSV). Opisywany etap ma służyć zapewnieniu integralności danych w docelowym repozytorium.

Poniżej kilka przykładów niespójnych zapisów danych, wymagających przekształcenia:

  • Wiele sposobów oznaczenia nazwy firmy, np. Google, Google Inc.,
  • Używanie różnych pisowni, takich jak Warszawa, Warsaw lub Anna, Ania,
  • Różne numery kont wygenerowane przez wiele aplikacje dla tego samego klienta,
  • W niektórych plikach wymagane dane pozostają puste,
  • Błędne kody wprowadzone ręcznie, np.: w punktach sprzedaży.

W każdym przypadku najlepszym podejściem jest ustanowienie wszechobecnego, proaktywnego i opartego na współpracy podejścia do jakości danych w Twojej firmie. Jakość danych musi być czymś, za co każdy zespół (nie tylko techniczny) musi być odpowiedzialny. Powinna być wdrożona polityka prewencyjna, która opiera się na regułach i zasadach blokujących niepoprawne dane, zanim jeszcze trafią do systemu i będą wymagały dobudowania reguł do ich obsługi.

Ładowanie

Ostatnim etapem procesu ETL jest ładowanie danych do docelowego repozytorium danych. W typowej hurtowni ogromne ilości danych muszą zostać załadowane w stosunkowo krótkim czasie. Wymusza to na osobach lub oprogramowaniu wspierającym, aby etap ten był zoptymalizowany pod kątem wydajności. W organizacjach przyjmuje się, że przestrzeń dedykowana pod tzw. ładowanie to noc – użytkownicy nie korzystają z systemów produkcyjnych, serwery posiadają zwiększony zapas mocy. Do rana, z pierwszym uruchomieniem komputera, użytkownik końcowy powinien mieć dostępne odświeżone zbiory danych gotowe do odpytywania. Niedopracowany proces ETL byłby zagrożeniem dla powodzenia powyższego scenariusza, dlatego tak istotne jest posiadanie odpowiednich narzędzi i kompetencji w zespole.

Dzisiejsze technologie pozwalają na równoległą pracę systemów ETL oraz systemów raportowych, środowiska produkcyjne są skalowalne, procesy podzielne i zarządzane pojedynczo lub kolektywnie, w zależności od potrzeb i wymagań organizacji.

Praca z systemami źródłowymi jest obciążona ryzykiem niepowodzenia. Awarie wynikają z problemów z dostępem sieci internetowej, brakiem dostaw prądu, błędami konfiguracyjnymi lub wydarzeniami losowymi.

Powyższe przypadki nie są niczym wyjątkowym. Dobrze skonfigurowane środowisko, a w tym procesy ETL, powinno przewidywać tego rodzaju wątki i być przygotowane na ich obsługę. Jednym z kluczowych wymagań jest utrzymanie integralności danych. Dobrą praktyką w tym wątku jest konfiguracja mechanizmów odzyskiwania tak, aby uruchamiały się ponownie od momentu awarii utrzymując tym samym ciągłość informacji zbieranych w repozytoriach.

Wspomnianymi repozytoriami danych można skutecznie zarządzać. W zależności od wymagań lub charakterystyki zbiorów danych wyróżnia się różne rodzaje tzw. załadunku (Data Load):

  • Initial Load – zapełnianie wszystkich tabel hurtowni danych,
  • Obciążenie przyrostowe – okresowe stosowanie bieżących zmian w razie potrzeby,
  • Pełne odświeżanie – kasowanie zawartości jednej lub kilku tabel i ponowne ładowanie świeżych danych.

Weryfikacja etapu ładowania:

  • Upewnij się, że kluczowe pola nie są puste ani brakujące,
  • Przetestuj widoki modelowania na podstawie tabel docelowych,
  • Sprawdź połączenie wartości i obliczonych miar,
  • Sprawdź dane w tabeli wymiarów oraz w tabeli historii,
  • Sprawdź raporty BI na załadowanej tabeli faktów i wymiarów.

Narzędzia ETL

Wątki tego artykułu dotyczące procesów ETL możemy odnieść do różnorakiego oprogramowania. Narzędzi ETL na rynku jest bardzo wiele. W pierwszej kolejności omówimy Alteryx, który wyróżnia się automatyzacją procesów ETL, przejrzystym interfejsem ułatwiającym budowanie przepływów danych (workflows). Jest ono szczególnie atrakcyjne dla osób, które nie posiadają doświadczenia w roli Data Scientist czy Data Engineer. Umożliwia także automatyzację pracy z danymi w skali całej organizacji. Więcej informacji na ten temat znajdziesz w kolejnym artykule.

alteryx interface designer

Źródło: Alteryx Community

Alteryx wyróżnia się wieloma wewnętrznymi narzędziami (tools) czy też funkcjami, które zastępują kodowanie.

narzedzia alteryx

Innym narzędziem obsługującym całościowo procesy ETL jest SAP Data. Podobnie jak Alteryx to pojedyncze narzędzie do wielu zadań: integracji danych, transformacji, poprawy jakości danych, profilowania danych i przetwarzania danych tekstowych z heterogenicznego źródła do docelowej bazy danych lub hurtowni danych.

sap interface

Źródło: SAP blog

SQL Server Integration Services jest uznawany za narzędzie ETL, które posiada łatwą instalację na kilku serwerach. Obsługuje pliki konfiguracyjne, dzięki którym jeden pakiet może być używany w kilku scenariuszach i w kilku środowiskach. Narzędzie umożliwia pobieranie plików, ładowanie hurtowni danych, czyszczenie i eksplorację danych oraz zarządzanie obiektami i danymi SQL Server.

sql server integration services

Źródło: Dokumentacja Microsoft

W ostatnim czasie dużą popularność zyskuje dbt – środowisko programistyczne dedykowane analitykom pozwalające realizować wszystkie procesy ETL rozszerzone o ciekawe funkcje umożliwiające testowanie, dokumentację. dbt natywnie wspiera hurtownie danych w chmurze. Coraz więcej platform chmurowych np. Snowflake, Fivetran oferuje gotowe pakiety analityczne dedykowane ekstrakcji danych z popularnych aplikacji webowych.

dbt data modelling

Źródło: dbt

Topowe narzędzia ETL powinny być w stanie przetworzyć dane z dowolnego źródła – chmury, wielu chmur, technologii hybrydowej lub lokalnej. Na rynku dostępne są narzędzia ETL, które poczyniły znaczne postępy. W pakiecie funkcjonalności, oferują walidację jakości danych na każdym poziomie przetwarzania, profilowanie danych, czyszczenie danych, przetwarzanie dużych zbiorów danych i zautomatyzowane zarządzanie danymi.

Podsumowanie

Proces ETL zawsze dotyczy wymienionych etapów i wymaga kontroli na każdym z nich, zgodnie z ww. punktami. Od dziesięcioleci projekty zarządzania danymi w dużym stopniu polegały na tradycyjnym ETL w zakresie przetwarzania danych, ich integracji i przechowywania. Przyjęło się, że ETL ma miejsce tylko w starszych hurtowniach danych używanych przez firmy lub organizacje, które nie planują przejścia na chmurę.

Wraz ze zwiększonym dostępem do technologii chmurowych organizacje utylizują je w coraz większej liczbie i różnych obszarach. Integruje się aplikacje, bazy danych. Dostawcy technologii chmurowych oferują również narzędzia wspierające zasilanie repozytoriów z systemów lokalnych, co znacząco zmniejsza próg wejścia do platform takich jak Azure czy AWS.

Jeśli masz pytania dotyczące procesu ETL, umów się na rozmowę z naszym konsultantem.

 
Aktualności

Jak Alteryx sprawdza się w procesach ETL? 

Aktualności

Funkcja Google Finance i web scraping

X