워크플로 스케줄링 프레임워크

데이터 엔지니어링 입문

Vincent Vankrunkelsven

Data Engineer @ DataCamp

파이프라인 예시

 

Spark로 CSV에서 추출하는 단순 파이프라인 예시

어떻게 스케줄링할까요?

  • 수동
  • cron 스케줄링 도구
  • 의존성은 어떻게?
데이터 엔지니어링 입문

DAG

유향 비순환 그래프

  • 노드 집합
  • 유향 엣지
  • 순환 없음

DAG 예시

데이터 엔지니어링 입문

도구 모음

 

  • Linux의 cron
  • Spotify의 Luigi
  • Apache Airflow
데이터 엔지니어링 입문

Apache Airflow 로고

  • Airbnb에서 개발
  • DAG 사용
  • Python 기반
데이터 엔지니어링 입문

Airflow: DAG 예시

 

Airflow DAG 예시

데이터 엔지니어링 입문

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...