Spis treści 10 sekcji
ETL obejmuje 3 etapy: ekstrakcję danych ze źródeł, transformację oraz załadowanie wyniku do systemu docelowego.1 Dalej wyjaśniamy, czym różni się od ELT i jak oba podejścia służą raportowaniu w Business Intelligence. Przy planowaniu zasilania raportów liczy się też częstotliwość ich odświeżania. Power BI Pro pozwala zaplanować maksymalnie 8 odświeżeń modelu semantycznego dziennie.2
Czym są ETL i ELT i czym się różnią?
ETL przekształca dane przed załadowaniem do systemu docelowego, a ELT robi to po załadowaniu.3 W obu przypadkach proces zaczyna się od pobrania danych ze źródeł. Różnica dotyczy miejsca, w którym działają reguły przygotowania. W Snowflake magazyn obliczeniowy Gen1 o rozmiarze X-Small zużywa 1 kredyt na godzinę pracy, co ma znaczenie dla kosztu transformacji ELT.4
Wybór między ETL a ELT zależy więc od tego, gdzie zespół chce czyścić i przekształcać dane. Znaczenie ma również możliwość powrotu do wcześniejszego stanu danych. Snowflake Time Travel domyślnie udostępnia wcześniejsze wersje zmienionych danych przez 1 dzień, co pozwala ponownie użyć ich przy transformacji.5
Tabela zestawia ETL i ELT pod kątem momentu przygotowania danych, zastosowania oraz ograniczeń.
| Podejście | Kiedy je rozważyć | Ograniczenie |
|---|---|---|
| ETL | Gdy reguły przygotowania muszą zadziałać przed zapisem danych w systemie docelowym | Zmiana sposobu przygotowania wymaga zmiany reguł stosowanych przed ładowaniem |
| ELT | Gdy pobrane dane mają posłużyć do różnych późniejszych przekształceń | System docelowy musi obsłużyć wykonywanie transformacji |
O wyborze ETL lub ELT decyduje miejsce wykonania reguł, ale warto uwzględnić także sposób rozliczania pracy systemu docelowego. W modelu BigQuery z opłatą za przetworzone dane pierwsze 1 TiB danych przetworzonych przez zapytania miesięcznie jest bezpłatne.6
Czym są ekstrakcja, transformacja i ładowanie danych?
Ekstrakcja pobiera dane, transformacja dostosowuje je do reguł, a ładowanie zapisuje wynik w systemie docelowym. Źródłem może być baza danych, plik lub API, czyli interfejs wymiany danych między systemami.1 Tempo pobierania bywa ograniczone przez źródło. Uwierzytelniony użytkownik GitHub REST API ma podstawowy limit 5000 żądań na godzinę.7
Transformacja danych ujednolica między innymi nazwy pól, formaty dat i identyfikatory. Dzięki temu można połączyć rekordy pochodzące z różnych źródeł. Reguły muszą przy tym zachować znaczenie danych potrzebnych odbiorcy. Przykładem jest data zapisana w 10-znakowym formacie RRRR-MM-DD, zgodnym z normą ISO 8601.8
Ładowanie danych zapisuje przygotowany wynik w bazie, hurtowni, magazynie danych lub innym systemie docelowym.1 To miejsce wyznacza strukturę rekordów. Przy projektowaniu tabeli w BigQuery trzeba uwzględnić limit 10 000 kolumn, wliczając kolumny zagnieżdżone.9
Ekstrakcja, transformacja i ładowanie mają odrębne zadania. Pierwszy etap pobiera dane, drugi je przygotowuje, a trzeci zapisuje wynik.
Jak działa proces ETL i jak zmienił się wraz z rozwojem chmury?
Proces ETL prowadzi dane przez uporządkowany potok do systemu docelowego. Potok danych składa się z połączonych zadań: wynik jednego trafia na wejście następnego. Chmura zmieniła przede wszystkim miejsce wykonywania tych operacji. Harmonogram zadań AWS Glue ma minimalną dokładność 5 minut, co ogranicza częstotliwość planowanych uruchomień.10
Integracja danych w chmurze pozwala przetwarzać dane w środowisku chmurowym i zapisywać wynik w wybranym repozytorium. Architektura potoku określa kolejność zadań oraz miejsce transformacji. W Azure Data Factory domyślny miękki limit wynosi 120 aktywności w jednym potoku, także tych wewnątrz kontenerów.11
Jak dane przechodzą przez proces ETL?
Potok ETL prowadzi dane od odczytu ze źródła po zapis przygotowanych rekordów. Przy projektowaniu trzeba ustalić, jak zadania przekazują sobie dane. W AWS Step Functions dane wejściowe lub wyjściowe stanu mogą mieć maksymalnie 256 KiB po zakodowaniu jako tekst UTF-8.12
- Odczyt danych pobiera rekordy wskazane do przetworzenia.
- Kontrola wejścia wykrywa rekordy niezgodne z ustalonym schematem.
- Przetwarzanie stosuje reguły przygotowania rekordów do zapisu.
- Zapis wyniku umieszcza przygotowane rekordy w systemie docelowym.
Według BPX ekstrakcja w procesie ETL może zmniejszyć objętość danych nawet o 95%. To możliwość opisana dla tego podejścia, nie gwarancja dla każdego potoku.13 Potok kończy się zapisem danych zgodnie z przyjętymi regułami.14
Jak zmieniały się sposoby integracji danych?
Integracja danych zmieniała się wraz ze środowiskami ich przechowywania i przetwarzania. Opisany okres rozwoju technologii ETL obejmuje ponad 2 dekady.3,15 Zmiany dotyczyły między innymi miejsca uruchamiania zadań.
- Integracja w infrastrukturze lokalnej uruchamia zadania przy systemach utrzymywanych przez organizację.
- Integracja między środowiskami łączy systemy lokalne z repozytoriami w chmurze.
- Integracja chmurowa uruchamia zadania przetwarzania w usługach chmurowych.
Sposób integracji wyznacza miejsce działania potoku i drogę przekazywania danych. Przy przesyłaniu ich do chmury znaczenie ma przepustowość połączenia. Dedykowane połączenia AWS Direct Connect oferują 1, 10, 100 lub 400 Gb/s.16
Tradycyjny ETL: transformacja przed załadowaniem
Tradycyjny ETL przygotowuje rekordy poza systemem docelowym i zapisuje dopiero wynik. Spośród 3 etapów procesu transformacja poprzedza tu ładowanie. Reguły ustalają format oraz zakres przekazywanych danych. Ich zmiana wpływa na kolejne uruchomienia potoku, dlatego trzeba kontrolować zgodność wyniku z oczekiwaną strukturą.17
Jak działa przetwarzanie danych w chmurze?
Przetwarzanie danych w chmurze uruchamia zadania potoku na zasobach chmurowych. Dane można przygotować przed przekazaniem do repozytorium albo już po zapisie. Zadania AWS Glue w wersji 2.0 lub nowszej są rozliczane co sekundę, przy minimalnym naliczanym czasie 1 minuty.18
- Połączenie ze źródłem udostępnia potokowi dane przeznaczone do pobrania.
- Zadanie przetwarzania wykonuje reguły przygotowania danych w wybranym środowisku.
- Zapis w repozytorium udostępnia wynik kolejnym procesom.
Architektura chmurowa rozdziela zadania wykonywane przed zapisem od tych, które pracują na danych już zapisanych. Od tego zależy harmonogram transformacji. Zaplanowane zapytania BigQuery można uruchamiać w odstępach nie krótszych niż 5 minut.19
Jak integracja danych wspiera raportowanie i analitykę BI?
Integracja danych wspiera raportowanie i analitykę BI, bo dostarcza spójne dane do hurtowni danych, czyli repozytorium przygotowanego do analiz. Częstotliwość zasilania trzeba zestawić z rytmem odświeżania raportów. W Power BI Pro można zaplanować maksymalnie 8 odświeżeń modelu semantycznego dziennie.2
- Mapowanie pól przypisuje kolumnom z różnych systemów wspólne znaczenie, aby raport porównywał te same miary.
- Ujednolicanie identyfikatorów pozwala powiązać rekordy tego samego klienta lub produktu bez tworzenia osobnych pozycji.
- Kontrola jakości danych wykrywa puste wartości i niespójne formaty przed udostępnieniem danych analitykom.
- Ładowanie do hurtowni danych zapisuje rekordy w strukturze wykorzystywanej przez model danych, czyli układ tabel i relacji służący do obliczania miar.
- Odświeżanie danych aktualizuje informacje używane przez raport i dashboard, czyli graficzny widok wskaźników.
Analityka BI oblicza wtedy miary na podstawie danych przygotowanych według tych samych reguł. Spójność zaczyna się więc przed otwarciem raportu.
Projektowanie i kontrola potoku ETL w praktyce
Potok ETL wymaga zasad pobierania, przekształcania i zapisu danych. Po uruchomieniu trzeba kontrolować wynik każdego zadania. Jakość danych oznacza zgodność rekordów z ustalonymi wymaganiami, na przykład dotyczącymi pól i formatów. Plan uruchomień może uwzględniać wspomnianą minimalną dokładność harmonogramu AWS Glue.10
Jakie problemy występują w potokach ETL i skąd się biorą?
Potoki ETL sprawiają problemy, gdy dane wejściowe przestają odpowiadać regułom albo zadanie kończy się przed zapisem. Zmiana struktury pól może przerwać mapowanie. Niespójne identyfikatory utrudniają z kolei powiązanie rekordów. Przy pobieraniu z GitHub REST API obowiązuje podstawowy limit 5000 żądań na godzinę dla uwierzytelnionego użytkownika.7
Proces ETL może wymagać zmian wraz ze źródłami lub formatami danych.3 Kontrola błędów powinna wskazywać konkretne zadanie, w którym rekord przestał spełniać reguły. To ułatwia znalezienie przyczyny, a nie tylko skutku błędu.
Jak zaprojektować potok do przenoszenia i przetwarzania danych?
Projekt potoku ETL określa sposób pobierania zmian, reguły przekształcania i działania w systemie docelowym. Zespół ustala częstotliwość ekstrakcji oraz metodę rozpoznawania nowych i zmienionych danych.1 Dla zaplanowanych zadań AWS Glue obowiązuje wspomniana minimalna dokładność harmonogramu.10
- Zakres ekstrakcji wskazuje rekordy pobierane przez potok z każdego źródła.20
- Reguły transformacji określają sposób ujednolicania pól i obsługi rekordów niespełniających wymagań.
- Metoda ładowania ustala, czy potok wstawia, aktualizuje czy usuwa rekordy.1
Projekt potoku przypisuje zadaniom dane wejściowe, reguły działania i oczekiwany wynik. Dzięki temu można sprawdzić każdy krok osobno.
Jak sprawdzić poprawność danych i działanie potoku?
Testy potoku ETL powinny obejmować ekstrakcję, transformację i ładowanie. Trzeba też sprawdzić duże zbiory danych oraz sytuacje błędne.1,21 Jeśli wynikiem jest tabela BigQuery, kontrola struktury obejmuje limit 10 000 kolumn, również zagnieżdżonych.9
- Kontrola ekstrakcji porównuje pobrane rekordy z zakresem wyznaczonym w źródle.
- Kontrola transformacji zestawia wartości wynikowe z oczekiwanym rezultatem reguł.
- Kontrola ładowania porównuje stan systemu docelowego z wynikiem zaplanowanym dla przebiegu potoku.
- Kontrola błędów sprawdza, czy komunikat przy niepoprawnym rekordzie pozwala ustalić przyczynę odrzucenia.
Poprawność potoku wymaga zgodności danych wejściowych, wyniku przetwarzania i zapisu z przyjętymi regułami.22 Każdy z tych etapów wymaga osobnej kontroli.
Zaawansowana transformacja danych: reguły i kolejność operacji
Transformacja danych wymaga takiej kolejności reguł, by każda operacja dostała dane przygotowane przez poprzednią. W ETL może obejmować 6 rodzajów operacji: czyszczenie, filtrowanie, normalizację, łączenie źródeł, obliczenia i walidację.1 Kolejność nie jest przypadkowa.
Czyszczenie danych usuwa lub poprawia wartości niezgodne z regułami. Dalsze kroki zależą od pól wejściowych. Zanim potok połączy rekordy po identyfikatorze, musi ujednolicić jego format. Obliczenie na połączonych rekordach może wykonać dopiero po zakończeniu łączenia.23
Lista przedstawia kolejność reguł dla wyniku, który łączy rekordy po identyfikatorze i zawiera obliczoną miarę.
- Przygotowanie identyfikatorów nadaje polom używanym do łączenia zgodny format.
- Połączenie rekordów zestawia dane według przygotowanych identyfikatorów.
- Wyliczenie miary korzysta z pól dostępnych po połączeniu.
- Kontrola wyniku sprawdza wymagane pola i dopuszczalne wartości przed zapisem.
Kolejność transformacji wynika z danych wejściowych potrzebnych każdej regule. Dopiero przygotowany wynik może trafić do następnego kroku.
Integracja danych w AWS: podejścia i dalsze kroki
Integracja danych w AWS może korzystać z potoku ETL zasilającego jezioro danych, czyli repozytorium danych w różnych formatach. AWS Glue Studio pozwala tworzyć, uruchamiać i monitorować takie potoki.24
Przy planowaniu potoku trzeba zestawić potrzebne źródła i miejsca docelowe z zakresem dostępnych połączeń.
Visual ETL oznacza projektowanie przepływu w interfejsie graficznym. Programiści ETL ustalają reguły przetwarzania i obsługi błędów. Analitycy danych wskazują dane potrzebne do analiz.
Plan integracji w AWS łączy wybór połączeń z regułami potoku. Powinien też określać, kto będzie korzystać z wyniku.
Narzędzia ETL w analityce: możliwości i zastosowania
Narzędzia ETL pomagają budować i obsługiwać potoki zasilające repozytoria danych. Mogą oferować konektory, czyli gotowe połączenia ze źródłami, a także rejestrowanie, raportowanie i harmonogramowanie zadań.25
Wybór narzędzia ETL zależy od potrzebnych połączeń, sposobu projektowania oraz metod kontroli danych. Warto oceniać konkretny produkt. Sama nazwa dostawcy nie mówi, jak zespół będzie pracować z potokiem.
Jak porównać możliwości narzędzi ETL?
Porównanie narzędzi ETL wymaga tych samych kryteriów dla każdego produktu. Tutaj są nimi projektowanie potoku i kontrola jego działania. Tabela zestawia udokumentowane możliwości Pentaho Data Integration oraz Informatica PowerCenter.
| Produkt | Projektowanie potoku | Kontrola działania i danych |
|---|---|---|
| Pentaho Data Integration | Graficzne projektowanie metodą drag & drop | Debugger do testowania i dostrajania kroków |
| Informatica PowerCenter | Tworzenie procesów bez znajomości języków programowania | Profilowanie i sprawdzanie poprawności danych |
Dane w tabeli: 25,26
Twórcy Pentaho deklarują, że projektowanie i wdrażanie analityki dużych zbiorów danych może przebiegać do 15 razy szybciej niż przy ręcznym kodowaniu. To deklaracja dostawcy, nie wynik porównania produktów z tabeli.25
Pentaho Data Integration odpowiada zespołowi, który chce graficznie układać kroki i testować je debuggerem; potrzeba profilowania danych kieruje uwagę na drugi produkt.
Informatica PowerCenter odpowiada zespołowi, który chce projektować bez programowania i kontrolować jakość danych; sam wymóg debuggera z tabeli nie przemawia za tym wyborem.
Jak narzędzia ETL zasilają repozytoria danych?
Narzędzie ETL zasila repozytorium: odczytuje dane, wykonuje reguły potoku i zapisuje wynik w docelowej strukturze. Zespół przypisuje pola źródłowe do docelowych oraz ustala obsługę błędów i sposób uruchamiania zadania. Jeśli celem jest BigQuery, projekt tabeli musi uwzględniać limit 10 000 kolumn, także zagnieżdżonych.9
Kontrola zasilania porównuje zapisane dane z oczekiwaną strukturą repozytorium. Dopiero tak przygotowany potok dostarcza dane w postaci przewidzianej do analiz.
Najczęściej zadawane pytania
Czy ekstrakcja ETL zawsze zmniejsza objętość danych?
Nie. BPX opisuje redukcję nawet o 95% jako możliwość, a nie gwarancję dla każdego potoku.
Jakie typy źródeł mogą dostarczać dane do ETL?
Źródłem może być baza danych, plik lub API, czyli interfejs wymiany danych między systemami.
Czy limit API może spowolnić pobieranie danych?
Tak. Uwierzytelniony użytkownik GitHub REST API ma podstawowy limit 5000 żądań na godzinę.
Czy kolumny zagnieżdżone w BigQuery wliczają się do limitu kolumn?
Tak. Limit 10 000 kolumn obejmuje również kolumny zagnieżdżone.
Jaki format daty może ułatwić ujednolicanie danych?
Przykładem jest 10-znakowy format RRRR-MM-DD, zgodny z normą ISO 8601.
Ile danych można przekazać jako wejście lub wyjście stanu AWS Step Functions?
Maksymalnie 256 KiB po zakodowaniu jako tekst UTF-8.
Czy w Snowflake można ponownie wykorzystać wcześniejszą wersję zmienionych danych?
Tak. Snowflake Time Travel domyślnie udostępnia wcześniejsze wersje zmienionych danych przez 1 dzień.
Źródła
- ↑Projektowania i implementacji procesów ETL – CitiStack https://www.citistack.pl/etl-podstawy-projektowania-i-implementacji/
- ↑Microsoft Learn — Configure scheduled refresh https://learn.microsoft.com/en-us/power-bi/connect-data/refresh-scheduled-refresh
- ↑Informatyka na dziś – ETL vs ELT https://www.drmalinowski.edu.pl/posts/2923-etl-vs-elt
- ↑Snowflake Documentation — Overview of warehouses https://docs.snowflake.com/en/user-guide/warehouses-overview
- ↑Snowflake Documentation — Understanding & using Time Travel https://docs.snowflake.com/en/user-guide/data-time-travel
- ↑Google Cloud — BigQuery pricing https://cloud.google.com/bigquery/pricing
- ↑GitHub Docs — Rate limits for the REST API https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api
- ↑ISO/TC 68 — Standards Best Practices https://committee.iso.org/files/live/sites/tc68/files/article_source/Standards%20Best%20Practices%20Guidelines%20version%201.0%202023-11-22.pdf
- ↑Google Cloud Documentation — BigQuery quotas and limits https://docs.cloud.google.com/bigquery/quotas
- ↑AWS Glue — Time-based schedules for jobs and crawlers https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html
- ↑Microsoft Learn — Pipelines and activities in Azure Data Factory https://learn.microsoft.com/en-us/azure/data-factory/concepts-pipelines-activities
- ↑AWS Step Functions — Service quotas https://docs.aws.amazon.com/step-functions/latest/dg/service-quotas.html
- ↑ETL – BPX https://www.bpxglobal.com/pl/encyklopedia/etl/
- ↑BPX, hasło „ETL” w encyklopedii. ([bpxglobal.com](bpxglobal.com https://www.bpxglobal.com/pl/encyklopedia/
- ↑Simitsis, Skiadopoulos i Vassiliadis, „The History, Present, and Future of ETL Technology”. ([ceur-ws.org](ceur-ws.org https://ceur-ws.org/Vol-3369/invited1.pdf
- ↑AWS Direct Connect — Connection options https://docs.aws.amazon.com/directconnect/latest/UserGuide/connection_options.html
- ↑Oracle, „Czym jest ETL?”. ([oracle.com](oracle.com https://www.oracle.com/pl/integration/what-is-etl/
- ↑AWS — Cost optimization in analytics services https://docs.aws.amazon.com/whitepapers/latest/cost-modeling-data-lakes/cost-optimization-in-analytics-services.html
- ↑Google Cloud Documentation — Scheduling queries https://docs.cloud.google.com/bigquery/docs/scheduling-queries
- ↑AWS, „Optimizing reads with pushdown in AWS Glue ETL”. ([docs.aws.amazon.com](docs.aws.amazon.com https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-pushdown.html
- ↑IBM, „ETL Best Practices: 14 Ways to Build Modern Data Pipelines”. ([ibm.com](ibm.com https://www.ibm.com/think/insights/etl-best-practices
- ↑AWS Glue, „Evaluating data quality for ETL jobs in AWS Glue Studio”. ([docs.aws.amazon.com](docs.aws.amazon.com https://docs.aws.amazon.com/glue/latest/dg/tutorial-data-quality.html
- ↑AWS Glue, „Joining datasets”. ([docs.aws.amazon.com](docs.aws.amazon.com https://docs.aws.amazon.com/glue/latest/dg/transforms-configure-join.html
- ↑What is ETL? – Extract Transform Load Explained – AWS https://aws.amazon.com/what-is/etl/
- ↑Jak zorganizować procesy ETL w organizacji? [artykuł] – AstraFox https://astrafox.pl/jak-zorganizowac-procesy-etl-w-organizacji/
- ↑Informatica, „PowerCenter Standard Edition” oraz dokumentacja Data Validation Option. ([informatica.com](informatica.com https://www.informatica.com/content/dam/informatica-com/en/collateral/data-sheet/powercenter-standard_data-sheet_6678.pdf