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

Вступ до Data Engineering

Vincent Vankrunkelsven

Data Engineer @ DataCamp

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

 

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

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

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

DAG-и

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

  • Набір вузлів
  • Спрямовані ребра
  • Без циклів

Приклад DAG

Вступ до Data Engineering

Інструменти для цього

 

  • cron у Linux
  • Luigi від Spotify
  • Apache Airflow
Вступ до Data Engineering

Логотип Apache Airflow

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

Airflow: приклад DAG

 

Приклад DAG в Airflow

Вступ до Data Engineering

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

# Create the DAG object
dag = DAG(dag_id="example_dag", ..., schedule_interval="0 * * * *")

# Define operations start_cluster = StartClusterOperator(task_id="start_cluster", dag=dag) ingest_customer_data = SparkJobOperator(task_id="ingest_customer_data", dag=dag) ingest_product_data = SparkJobOperator(task_id="ingest_product_data", dag=dag) enrich_customer_data = PythonOperator(task_id="enrich_customer_data", ..., dag = dag)
# Set up dependency flow start_cluster.set_downstream(ingest_customer_data) ingest_customer_data.set_downstream(enrich_customer_data) ingest_product_data.set_downstream(enrich_customer_data)
Вступ до Data Engineering

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

Вступ до Data Engineering

Preparing Video For Download...