Ważną rzeczą jest to, że Airflow jest nie tylko narzędziem ETL. Za pomocą kodu definiujemy przepływy pracy i planujemy ich wykonanie. Możemy generować raporty oraz planować kopie zapasowe i podobne operacje DevOps (ang. develompent and operations – połączone działania mające na celu usprawnienie procesów jak i jakości działania produktu).
Łatwy w obsłudze, czyli początek przyjaźni z Airflow.
Apache Airflow jest wygodnym narzędziem dla użytkowników znających język Python. Python ze względu na swoją popularność i jednocześnie łatwą dostępność edukacyjną jest jednym z najpopularniejszych języków tworzenia kodu.
Jest to kod napisany w Python, który używany jest w Airflow do:
– Przepływu pracy DAG (Directed Acyclic Graph) – zbiór zadań, które określa relacje między operatorami, porządek i zależności.
– Formatów godziny i daty do zaplanowania zadań.
– Pętli do dynamicznego generowania.
Dzięki temu Airflow określany jest mianem łatwego i przyjemnego w obsłudze narzędzia.
Możesz zarządzać wszystkimi przepływami pracy DAG za pośrednictwem interfejsu Airflow oraz interfejsu graficznego – WebUI. Poszerza to możliwości wizualizacji wielopłaszczyznowych diagramów oraz bieżącego monitorowania ich działań. To prosty sposób, aby rozwiązywać problemy typu: monitorowanie procesów czy też uruchamianie zablokowanych wystąpień serwera internetowego.
Apache Airflow – zarządzanie zadaniami.
Airflow rozszerza możliwości zarządzania zadaniami dzięki dziennikowi, historii zadań i szablonom jinja (są to wbudowane szablony, pozwalające na używanie wielu zmiennych czy makr podczas wykonywania zadania). Zadania i ich wyniki przechowywane są w jednym miejscu, czyli rejestrze zadań. W znaczącym stopniu ułatwia to pracę. Kod ma większą swobodę w utrzymaniu, wersjonowaniu, a zadania są współdzielone. W praktyce oznacza to, że zespół może skupić się na tym, co najważniejsze dla raportów klienta. Zespół może jednocześnie pracować nad wieloma zadaniami,a czas dostarczenia rozwiązania będzie krótszy. Użycie szablonów sprawia, że budowanie zadań jest prostsze, pozwala to uniknąć powtarzalnych i czasochłonnych czynności. Dodatkowo dzięki dziennikowi monitorowanie jest proste. Można bardzo szybko wyłapać problemy. Należą do nich: błędne działanie lub zbyt długi czas realizacji zadania w stosunku do poprzednich dni. W przypadku znalezienia błędu można szybko wprowadzić poprzednią wersję, a ktoś z naszego zespołu może skupić się na błyskawicznym wdrożeniu poprawki.
Apache Airflow jako darmowe narzędzie dla każdego.
Airflow został wydany w 2015 jako open source, co wraz z tworzeniem w Pythonie zyskało dlań dużą popularność. Samodzielne zarządzanie środowiskiem danych jest całkowicie bezpłatne. Cała konfiguracja jest prosta i nieskomplikowana.
Dzięki idealnemu dopasowaniu zasobów obliczeniowych do swoich potrzeb, możemy uzyskać potencjalne oszczędności. Wiele firm, specjalizujących się w narzędziach wspomagających proces pozyskania danych dla hurtowni danych, czyli ETL, posiada usługę zarządzaną. Usługa zarządzana z elastyczną wydajnością węzłów roboczych, umożliwia wdrażanie DAG bez martwienia się o infrastrukturę bazową. Dzięki temu, nie musimy monitorować i manualnie skalować, aby spełnić wymagania przepływów pracy. Ograniczymy w ten sposób czas na monitorowanie, poprawianie, uruchamianie zablokowanych wystąpień serwera internetowego, czy dopasowywanie wydajności węzłów roboczych do potrzeb przepływu pracy.
Airflow jest narzędziem do planowania zadań, a przepływ wykonywania oparty na wykresach sprawia, że jest doskonałą alternatywą dla uruchamiania zadań ETL.
Prosty przykład grafu DAG w Airflow.
Prosty DAG może składać się z trzech zadań: A, B i C. Możemy zrobić tak, że A musi działać pomyślnie, zanim B będzie mógł zacząć działać, ale C może zostać uruchomiony w dowolnym momencie. Inny przykład: zadanie A wygasa po 5 minutach, a B można ponownie uruchomić do 5 razy, jeśli się nie powiedzie. Możemy również zarządzić, że przepływ pracy będzie uruchamiany każdego wieczoru o 22:00, ale nie przed określoną datą.
Tak DAG opisuje, w jaki sposób chcesz przeprowadzić przepływ pracy. Musimy jednak pamiętać, że A, B i C mogą oznaczać wszystko. Może A przygotowuje dane do analizy przez B, podczas gdy C wysyła e-mail. A może monitorować Twoją lokalizację, aby B mógł otworzyć bramę garażową, podczas gdy C zapala światło w Twoim domu. Ważne jest to, że DAG nie zajmuje się tym, co robią jej zadania składowe. Jego zadaniem jest upewnienie się, że cokolwiek robią, dzieje się we właściwym czasie lub we właściwej kolejności.
Reasumując, można stwierdzić, że narzędzie jest idealne do rozpoczęcia pracy z danymi, zakładając, że mamy do wykonania większą ilości zadań.
Do zastanowienia pozostaje tylko kwestia, czy chcemy skorzystać z usługi zarządzanej, która bez wątpienia może pomóc w zaoszczędzeniu czasu.
Wielozadaniowość jako jedna z głównych zalet Aifrlow.
Dzięki aplikacji webowej mamy dostęp do statusu ukończonych i bieżących zadań wraz z wglądem w ich logi. Możemy zarządzać wszystkimi przepływami pracy DAG za pośrednictwem interfejsu Airflow.
Przy pomocy interfejsu wiersza poleceń, Airflow umożliwia wykonywanie zadań. Co pozwala ponownie uruchomić pracę od dowolnego punktu podczas procesu ETL – jest to bardzo praktyczna funkcja w przypadku, gdy pracujemy na dużej ilości danych.
Oznacza to, że w przypadku, gdy podczas procesu pojawią się błędy, wcześniejsze etapy naszej pracy nie zostaną utracone i będziemy mogli rozpocząć pracę od miejsca jej zakończenia. Tym sposobem zyskujemy wiele czasu, który w przypadku braku tej funkcji, musielibyśmy poświęcić na ponowne budowanie całego procesu.
Zintegrowanie dzięki plug-and-play.
Konektory typu plug-and-play, umożliwiaja integrację narzędzia z innymi usługami udostępnionymi m.in. w Google Cloud Platform, Amazon Web Services czy Microsoft Azure.
Niewątpliwie Airflow zasługuje na uznanie jako narzędzie do przygotowania danych. Ze względu na dostępność, cenę, łatwy język i przyjazny interfejs. Z pewnością zda egzamin przy pracy z dużymi bazami danych, dzięki możliwości pracy kilku operatorów w jednym czasie.