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

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

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Пример конвейера

 

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

Как планировать запуск?

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

DAG

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

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

Пример DAG

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

Инструменты для работы

 

  • cron в Linux
  • Luigi от Spotify
  • Apache Airflow
Введение в дата-инжиниринг

Логотип Apache Airflow

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

Airflow: пример DAG

 

Пример DAG в Airflow

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

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)
Введение в дата-инжиниринг

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

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

Preparing Video For Download...