Airflow как оркестратор ETL/ELT процессов

Airflow как оркестратор ETL/ELT процессов

Telegram @data_study

ETL (extract, transform, load) - процесс извлечения, обработки и загрузки данных между системами или хранилищами данных. По другому его могут называть data pipeline. 

На рынке существует множество инструментов, которые используются для ETL разработки. 

Одним из них является Airflow - open source решение для создания, оркестрации и управления потоками данных (data pipeline).

Airflow был создан сразу же как open source решение в компании Airbnb в 2014 году, чуть позже попал в программу Apache Software Foundation’s Incubator.   

Главным компонентом в работе Airflow является DAG (Directed Acyclic Graphs). DAG состоит из отдельных task (задач), каждая из которых включает в себя некоторую логику работы с данными. В конечно итоге DAG как конструктор выстраивается из взаимосвязанных между собой задач, которые должны выполняться последовательно. 

Например, DAG определяет внутри себя 4 таски: a, b, c, d. Каждая из этих тасок включает в себя некоторые шаги в логике обработки данных. DAG же в свою очередь будет определять набор тасок, их взаимосвязь между собой, а также порядок выполнения. Помимо этого, DAG определяет расписание запуска всего рабочего процесса обработки данных. 

Таски a, b, c, d формируют DAG
DAG всегда определяет зависимость между тасками, а также порядок их выполнения


Языком разработки рабочих процессов на Airflow является Python.

Архитектура Airflow для работы включает в себя несколько элементов:

  • scheduler (запускает рабочие процессы по расписанию, передает данные в executor для запуска tasks) 
  • executor (отвечает за выполнение tasks): может быть как частью scheduler, так и вынесен в отдельные workers
  • webserver (предоставляет пользовательский интерфейс в браузере для управления и настройки процессов)  
  • folder of DAG files (считываются scheduler и executor для запуска DAGов)
  • metadata database (используется компонентами архитектуры для записи метаданных о работе) 
Базовая архитектура компонентов Airflow


Если говорить обобщенно о проектах извлечения и обработки данных, то Airflow для ETL процесса будет занимать место согласно схеме ниже

Типичная схема потока данных для аналитики

Всегда можно говорить о 3-х главных компонентах:

  1. Системы источники данных (то, откуда мы извлекаем данные)
  2. Аналитическое хранилище данных (может быть представлено в разных решениях: Data Warehouse, Data Lake, Data Platform)
  3. Система потребитель данных (часто эту роль выполняют системы принятия решений, BI инструменты с настроенной отчетностью)

Между этими компонентами конечно должен быть настроен поток данных, который и может быть реализован Airflow и другими инструментами для ETL/ELT разработки.


P.S. Не забываем, что каждый инструмент может быть выбран под конкретные бизнес-задачи, которые он может покрыть. Про другие ETL/ELT инструменты будем говорить в следующих постах.

Ссылка на официальную документацию


Telegram канал про аналитику данных и бизнес-анализ

Report Page