Data Pipeline (Veri Hattı)

Ham veriyi kaynaktan model eğitimi veya çıkarımına hazır hale getiren otomatik işleme ve dönüşüm süreci zinciri.

Veri Hattı (Data Pipeline), ham verinin kaynaktan hedefe taşınırken dönüştürüldüğü, işlendiği ve temizlendiği otomatik süreçler zinciridir. Makine öğrenimi ve MLOps bağlamında veri hattı, modelin eğitim veya çıkarım için ihtiyaç duyduğu özellik vektörlerini üretmek amacıyla birden fazla veri kaynağını birleştiren, standardize eden ve dağıtan sistematik altyapıdır. Geleneksel veri mühendisliğinde ETL (Extract-Transform-Load) mimarisi standarttır: farklı kaynaklardan veri çekilir (extract), iş kurallarına göre dönüştürülür (transform) ve hedef depolara yüklenir (load). Modern yapay zeka uygulamalarında bu mimari ELT (önce yükle sonra dönüştür) veya streaming (akış) modeline evrilmektedir: büyük veri hacimleri önce ham olarak veri gölüne (data lake) aktarılır, ardından talep bazlı dönüşüm uygulanır. Makine öğrenimi veri hattının kritik bileşenleri şunlardır: **Veri alımı (ingestion)** farklı kaynaklardan (veritabanı, API, dosya sistemi, Kafka) veriyi toplar. **Veri doğrulama (validation)** şema uyumluluğunu, eksik değerleri ve istatistiksel anomalileri tespit eder — Great Expectations kütüphanesi bu aşamada yaygındır. **Özellik mühendisliği (feature engineering)** ham veriyi modelin anlayacağı sayısal özelliklere dönüştürür. **Özellik deposu (feature store)** üretilen özellikleri hem eğitim hem çıkarım için tutarlı biçimde saklar. Veri hattının üretim ortamındaki en büyük zorluğu tutarlılık (consistency) ve çoğaltılabilirlik (reproducibility) gerektirmesidir. Eğitim sırasında kullanılan ön işleme adımları, çıkarım (inference) sırasında birebir aynı şekilde uygulanmazsa "eğitim-servis çarpışması" (training-serving skew) ortaya çıkar: model geliştirme ortamında iyi çalışır ama üretimde başarısız olur. Apache Airflow, Prefect ve Dagster gibi iş akışı orkestratörleri karmaşık veri hattı bağımlılıklarını yönetir; her adımı DAG (Yönlü Asiklik Graf) olarak tanımlar ve başarısız adımları otomatik yeniden dener. Spark ve Flink büyük ölçekli paralel veri işleme için, Kafka gerçek zamanlı akış için kullanılır. MLflow ve DVC ile birlikte bu araçlar modern MLOps altyapısının temelini oluşturur.

ETL vs ELT vs Streaming Mimarileri

ETL (Extract-Transform-Load): veriyi kaynaktan çek, iş kurallarıyla dönüştür, hedef veri ambarına yükle. Klasik kurumsal yaklaşım; dönüşüm mantığı merkezi ve belirlidir. ELT (Extract-Load-Transform): ham veriyi önce veri gölüne yükle, dönüşümleri talep bazlı uygula. Büyük ölçekli makine öğrenimi projelerinde tercih edilir; esneklik sağlar. Streaming (Akış): Kafka veya Kinesis üzerinden gerçek zamanlı veri işleme; gecikmesi 10ms-1sn düzeyinde. Online öğrenme ve gerçek zamanlı öneri sistemleri için gerekli.

ML Veri Hattının Kritik Bileşenleri

Veri alımı: SQL veritabanı, API, CSV/Parquet dosya, mesaj kuyruğu. Veri doğrulama: Great Expectations ile şema, null oranı, dağılım kontrolü. Özellik mühendisliği: normalizasyon, encoding, embedding üretimi. Özellik deposu (Feature Store): Feast, Tecton veya Hopsworks — eğitim/çıkarım tutarlılığı için kritik. Veri sürümleme: DVC ile hangi veri sürümünün hangi modeli eğittiği izlenir. İzleme: veri kalitesi metrikleri, veri drifti alarmları, boru hattı gecikme grafikleri.

Training-Serving Skew: En Büyük Üretim Riski

Eğitim sırasında uygulanan ön işleme (normalizasyon parametreleri, kategorik encoding haritaları, eksik değer stratejileri) çıkarım zamanında birebir aynı şekilde uygulanmazsa model başarısız olur. Bu 'eğitim-servis çarpışması' (training-serving skew), üretim ML sorunlarının en yaygın kaynağıdır. Çözüm: özellik hesaplamayı tek Python/Java fonksiyonuna koy ve her iki ortamda aynı kodu çalıştır. Feature store bu problemi merkezi özellik hesaplamasıyla çözer.

Orkestrasyon Araçları: Airflow, Prefect, Dagster

Apache Airflow: DAG (Yönlü Asiklik Graf) tabanlı, Python ile tanımlanır; cron tetikleyici, yeniden deneme, bağımlılık yönetimi. En yaygın kullanılan ama kurulum karmaşık. Prefect: Airflow'dan daha Pythonic; dekoratör tabanlı (@task, @flow); bulut yönetilen seçenek mevcut. Dagster: varlık odaklı (asset-based) yaklaşım; veri varlıklarını ve bağımlılıklarını birinci sınıf nesne olarak tanımlar; ML için güçlü. Küçük projeler: Makefile veya Python cronjob yeterli olabilir.

Modern Veri Hattı Araçları

Apache Airflow

Python tabanlı iş akışı orkestratörü; DAG tanımı, zamanlama, izleme ve yeniden deneme politikalarıyla endüstri standardı.

dbt (Data Build Tool)

Dönüşüm katmanını SQL ile yönetir; sürüm kontrolü, test, lineage dokümantasyonu ve modüler paketlerle analitik mühendisliği standardize eder.

Apache Kafka + Flink

Gerçek zamanlı akış hattı; Kafka mesaj kuyruğu ile Flink durum makineli akış işleme kombinasyonu yüksek verimli olay güdümlü mimariler için.

Prefect / Dagster

Modern Python-first orkestratörler; dinamik iş akışı oluşturma, gözlemlenebilirlik ve varlık odaklı veri hattı yönetimi.

Sık Sorulan Sorular

  • check_circle Data pipeline ile ETL arasındaki fark nedir? ETL belirli bir veri dönüşüm mimarisidir (çıkar-dönüştür-yükle). Data pipeline daha geniş bir kavramdır: ETL, ELT veya streaming dahil veriyi kaynaktan hedefe taşıyan her türlü otomatik süreç zinciridir.
  • check_circle Training-serving skew neden oluşur? Eğitimde kullanılan ön işleme adımları (örn. standart sapma ile normalizasyon) üretimde farklı parametrelerle uygulanırsa model hatalı tahmin üretir. Feature store veya ortak kütüphane kullanımı bu riski ortadan kaldırır.
  • check_circle Küçük bir ML projesi için hangi orkestrasyon aracı uygun? Başlangıç için Prefect veya basit Python cronjob yeterlidir. Ekip büyüdükça Airflow veya Dagster'a geçiş yapılabilir. Kubernetes kullanıyorsanız Argo Workflows değerlendirilebilir.
  • check_circle Feature store ne zaman gerekli? Birden fazla model aynı özellikleri kullanıyorsa, eğitim-servis tutarlılığı kritikse veya özellik hesaplama maliyetliyse feature store ciddi değer sağlar. Feast açık kaynak ve başlangıç için iyi seçimdir.
  • check_circle Veri doğrulama neden otomatikleştirilmeli? Manuel kontrol ölçeklenmez; üretimde günlük milyonlarca satır veri gelir. Great Expectations veya Pandera ile otomatik şema ve istatistik kontrolü, kötü verinin modele ulaşmadan tespit edilmesini sağlar.
  • check_circle Batch pipeline ile streaming pipeline farkı nedir? Batch: belirli aralıklarla büyük veri yığınları işlenir (dakika-saat gecikmesi); basit ve maliyeti düşük. Streaming: veri gelir gelmez işlenir (milisaniye-saniye gecikme); Kafka/Flink gerektirir; karmaşık ama gerçek zamanlı kararlar için zorunlu.