Apache Airflow’a Giriş

Python ile Apache Airflow'a Giriş

Mike Metzger

Data Engineer

Veri mühendisliği nedir?

Veri mühendisliği şudur:

  • Veriye dair her eylemi güvenilir, tekrar edilebilir ve sürdürülebilir bir sürece dönüştürmek.
Python ile Apache Airflow'a Giriş

İş akışı nedir?

Bir iş akışı şudur:

  • Belirli bir veri mühendisliği görevini tamamlamak için adımlar dizisi
    • Örn.: dosya indirme, veri kopyalama, filtreleme, veritabanına yazma vb.
  • Farklı karmaşıklık düzeylerinde olabilir
  • Bağlama göre farklı anlamlar taşıyabilir

İş akışı örneği

Python ile Apache Airflow'a Giriş

Airflow nedir?

Airflow, iş akışlarını programlamaya yönelik bir platformdur; şunları kapsar:

  • Oluşturma
  • Zamanlama
  • İzleme

Airflow Logosu

Python ile Apache Airflow'a Giriş

Airflow devamı...

  • Her dilde programları çalıştırabilir, ancak iş akışları Python ile yazılır
  • İş akışlarını DAG (Directed Acyclic Graph) olarak uygular
  • Koda, komut satırına veya web arayüzü / REST API’ye erişilir

Airflow Logosu

1 https://airflow.apache.org/docs/stable/
Python ile Apache Airflow'a Giriş

Diğer iş akışı araçları

Diğer araçlar:

  • Luigi
  • SSIS
  • Bash betikleme

Luigi logosu

Bash logosu

SSIS logosu

Python ile Apache Airflow'a Giriş

DAG’lere hızlı giriş

Bir DAG, Directed Acyclic Graph’ın kısaltmasıdır.

  • Airflow’da, iş akışınızı oluşturan görevler kümesini ifade eder.
  • Görevler ve aralarındaki bağımlılıklardan oluşur.
  • Ad, başlangıç tarihi, sahip vb. ayrıntılarla oluşturulur.
  • Sonraki derste daha ayrıntı var.

DAG örneği

Python ile Apache Airflow'a Giriş

DAG kod örneği

Basit DAG tanımı:

etl_dag = DAG(
    dag_id='etl_pipeline',
    default_args={"start_date": "2024-01-08"}
)
Python ile Apache Airflow'a Giriş

Airflow’da bir iş akışı çalıştırma

Basit bir Airflow görevi çalıştırma

airflow tasks test <dag_id> <task_id> [execution_date]

Example-etl adlı bir DAG ve 2024-01-10 tarihinde download-file adlı görev kullanarak:

airflow tasks test example-etl download-file 2024-01-10
Python ile Apache Airflow'a Giriş

Hadi pratik yapalım!

Python ile Apache Airflow'a Giriş

Preparing Video For Download...