DAG

DAG (Directed Acyclic Graph) в контексте Apache Airflow — это ключевая концепция, описывающая структуру и порядок выполнения задач в рабочем процессе. DAG — это набор задач, организованных в виде направленного ацикличного графа, где узлы представляют отдельные задачи (или операторы), а рёбра показывают зависимости между ними. Это означает, что задачи в DAG могут выполняться в определённом порядке, заданном зависимостями, при этом циклы в DAG невозможны.

Создание DAG в Airflow

DAG описывается на языке Python в виде скрипта. Основные элементы DAG включают:

  • Название DAG: Каждому DAG присваивается уникальное имя для идентификации.
  • Параметры расписания: Указывают, как часто или когда именно DAG будет выполняться.
  • Задачи (tasks): Каждый DAG содержит набор задач, которые могут выполняться параллельно или последовательно в зависимости от настроенных зависимостей.
  • Операторы (operators): Классы, представляющие конкретные задачи, такие как PythonOperator, BashOperator и другие. Операторы задают логику выполнения для каждой задачи. В dataCraft Core используется большое количество кастомных операторов - подробнее Airbyte Operators.

Примеры использования DAG в Airflow

  1. ETL-процессы: DAG в Airflow может содержать задачи для извлечения данных из источников, обработки и преобразования их, а затем загрузки в хранилище данных.
  2. Сложные расчёты и ML-модели: Можно создать DAG для выполнения последовательности задач машинного обучения, таких как подготовка данных, обучение модели, оценка, тестирование и деплой.
  3. Интеграция API: DAG может автоматизировать сбор данных с различных API, обработку данных и их интеграцию с внутренними системами компании.

Использование DAG в dataCraft Core

В dataCraft Core DAG’и используются для автоматизации широкого спектра задач: