Чтобы данные из корпоративных систем можно было анализировать, их нужно обработать. Обычно это происходит в три этапа: извлечение, трансформация и загрузка. Этот принцип называется ETL (Extract Transform Load). Чем больше данных и аналитических задач, тем больше ETL-процессов. Управлять ими вручную трудозатратно. Airflow берёт на себя часть процесса по управлению данными: администратор задаёт параметры и порядок выполнения задач, а всё остальное делает платформа. Airflow подходит не только для ETL-процессов, но и для автоматизации других задач. Например, создания и отправки отчётов, управления инфраструктурой.
Кому пригодится Airflow:
● Инженерам данных — для проектирования, разработки и обслуживания систем обработки данных. Эти специалисты отвечают за то, чтобы информация из баз данных, веб-серверов и файлов журналов корректно преобразовывалась и загружалась в хранилища данных. Инженеры предоставляют другим специалистам выгрузки из хранилищ, которые можно использовать для аналитических задач.
● Аналитикам и специалистам по Data Science — строить витрины данных, отчёты и готовить данные для машинного обучения.
● Разработчикам — автоматизировать загрузку данных для тестирования приложения, настраивать обмен информацией между базами данных или с внешними системами.
● Менеджерам проектов — для планирования и мониторинга процессов обработки данных.
На курсе «Инженер данных» студенты используют AirFlow для автоматизации ETL-процессов и работы с большими объёмами неструктурированной информации в аналитических базах данных. Обучение принесёт больше пользы, если есть опыт работы с Python — Airflow написан именно на этом языке. Также важно понимать базовый синтаксис, запросы и функции SQL — для создания, хранения и обработки данных.
Чтобы разобраться в Apache Airflow, важно понимать, что такое конвейеры данных или пайплайны. Конвейер — это последовательность преобразований данных. Архитектура Airflow базируется на концепции направленного ациклического графа (DAG). В этом графе все вершины (задачи) связаны между собой в определенном порядке и нет циклов. Это позволяет Airflow отслеживать зависимости между задачами и запускать пайплайны в правильном порядке. Для DAG неважно, что происходит внутри задач — только порядок запуска, сколько раз повторять и, например, нужны ли паузы между задачами.
Пример простейшего DAG. В нём есть четыре задачи — A, B, C и D. Стрелки указывают порядок, в котором они должны выполняться, и какие задачи зависят от других. Если B и C зависят от A, то они не могут начаться, пока A не будет успешно завершена. У каждой задачи — свои параметры. Например, время выполнения, количество повторений. Источник: документация Airflow
В архитектуре Airflow есть несколько компонентов. Они делятся на основные и дополнительные. Вторые могут быть частью основных или применяются для специфических задач.
Пример архитектуры Apache Airflow, если выбрали CeleryExecutor. Файл конфигурации создаёт администратор сервиса, например инженер данных. В нём содержатся настройки и параметры, которые влияют на работу Airflow. Например, как остальные компоненты будут подключаться к базе метаданных. К файлу обращается планировщик, веб-сервер и работники
Разберём принцип работы Apache Airflow на примере. Предположим, что есть задача — ежедневно обрабатывать данные о продажах в компании розничной торговли: выгружать и готовить их для анализа. Затем — отправлять отчёты маркетологам по электронной почте. Как настроить эту задачу с помощью Airflow:
1. Инициировать DAG. Пользователь создает DAG для обработки данных о продажах и задаёт расписание выполнения. Этот DAG определяет последовательность задач, которые нужно выполнить.
2. Запланировать задачу. Планировщик читает расписание для DAG и определяет, что задача обработки данных должна быть запущена в определённое время каждый день.
3. Выполнить задачи. Исполнитель запускает задачи, определённые в DAG, в соответствии с расписанием. Например, он может запустить задачу для загрузки и обработки данных.
4. Мониторинг и управление. Инженер проверяет статус выполнения задач через веб-интерфейс, смотрит журналы выполнения, перезапускает или приостанавливает выполнение при необходимости.
Так выглядит интерфейс Airflow, в котором инженер данных может следить за выполнением задач
1. DAG’и (DAGs) — ключевая сущность Airflow. Это скрипты на Python, которые описывают логику выполнения задач: какие должны быть выполнены, в каком порядке и как часто.
2. Задача (Task) — описывает, что делать. Например, выборку данных, анализ, запуск других систем. Каждая задача — это экземпляр оператора с определенными параметрами. Допустим, есть DAG для загрузки данных из базы. Можно создать задачу для выполнения оператора, который отправит SQL-запрос для загрузки данных. Она будет содержать информацию о том, какой SQL-запрос нужно выполнить, когда и в каком контексте.
3. Оператор (Operator) — класс Python, который определяет, что нужно сделать в рамках задачи. Есть операторы для выполнения скриптов Bash, кода Python, SQL-запросов. Например, чтобы выполнить скрипт Python для анализа данных, используют PythonOperator.
Совет эксперта
Читать также: