Фреймворки для планирования workflow

Введение в дата-инжиниринг

Vincent Vankrunkelsven

Data Engineer, DataCamp

Пример пайплайна

 

Пример простого пайплайна, извлекающего данные из csv с помощью Spark

Как планировать выполнение?

  • Вручную
  • Инструмент cron
  • А как быть с зависимостями?
Введение в дата-инжиниринг

DAG

Направленный ациклический граф

  • Набор узлов
  • Направленные рёбра
  • Без циклов

Пример DAG

Введение в дата-инжиниринг

Инструменты для решения задачи

 

  • cron в Linux
  • Prefect и Dagster
  • Apache Airflow
Введение в дата-инжиниринг

Логотип Apache Airflow

  • Создан в Airbnb
  • DAG
  • Python
Введение в дата-инжиниринг

Airflow: пример DAG

 

Пример DAG в Airflow

Введение в дата-инжиниринг

Airflow: пример кода

@dag(dag_id="example_dag",
     start_date=datetime(2024, 1, 1),
     schedule="0 * * * *")
def example_dag():

@task def start_cluster(): ... @task def ingest_customer_data(): ... @task def ingest_product_data(): ... @task def enrich_customer_data(): ...
Введение в дата-инжиниринг

Airflow: пример кода

@dag(dag_id="example_dag", ...)
def example_dag():
    ...
    # Set up dependency flow
    cluster = start_cluster()
    customers = ingest_customer_data()
    products = ingest_product_data()
    cluster >> [customers, products]
    [customers, products] >> enrich_customer_data()
# Run the DAG
example_dag()
Введение в дата-инжиниринг

Давайте потренируемся!

Введение в дата-инжиниринг

Preparing Video For Download...