ETL mi, ELT mi? Nereyi ne zaman?
ETL vs ELT
Bu derste neler öğreneceksin
- ETL ve ELT farkını aşçı analojisiyle açıklar
- Bulut çağında neden ELT tercih edildiğini bilir
- GCS den BigQuery ye basit bir ELT yazar
Aşçı Analojisi: ETL vs ELT
Bir mutfak düşün. Müşteri sipariş veriyor: “Limonata, buzlu, nane ile.” Aşçının iki yolu var:
ETL (Extract → Transform → Load): Aşçı önce mutfakta limonatayı yapar, bardakları doldurur, nane ekler, sonra servis tabağına koyar. Yani veriyi önce dönüştürür, sonra hedefe yazar.
ELT (Extract → Load → Transform): Aşçı önce bütün malzemeyi büyük bir kaba koyar (limon, su, şeker, nane). Sonra müşteri istediğinde hızlıca bardak hazırlar. Yani ham veriyi önce hedefe yazar, dönüşümü içeride yapar.
Hangisi daha iyi? Duruma göre. Ama bugün bulut çağında (BigQuery gibi dev depolarda) ELT daha popüler. Nedeni basit: depolama ucuz, hesaplama hızlı. Veriyi ham sakla, ihtiyaç olunca dönüştür.
Hangi Yolu Seçmeli?
| Durum | Tercih | Neden |
|---|---|---|
| Küçük veri, hızlı rapor | ETL | Dönüşüm hafif, ekstra depolama gereksiz |
| Büyük veri, esnek analiz | ELT | Ham veri her soruya cevap verebilir |
| Sıkı düzenleyici kurallar | ETL | Veri hedefe yazılmadan önce temizlenmiş olmalı |
| Veri bilimi keşfi | ELT | Ham veri daha zengin, keşif kolaylaşır |
İlk ELT Akışımız: GCS → BigQuery
Limoncuk dükkanımız için düşün: Instagram siparişleri bir dosyaya düşüyor (gs://lemonade-orders/2026-06-19.csv). Biz bu dosyayı BigQuery’ye yüklemek istiyoruz, ham haliyle. Kestra’da şöyle yazıyoruz:
id: orders_to_bigquery
namespace: lemonade
tasks:
- id: load_to_bq
type: io.kestra.plugin.gcp.bigquery.Load
from: gs://lemonade-orders/{{ trigger.date }}.csv
destinationTable: lemonade.daily_orders
writeDisposition: WRITE_APPEND
format: CSV
Bir görev, iki parametre: dosya nereden, nereye yazılacak. Çalıştır, 30 saniyede tablona ulaştı.
Maliyet ve Hız
ETL’de dönüşüm kendi makinanda olur — elektrik/SSD masrafı senin. ELT’de dönüşüm BigQuery’de olur, sorgu başına ücretlendirilirsin. Az sorgu çalıştırıyorsan ETL ucuz. Çok sorgu + esneklik istiyorsan ELT ucuz. Pratikte startup’lar %80 ELT kullanıyor.
Bugün Yaptık
- ETL ve ELT’yi aşçı analojisiyle karşılaştırdık
- Bulut çağında neden ELT’in tercih edildiğini öğrendik
- GCS’ten BigQuery’ye basit bir yükleme akışı yazdık
Ellerini Kirlet
- Bir önceki dersteki Kestra paneline git.
- Yukarıdaki YAML’ı
orders_to_bigqueryadıyla ekle. trigger.dateyerine elle bir tarih yaz (henüz schedule yok), çalıştır.- BigQuery konsolunda tablonun oluştuğunu gör.