Airflow temel kavramları

Airflow ile Veri İş Hatları Oluşturma

Volker Janz

Senior Developer Advocate at Astronomer

Eğitmeninle tanış

  Volker Janz profil fotoğrafı

$$

Volker Janz

$$

  • Senior Developer Advocate, Astronomer
  • Oyunda veri mühendisi olarak 14+ yıl
  • Airflow ile 1.x sürümünden beri çalışıyor
  • Data Engineer Things'te konuşmacı, mentor ve bülten sorumlusu
Airflow ile Veri İş Hatları Oluşturma

Neler geliştireceksin

 

  • TaskFlow API ile Dag'ler yaz
  • Görev eşleme ve varlık tabanlı zamanlamayla dinamik iş akışları kur
  • Yeniden denemeler ve geri çağrılar ile hataları yönet
  • Airflow üzerinden SQL iş yükleri çalıştır

Her bölüm içeriğinin görselleştirmesi

Airflow ile Veri İş Hatları Oluşturma

Başlamadan önce

 

$$

  • Dag'ler, görevler ve operatörlerle rahat ol
  • Zamanlama temellerine aşina ol

Airflow'a Giriş - kurs sayfası

Airflow ile Veri İş Hatları Oluşturma

Hızlı hatırlatma

from airflow.sdk import dag, task

@dag
def star_wars_dag():


@task def get_star_wars_person(): import requests return requests.get("https://swapi.dev/api/people/1/").json()
@task.bash def print_name(person): return f"echo '{person['name']}'"
person = get_star_wars_person() print_name(person) star_wars_dag()
  • Dag, bağımlılıkları olan görevlerin bir koleksiyonudur
  • Görevler, işi parçalara böler
  • Operatörler/dekoratörler, her görevin ne yaptığını tanımlar
  • Bağımlılıklar, yürütme sırasını belirler

$$

Basit Dag

Airflow ile Veri İş Hatları Oluşturma

Airflow mimarisi

$$

Airflow 3 mimarisi

 

$$

  • Orkestrasyon: Scheduler, Dag Processor
  • Yürütme: Worker, Triggerer
  • Arayüz ve Depolama: API Server, Metadata DB
Airflow ile Veri İş Hatları Oluşturma

Zamanlama yaklaşımları

# Otomatik çalıştırma yok: elle tetikle (varsayılan)
@dag(schedule=None)
def my_pipeline(): ...

# Zaman tabanlı: her gün sabah 6'da çalışır @dag(schedule="0 6 * * *") def daily_pipeline(): ...
# Veri farkındalıklı: bir Asset güncellenince çalışır @dag(schedule=[Asset("my_asset")]) def downstream_pipeline(): ...
Airflow ile Veri İş Hatları Oluşturma

Dag yazmanın iki yolu

Klasik operatörler

extract = PythonOperator(
    task_id="extract",
    python_callable=extract_fn)
extract >> transform
  • Dekoratör yoksa tercih et

TaskFlow API

@task
def extract():
    return {"users": 150}

data = extract()
transform(data)
  • Basit Python dekoratörleri
  • Daha az şablon kodu
  • Klasik operatörlerle birlikte kullanılabilir
Airflow ile Veri İş Hatları Oluşturma

Bu kurstaki egzersizler

$$

IDE egzersizi ekran görüntüsü

 

  • IDE egzersizleri: gerçek .py dosyalarını düzenle
  • "Run this file"'a tıkla veya python3 filename.py kullan
  • dag.test() tüm Dag'i tek işlemde çalıştırır
Airflow ile Veri İş Hatları Oluşturma

Hadi pratik yapalım!

Airflow ile Veri İş Hatları Oluşturma

Preparing Video For Download...