Bardziej wydajny harmonogram poprawiający wydajność w Airflow 2.0

Arkadiusz Bach
Arkadiusz Bach
May 8, 2025
6 min read
Loading the Elevenlabs Text to Speech AudioNative Player...

Jako jedno z najpopularniejszych narzędzi do zarządzania pociągiem danych typu open source, Apache Airflow ma wielu użytkowników na całym świecie. Jest lubiany przez wielu, ale jak każde inne oprogramowanie ma również pewne słabe punkty. Aby aktualizować ten system i rozwiązać niektóre problemy, zespół Airflow przeprowadza ankiety społeczności i pracuje nad nowymi wersjami oprogramowania. Niedawno Airflow 2.0 został wprowadzony na rynek z wieloma nowymi funkcjami, takimi jak bardziej wydajny harmonogram. Ci, którzy zdecydowali się przejść do Airflow 2.0, wkrótce zdają sobie sprawę, że głównym obszarem zainteresowania zespołu Airflow był harmonogram. Chociaż realizacja zadań Airflow zawsze była stosunkowo dobra, poprawa jego wydajności była kluczowa dla osiągnięcia wyższej ogólnej wydajności całego systemu. Czy jesteś ciekawy, czym nowy harmonogram Airflow różni się od starego?

Apache Airflow Scheduler — do czego służy?

Przepływ powietrza Apache został przekształcony. Zespół Airflow dodał wiele nowych funkcji i poprawił wydajność różnych komponentów oprogramowania. Tym, który przeszedł najbardziej znaczącą modyfikację, był harmonogram. Jego celem jest odczytanie potoków zadań, które są prezentowane jako DAG — Directed Acyclic Graphs. Służy do planowania zadań zawartych w DAG i monitorowania ich wykonania. Wyzwala również zadania, jeśli ich zależności są spełnione. Chodzi o to, że wykonywanie setek zadań nie jest łatwe, a firmy, które prowadzą Airflow do produkcji, nie mogą zostać powstrzymane. Podczas korzystania z poprzedniej wersji Airflow prawdopodobnie napotkałeś wiele problemów z wykonywaniem DAG, takich jak opóźnienia w odbieraniu zadań. Czasami harmonogram miażdżył się z nieznanego powodu, co czasami prowadziło do zadań wiszących w kolejce. Miażdżenie harmonogramu czasami było również spowodowane bardzo krótką (kilkusekundową) awarią w sieci — działo się tak, ponieważ w rdzeniu Airflow nie było mechanizmu ponownej próby. Problemy te sprawiają, że skalowalność pozioma i dostępność harmonogramu są bardzo ważne dla użytkowników. Musi również planować i wykonywać zadania tak szybko i wydajnie, jak to możliwe, bez pominięcia zadań podczas replikacji harmonogramu. W jaki sposób zespół Airflow rozwiązał te wyzwania?

Harmonogram przepływu powietrza w wersji 2.0

Zespołowi Airflow z pewnością udało się zoptymalizować wykorzystanie zasobów. Harmonogram działa teraz znacznie szybciej bez zwiększenia procesora lub pamięci. Harmonogram działa w trybie niezależnym, więc gdy system używa więcej niż jednego harmonogramu, nie będzie przestojów. Wydajność podczas wykonywania wielu DAG w trybie równoległym została znacznie poprawiona. Chciałbyś dowiedzieć się więcej? Skoncentrujmy się na szczegółach.

Wiele harmonogramów w modelu aktywnym

Airflow 2.0 umożliwia użytkownikom korzystanie z wielu harmonogramów. Każdy z nich jest „aktywny” i może obsługiwać liczne zadania, w tym te niezwiązane z planowaniem, takie jak monitorowanie wykonywania zadań, obsługa błędów zadań itp. Wszystkie uruchomione harmonogramy mają dostęp do tej samej relacyjnej bazy danych. Gdy jeden z harmonogramów wybierze DAG do przetworzenia z bazy danych, blokuje go dla innych harmonogramów. Następnie, po zakończeniu przetwarzania, DAG jest uwalniany.

Skalowalność pozioma

Posiadanie wielu harmonogramów w aktywnym modelu pozwala Airflow 2.0 osiągnąć skalowalność poziomą. Po prostu, jeśli obciążenie jednego harmonogramu jest zbyt duże, możesz skalować przepływ powietrza poziomo, wykorzystując liczne harmonogramy w różnych węzłach. Jeśli już ich nie potrzebujesz, możesz zmniejszyć liczbę harmonogramów, aby zminimalizować zużycie zasobów. Harmonogram są identyczne, więc nie będzie żadnych negatywnych skutków skalowania.

Zero czasu odzyskiwania i brak awarii harmonogramów

Aktywny model w harmonogramie Airflow 2.0 skutkuje zerowym przestojem i brakiem czasu odzyskiwania w przypadku awarii harmonogramu. Dzieje się tak z powodu innych w pełni aktywnych harmonogramów, które działają i przejmują operacje, gdy jeden z harmonogramów ulega awarii. Oczywiście przepustowość prawdopodobnie zostanie w jakiś sposób zmniejszona, ponieważ pozostałym harmonogramom pozostanie więcej pracy, ale nadal nie ma potrzeby odzyskiwania.

Każdy harmonogram niezależny

Utrzymanie złożonego oprogramowania, takiego jak Apache Airflow, nie jest łatwe, ale bardzo ważne jest jego działanie bez opóźnień, ponieważ często jest częścią znacznie większego systemu. Instalowanie niezbędnych poprawek i aktualizacji jest jednak kluczowe. Od tego zależy bezpieczeństwo całego systemu. W nowym Airflow 2.0 aktualizacja jednego z harmonogramów nie wpływa na wydajność pozostałych.

Ogólna optymalizacja harmonogramu

Nowa wersja Airflow ma interesującą funkcję „szybkiego śledzenia”, która sprawia, że harmonogram jest bardziej wydajny. Co to jest? Niektórzy opisują go jako „mini-harmonogram” u pracowników. Po wykonaniu jednego zadania w programie Airflow Worker system sprawdza, czy w tym samym DAG, które jest obecnie przetwarzane, jest jakieś dalsze zadanie. Jeśli jest dostępny, jest on pobierany przez bieżącego pracownika i wykonywany od razu. Nie ma potrzeby planowania dalszego zadania pracownikowi. Czas przetwarzania jest skrócony, a wydajność wzrasta.

Instalacja i dostosowywanie Airflow 2.0

Apache Airflow przeszedł znaczącą transformację, a rodzaje zmian przeprowadzonych przez zespół Airflow sugerują, że system ten z czasem będzie odpowiedni do różnych projektów. Pomyśl o potrzebach swojej firmy i zadaj sobie pytanie, czy to elastyczne oprogramowanie będzie świetne dla twoich przyszłych przedsięwzięć biznesowych? Oferujemy Państwu pomoc i doradztwo w zakresie instalacji Airflow 2.0 i możemy pomóc w konfiguracji go zgodnie z wymaganiami Twojej organizacji. Możemy również przygotować i przeprowadzić szkolenie Airflow 2.0 dla Twojego wewnętrznego zespołu, aby Twoi pracownicy mogli jak najszybciej jak najlepiej wykorzystać nowe funkcje. Skontaktuj się z nami, aby uzyskać więcej informacji. Sprawdź nasz blog, aby uzyskać więcej informacji na temat przepływu powietrza:

Share this post
DevOps
Arkadiusz Bach
MORE POSTS BY THIS AUTHOR
Arkadiusz Bach

Curious how we can support your business?

TALK TO US