Zamów
bezpłatną
konsultację

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 i/lub struktury (Transform). Ostatnim etapem procesu 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, jak dział IT w postaci programistów i testerów Quality Assurance.
Mimo skomplikowanej natury tworzenia i wdrażania procesu ETL do organizacji, zdecydowana większość firm chcących korzystać z wartości informacji decyduje się na podjęcie wyzwania.

 

Dlaczego go potrzebujesz?

Współczesne organizacje mogą mieć 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 mające punkty styku z naszym biznesem.  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 jest metodą przenoszenia danych do łatwo dostępnego repozytorium. Może nim być hurtownia danych, aplikacje webowe czy inne oprogramowanie klienckie.

Do kluczowych zalet procesu należy zaliczyć:

  • Pomaga w migracji danych z rozproszonych systemów
  • 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 środowisk testowych z próbkowym zbiorem danych

 

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 (zw. 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 nad jakością danych zanim przejdą do następnego etapu (np. procesu ładowania danych do tabel hurtowni danych systemu finansowo-księgowego).

 

Źródła mogą być determinowane przez starsze aplikacje, takie jak komputery mainframe, aplikacje niestandardowe, urządzenia kontaktowe, takie jak 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 lub też aplikacje serwują swoim odbiorcom dedykowane 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 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:

  1. Weryfikacja pochodzenia danych
  2. Uzgodnienie rekordów z danymi źródłowymi (np. sprawdzenie ilości rekordów na wejściu i na wyjściu)
  3. Kontrola typów danych (oflagowanie źródeł, które będą wymagały transformacji)
  4. Usunięcie zbędnych danych.
  5. Przygotowanie procesu weryfikujący ukończenie ekstrakcji z sukcesem.
  6. Przygotowanie systemu powiadamiania na wypadek nieukończenia procesu.
  7. Rejestracja zdarzeń w trakcie ekstrakcji.
  8. Przygotowanie ścieżki alternatywnej dla niepowodzenia lub wystąpienia problemów w trakcje 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 danych ogromne ich ilości muszą zostać załadowane w stosunkowo krótkim czasie. Wymusza to na osobach i/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 okres nocy – 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ądzalne 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 proces ETL powinien przewidywać tego rodzaju wątki i być przygotowany 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.

Podsumowanie

Proces ETL zawsze dotyczy wymienionych etapów i wymaga kontroli zgodnie z przedstawionymi punktami na każdym z nich. 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ę.

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

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. 

Wątki tego artykułu dotyczące automatyzacji procesów ETL możemy odnieść do różnorakiego oprogramowania, m. in. do Alteryx. Narzędzie wyróżnia się przejrzystym interfejsem, który ułatwia budowanie przepływów danych (workflows). Szczególnie atrakcyjne dla osób, które nie posiadają doświadczenia w roli Data ScientistUmożliwia automatyzację pracy z danymi w późniejszych procesach analitycznych, w skali całej organizacji. O tym znajdziesz więcej informacji w kolejnym artykule. 

 

Aktualności

E-book: Przepływ danych – porównanie Fivetran, Stitch i Matillion

Aktualności

10 funkcjonalności Tableau Prep Builder, o których musisz wiedzieć