DAG Airflow

Pengantar Apache Airflow dengan Python

Mike Metzger

Data Engineer

Apa itu DAG?

DAG, atau Directed Acyclic Graph:

  • Directed, ada alur yang mewakili ketergantungan antar komponen.
  • Acyclic, tidak berulang/berputar/siklus.
  • Graph, himpunan komponennya.
  • Digunakan di Airflow, Apache Spark, dbt

DAG

1 https://en.m.wikipedia.org/wiki/Directed_acyclic_graph
Pengantar Apache Airflow dengan Python

DAG di Airflow

Di Airflow, DAG:

  • Ditulis dalam Python (dapat memakai komponen dari bahasa lain).
  • Terdiri dari komponen (biasanya task) untuk dieksekusi, seperti operator, sensor, dll.
  • Memuat dependensi yang didefinisikan eksplisit atau implisit.
    • Mis., salin file ke server sebelum mengimpor ke layanan database.
Pengantar Apache Airflow dengan Python

Mendefinisikan DAG

Contoh DAG:

from airflow import DAG

from datetime import datetime default_arguments = { 'owner': 'jdoe', 'email': '[email protected]', 'start_date': datetime(2020, 1, 20) }
with DAG('etl_workflow', default_args=default_arguments ) as etl_dag:
Pengantar Apache Airflow dengan Python

Mendefinisikan DAG (sebelum Airflow 2.x)

Contoh DAG:

from airflow import DAG

from datetime import datetime default_arguments = { 'owner': 'jdoe', 'email': '[email protected]', 'start_date': datetime(2020, 1, 20) }
etl_dag = DAG('etl_workflow', default_args=default_arguments )
Pengantar Apache Airflow dengan Python

DAG di command line

Menggunakan airflow:

  • Program baris perintah airflow punya banyak subperintah.
  • airflow -h untuk deskripsi.
  • Banyak yang terkait DAG.
  • airflow dags list menampilkan semua DAG yang dikenali.
Pengantar Apache Airflow dengan Python

Command line vs Python

Gunakan command line untuk:

  • Menjalankan proses Airflow
  • Menjalankan DAG/Tugas secara manual
  • Mengambil info log dari Airflow

Gunakan Python untuk:

  • Membuat DAG
  • Mengubah properti DAG
Pengantar Apache Airflow dengan Python

Ayo berlatih!

Pengantar Apache Airflow dengan Python

Preparing Video For Download...