Apache Airflow- это система с открытым исходным кодом (open sorce), назначение которой является:
Airflow часто определяют как ETL инструмент и это не совсем верно. По своей сути он является оркестратором.
Для простоты понимания мы также будем придерживаться мнения о его принадлежности к ETL (Extract, Transform, Load).
Стоит подробно разобраться в определении дага (направленного ацикличного графа), поскольку каждый элемент в его определении очень важен:
— Направленный — задачи имеют последовательность исполнения;
— Ацикличный — при исполнении задач в графе недопустимы циклы, каждая задача выполняется один раз;
— Граф — как вы уже могли догадаться, задачи пайплайна представлены в виде графа, т.е. элементов (вершин), попарно соединённых связями (ребрами).
Типы операторов представлены в таблице ниже:
Экземпляр задачи содержит информацию:
— задача,
— момент времени её выполнения,
— даг, в который она входит.
Если описывать отношения перечисленных понятий, можно сказать: даг содержит описание операторов, в которых содержатся операции (задачи), которые при выполнении дага становятся экземплярами задач.
Любой конвейер данных (или пайплайн) представляет собой последовательность шагов, каждый из которых выполняет определённый набор действий, так что пайплайн можно представить в виде графа. В принципе, если не использовать графовую структуру, пайплайн тоже будет работать и выполнять свои функции, но эта структура даёт несколько больших преимуществ:
Использование графовой структуры для запуска зависимых задач едва ли можно назвать чем-то новым в сфере ИТ и дата-инжениринга. Поэтому было разработано множество решений для управления рабочими процессами, позволяющих определять и выполнять графики задач в виде рабочих процессов или конвейеров. Airflow — одно из таких решений.
Важно помнить, что Airflow не является инструментом потоковой передачи данных.
Это именно оркестратор задач, то есть, он не предоставляет средств для извлечения и загрузки данных, но помогает выполнять задачи, связанные с извлечением и загрузкой данных в нужном пользователю режиме.
Основные компоненты airflow, работающие при первом его запуске:
Простой тип архитектуры, представленный на схеме 1, соответствует архитектуре при первом запуске и предполагает использование исполнителей Local Executor или Sequential Executor.
В представленной схеме процессы выполняют задачи вместо воркера.
А также:
В данной схеме очередь отдельна от планировщика. Если нужно повысить производительность Airflow (исполнять больше задач), можно добавить воркер.
Алгоритм выполнения задач планировщиком (scheduler-ом).
Алгоритм выполнения задач планировщиком представлен на схеме:
В БД метаданных (Metastore) происходит запуск дага (создаётся DagRun) со статусом “запущен” (running), в котором первая задача берётся на исполнение и становится экземпляром задачи (TaskInstance) со статусом “пусто” (none).
Статусы экземпляра задачи далее:
После этого планировщик проверяет, есть ли новые задачи на исполнение.
Статусы Dag в процессе исполнения: queued, running, success/failed.
Таблица с примерным описанием статусов Дага и его задач при исполнении представлена ниже.
Раздел 3. Важные представления в Airflow
Даг в Airflow может быть отображен по-разному с помощью различных представлений.
Основные представления Дага в пользовательском интерфейсе Airflow представлены в таблице:
Насколько интересной была статья?
Кликните на звезду, чтобы оценить статью
Средний рейтинг: 0 / 5. Оценок: 0
Оценок еще нет. Оцените, чтобы быть первым
Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил, что он у себя в постели превратился в страшное насекомое.
Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил, что он у себя в постели превратился в страшное насекомое.
Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил, что он у себя в постели превратился в страшное насекомое.