Фреймворки для планування робочих процесів

Вступ до Data Engineering

Vincent Vankrunkelsven

Data Engineer, DataCamp

Приклад конвеєра

 

Приклад простого конвеєра, що витягує з csv за допомогою Spark

Як планувати?

  • Вручну
  • Інструмент планування cron
  • А як щодо залежностей?
Вступ до Data Engineering

DAG

Орієнтований ациклічний граф

  • Набір вузлів
  • Орієнтовані ребра
  • Без циклів

Приклад DAG

Вступ до Data Engineering

Інструменти для завдання

 

  • Linux cron
  • Prefect і Dagster
  • Apache Airflow
Вступ до Data Engineering

Логотип Apache Airflow

  • Створено в Airbnb
  • DAG
  • Python
Вступ до Data Engineering

Airflow: приклад DAG

 

Приклад DAG в Airflow

Вступ до Data Engineering

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(): ...
Вступ до Data Engineering

Airflow: приклад у коді

@dag(dag_id="example_dag", ...)
def example_dag():
    ...
    # Налаштувати потік залежностей
    cluster = start_cluster()
    customers = ingest_customer_data()
    products = ingest_product_data()
    cluster >> [customers, products]
    [customers, products] >> enrich_customer_data()
# Запустити DAG
example_dag()
Вступ до Data Engineering

Давайте потренуємось!

Вступ до Data Engineering

Preparing Video For Download...