Airflow DAG’leri

Python ile Apache Airflow'a Giriş

Mike Metzger

Data Engineer

DAG nedir?

DAG, yani Directed Acyclic Graph:

  • Directed: Bileşenler arası bağımlılıkları gösteren yönlü akış vardır.
  • Acyclic: Döngü/cycle/tekrar yoktur.
  • Graph: Bileşenlerin kendisidir.
  • Airflow, Apache Spark, dbt’de görülür

DAG

1 https://en.m.wikipedia.org/wiki/Directed_acyclic_graph
Python ile Apache Airflow'a Giriş

Airflow’da DAG

Airflow içinde, DAG’lar:

  • Python ile yazılır (ancak başka dillerde yazılmış bileşenleri kullanabilir).
  • Yürütülecek bileşenlerden (genelde task’ler) oluşur; ör. operatorler, sensörler vb.
  • Açıkça ya da örtük olarak tanımlı bağımlılıklar içerir.
    • Örn. dosyayı veritabanına aktarmadan önce sunucuya kopyalayın.
Python ile Apache Airflow'a Giriş

Bir DAG tanımlayın

Örnek 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:
Python ile Apache Airflow'a Giriş

Airflow 2.x öncesi DAG tanımı

Örnek 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 )
Python ile Apache Airflow'a Giriş

Komut satırında DAG’lar

airflow kullanımı:

  • airflow komut satırı aracı birçok alt komut içerir.
  • Açıklamalar için airflow -h.
  • Birçoğu DAG’larla ilgilidir.
  • Tüm tanınan DAG’ları görmek için airflow dags list.
Python ile Apache Airflow'a Giriş

Komut satırı vs Python

Komut satırı aracı ile:

  • Airflow süreçlerini başlatın
  • DAG’ları / Görevleri elle çalıştırın
  • Airflow’dan günlük (log) bilgisi alın

Python ile:

  • Bir DAG oluşturun
  • Bir DAG’ın özelliklerini düzenleyin
Python ile Apache Airflow'a Giriş

Hadi pratik yapalım!

Python ile Apache Airflow'a Giriş

Preparing Video For Download...