เฟรมเวิร์กสำหรับจัดตารางเวิร์กโฟลว์

Data Engineering เบื้องต้น

Vincent Vankrunkelsven

Data Engineer @ DataCamp

ตัวอย่าง pipeline

 

ตัวอย่าง pipeline อย่างง่ายที่ดึงข้อมูลจาก csv โดยใช้ Spark

จะจัดตารางเวลาอย่างไร?

  • ทำเอง
  • เครื่องมือ cron
  • แล้ว dependencies ล่ะ?
Data Engineering เบื้องต้น

DAG

Directed Acyclic Graph

  • ชุดของ node
  • Edge มีทิศทาง
  • ไม่มีวงจร

ตัวอย่าง DAG

Data Engineering เบื้องต้น

เครื่องมือที่ใช้

 

  • cron ของ Linux
  • Luigi ของ Spotify
  • Apache Airflow
Data Engineering เบื้องต้น

โลโก้ Apache Airflow

  • สร้างขึ้นที่ Airbnb
  • DAG
  • Python
Data Engineering เบื้องต้น

Airflow: ตัวอย่าง DAG

 

ตัวอย่าง Airflow DAG

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