Jak w kilku krokach utworzyć proces ETL przy pomocy Azure Data Factory?

Czas czytania: 3 min.

Azure Data Factory jest usługą działającą w chmurze, pozwalającą na pobieranie danych z wielu źródeł, ich transformację oraz import do miejsca docelowego. Cały proces może zostać wykreowany za pomocą graficznego interfejsu w Azure Data Factory Studio.

Poniżej przedstawionych zostanie kilka działań, które powinny zostać podjęte, aby utworzyć podstawowy proces ETL. Przyjmijmy, że bazowe warunki dla skorzystania z usługi ADF, czyli posiadanie subskrypcji Microsoft Azure, utworzenie Azure Data Factory oraz Linked Services, są już spełnione.

1. Wybór źródła danych.

Azure Data Factory pozwala pobierać dane z wielu źródeł. Są wśród nich platformy Azurowe, relacyjne i nierelacyjne bazy danych, serwisy i aplikacje (łącznie ponad 90 tzw. connectors).

2. Utworzenie pipeline-u.

Jest to zasadnicza część procesu ETL. Pipeline jest budowany na bazie tzw. activities, które można porównać do wykonywanych w ramach procesu zadań. Metodą „pociągnij i upuść” są one przenoszone z lewego panelu bocznego do obszaru roboczego. Nowo dodane activities posiadają domyślnie aktywny status, jednak np. w celach testowych możemy go zdezaktywować. W ten sposób dane zadanie zostanie pominięte w procesie, bez konieczności usunięcia go z pipeline-u.  Ważnym aspektem tworzenia pipeline-u jest warunkowanie wykonania poszczególnych activities. Przykładowo, posiadając 2 następujące po sobie zadania, możemy w następujący sposób określić relację pomiędzy nimi:

  • On Success – kolejna aktywność zostaje wykonana, gdy poprzednia została zakończona sukcesem (symbol zielonej strzałki)
  • On Fail – kolejna aktywność zostaje wykonana, gdy poprzednia została zakończona niepowodzeniem (symbol czerwonej strzałki)
  • On Completion – kolejna aktywność zostaje wykonana, gdy poprzednia została zakończona- bez znaczenia, z jakim rezultatem (symbol niebieskiej strzałki)
  • On Skip – kolejna aktywność zostaje wykonana, gdy poprzednia się nie rozpoczęła (symbol szarej strzałki)

Dzięki powyższej funkcjonalności możemy elastycznie konfigurować alternatywne scenariusze dla utworzonego piepline-u, w zależności od przebiegu konkretnego procesu. Jest to również wygodny sposób obsługi błędów, w przeciwnym razie, aby zastrzec kilka możliwych scenariuszy, musielibyśmy użyć activity If Condition – być może zagnieżdżonej kilkakrotnie, co czyniłoby kod mniej czytelnym, trudniejszym do debugowania i utrzymania.

Po ukończeniu pracy nad pipeline-m, warto użyć opcji Validate, aby sprawdzić, czy pipeline został  skonfigurowany poprawnie. Rezultat walidacji będzie widoczny po prawej stronie ekranu, w przypadku braków / błędów, zostaną one wymienione wraz z ich źródłem.

Ostatnim krokiem jest zapisanie pracy za pomocą przycisku Publish All.

3. Uruchomienie pipeline-u.

Istnieje kilka możliwości uruchomienia pipeline-u, które różnią się technicznymi detalami, Można je uogólnić wyróżniając dwie grupy zdarzeń, gdzie start piepline’u może nastąpić:

a) manualnie: poprzez wybór opcji Debug lub Add Trigger – Trigger Now – w ten sposób proces jest uruchamiany w chwili kliknięcia przycisku

b) automatycznie: poprzez wybór opcji Add Trigger – New/Edit , gdzie w zależności od typu triggera -zostaje ustalony harmonogram uruchamiania procesu (data, godzina i częstotliwość) lub uruchomienie procesu zostaje uzależnione od wystąpienia określonego zdarzenia.

4. Śledzenie progresu.

Po uruchomieniu procesu, w panelu u dołu strony, możemy sprawdzać jego progres. 

Będziemy widzieć osobny rekord dla każdej aktywności, którą zdefiniowaliśmy. Zadania zakończone sukcesem będą  oznaczone standardową, zieloną ikonką, natomiast zakończone błędem – czerwoną. Rekord będzie zawierał również czas wykonania akcji, na co warto zwrócić uwagę w kontekście optymalizacji procesu.

5. Debugowanie błędów (opcjonalnie).

Jeżeli w rezultacie uruchomienia pipeline-u, niektóre zadania zostaną zakończone błędem, możemy sprawdzić jego szczegóły, klikając na dane zadanie. Przykładem prostego błędu może być przypisanie do zmiennej liczbowej wartości tekstowej w ramach  zadania Set Variable. Informacja na temat activity zostanie wyświetlona w formacie JSON, gdzie key jest wygenerowany przez ADF, natomiast value reprezentuje wartości podane przez użytkownika.

W szczegółach statusu, możemy zobaczyć opis błędu jako zwykły tekst, dzięki czemu możemy skorygować pipeline.

Podsumowując, ADF posiada szeroki wachlarz źródeł oraz możliwości transformacji danych, aby  móc tworzyć kompleksowe rozwiązania ETL. Powyżej przedstawiony został krótki przewodnik, jak poruszać się po ADF i na co warto zwrócić uwagę podczas budowania pipeline-u. Dla użytkowników SSMS czy SSIS, praca z ADF powinna być łatwiejsza, gdyż niektóre activities  nawiązują do konstrukcji sql-owych np. Filter, If Condition. Znając logikę tych konstrukcji, łatwiej będzie stosować odmienną składnię ADF.

 

Masz potrzebę utworzenia procesu ETL? Chętnie pomożemy!

Facebook
Twitter
LinkedIn

Kontakt

Sprzedaż

Michał Bugowski

+48 571 947 256

sprzedaz@polarysgroup.com

Biuro

Angelika Dziula

+48 789 189 061

office@polarysgroup.com

Polarys Polska Sp. z o.o.
ul. Rakowicka 1/20-21
31-511 Kraków

Kontakt

Ola Wojdyła

Kontakt

Wspieramy firmy o każdej wielkości
i z każdej branży.

Pomożemy ci w doborze odpowiedniej technologii i rozwiązań, aby zwiększyć przejrzystość procesów twojej organizacji i opracować nowe cyfrowe modele biznesowe. 

Zespół naszych ekspertów czeka na twoje pytania.

Po wysłaniu formularza skontaktujemy się z tobą w ciągu dwóch dni, aby porozmawiać o twoich potrzebach.

Zaufali nam: