ym88659208ym87991671
Руководство по использованию AirFlow (оркестратор для задач ETL) | Документация для разработчиков

Руководство по использованию AirFlow (оркестратор для задач ETL)

Обновлено 8 августа 2023

Описание функциональности сервиса Airflow

AirFlow - это сервис для разработки, планирования и мониторинга рабочих процессов, в частности сценариев выгрузки, преобразования и загрузки данных (ETL).

Основной сущностью в AirFlow является DAG - (направленный ациклический граф, DAG - directed acyclic graph) — граф, в котором отсутствуют направленные циклы, но могут быть «параллельные» пути, выходящие из одного узла и разными путями приходящие в конечный узел.

Большинство сценариев по обработке и трансформации данных (ETL) можно реализовать в виде DAG в AirFlow — набора связанных задач, реализованных в виде python-скриптов. Для работы можно использовать, например, PyCharm + Git (Bitbucket) или как вариант можно хранить python-скрипты в S3.

Основная функциональность Airflow, которая используется в SDP Analytics:

Основные компоненты Airflow

DAG

В Airflow DAG — это ориентированный ациклический граф, т.е. граф, у которого отсутствуют циклы, но могут быть параллельные пути, выходящие из одного и того же узла. Простыми словами DAG это сущность, объединяющая ваши задачи в единый data pipeline (или цепочку задач), где явно видны зависимости между узлами.

Планировщик (Scheduler)

Планировщик задач в Airflow построен на Celery. Celery — это Python-библиотека, позволяющая организовать очередь плюс асинхронное и распределенное исполнение задач. Со стороны Airflow все задачи делятся на пулы. Пулы создаются вручную. Как правило, их цель — ограничить нагрузку на работу с источником или типизировать задачи внутри DWH. Пулами можно управлять через web-интерфейс.

Задача (Task)

Задача определяет единицу работы в группе доступности базы данных; он представлен в виде узла в графе DAG и написан на Python. Каждая задача представляет собой реализацию оператора, например PythonOperator для выполнения некоторого кода Python или BashOperator для выполнения команды Bash.

Оператор (Operator)

Operator — это части кода, ответственные за выполнение какого-либо конкретного действия. Есть три типа операторов:

  • action, как, например, PythonOperator, который в силах выполнить любой (валидный) Python-код;

  • transfer, которые перевозят данные с места на место, скажем, MsSqlToHiveTransfer;

  • sensor же позволит реагировать или притормозить дальнейшее выполнение DAG до наступления какого-либо события.

Executor

Executor - процесс очереди сообщений, который организует рабочие процессы для выполнения задач. Основные типы Executor:

  • LocalExecutor

  • CeleryExecutor

  • KubernetesExecutor

WebUI

Портал, на котором пользователи могут просматривать связанный статус DAG. Полезная ссылка Airflow UI .

База данных метаданных (Metadata DB)

хранилище метаданных Airflow для хранения различных метаданных, включая статус задания, статус экземпляра задачи и т.д.

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера.