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 в настройках своего браузера.