← Back to list

Batch mi Streaming mi? Gerçek Hayat Projelerinden Çarpıcı Örneklerle Veri İşleme Düellosu

Önce büyük resim

Murat Demirbaş · 2026-02-05 13:16 · 0 claps · 4.5 min read
#etl #elt-pipeline #batch #batch-processing #streaming
Open on Medium ↗
Wiki topics: 🔧 · Data Engineering 🎬 · Film & Television

Batch mi Streaming mi? Gerçek Hayat Projelerinden Çarpıcı Örneklerle Veri İşleme Düellosu

Önce büyük resim

ETL / ELT ne yapıyor?

Veriyi bir yerden alıyoruz → işliyoruz → başka bir yere koyuyoruz.

  • Extract: Kaynaktan al (DB, API, log, sensor vs.)
  • Transform: Temizle, dönüştür, zenginleştir
  • Load: Data warehouse / lake’e yaz

👉 ETL: Transform önce, sonra load 👉 ELT: Load önce, sonra transform (Snowflake, BigQuery tarzı sistemlerde yaygın)

Batch vs Streaming bu akışın nasıl ve ne zaman çalıştığı ile ilgili.

Batch Processing

  • Tanım: Veriler belirli aralıklarla (örneğin saatlik, günlük) toplanır ve topluca işlenir.
  • Örnek: Banka gün sonunda tüm işlemleri toplar, raporları gece çalıştırır.

**Mantık: **“Veri biriksin, sonra topluca işleyeyim.”

Nasıl çalışır?

  • Veriler belli bir süre toplanır (ör: 1 saat, 1 gün)
  • Zamanı gelince job çalışır
  • O ana kadarki tüm veriyi işler

Çamaşır makinesi gibi:

  • Kirli çamaşırları biriktirirsin
  • Makineyi çalıştırırsın
  • Hepsi biter, tertemiz çıkar

Avantajlar:

  • Büyük veri setlerini işlemek için uygundur.
  • Daha basit mimari.
  • Hata ayıklaması kolaydır.

Dezavantajlar:

  • Gerçek zamanlı değil, gecikme vardır.
  • Anlık karar verme gereken senaryolara uygun değildir.

🎯 Gerçek Hayat Batch Processing Örneği: Banka Gün Sonu Mutabakatı

  • Senaryo: Bir banka gün boyunca binlerce işlem yapar (havale, EFT, kredi kartı harcamaları).
  • İhtiyaç: Gün sonunda tüm bu işlemler topluca işlenir, raporlanır ve muhasebe sistemine aktarılır.
  • Batch mantığı: Veriler biriktirilir → gece topluca işlenir → sonuçlar raporlanır.
  • Avantaj: Hata ayıklaması kolaydır, performans açısından daha verimlidir çünkü sistem yoğun saatlerde yüklenmez.

💻 Kod Örneği (Python + Pandas)

import pandas as pd

# Gün boyunca toplanan işlemler (örnek CSV dosyası)
transactions = pd.read_csv("daily_transactions.csv")

# Toplam işlem tutarı
total_amount = transactions["amount"].sum()

# İşlem tipine göre gruplama
summary = transactions.groupby("transaction_type")["amount"].sum()

# Raporu kaydet
summary.to_csv("end_of_day_report.csv")

print("Gün sonu raporu oluşturuldu!")

Bu kod, gün boyunca toplanan işlemleri batch olarak işler ve gün sonu raporu üretir.

⚙️ Batch Processing’in Teknik Temelleri

Veri Toplama (Ingestion): Veriler genellikle dosya sistemlerinden (CSV, JSON, Parquet), veri tabanlarından (SQL, NoSQL) veya log dosyalarından topluca alınır. → Örnek: Bir gün boyunca oluşan tüm transactions.csv dosyaları gece alınır.

İşleme (Processing): Veriler topluca işlenir. Bu aşamada ETL/ELT mantığı devreye girer:

  • Extract: Kaynaktan veriyi çekmek.
  • Transform: Temizleme, filtreleme, gruplama, join işlemleri.
  • Load: Veri ambarına veya raporlama sistemine yüklemek.

Zamanlama (Scheduling): Batch işlemler genellikle cron job, Airflow DAG veya benzeri orkestrasyon araçlarıyla belirli aralıklarla tetiklenir.

→ Örnek: “Her gece saat 02:00’de çalıştır.”

Performans: Büyük veri setleri için Spark, Hadoop MapReduce gibi dağıtık sistemler kullanılır.

→ Tek makinede Pandas yeterliyken, petabyte ölçeğinde Spark tercih edilir.

Streaming Processing

  • Tanım: Veriler sisteme geldikleri anda işlenir, sürekli akış halinde çalışır.
  • Örnek: Netflix’in izleme verilerini anlık olarak analiz edip öneri sistemini güncellemesi.

**Mantık: **“Veri geldiği anda işle.”

Nasıl çalışır?

  • Veri event event gelir
  • Sistem sürekli çalışır
  • Milisaniyeler / saniyeler içinde işlenir

Duş gibi:

  • Su geldikçe akıyor
  • Bekleme yok
  • Anında tepki

Avantajlar:

  • Gerçek zamanlı analiz ve tepki.
  • Anlık karar verme gereken senaryolarda kritik (fraud detection, IoT sensörleri).

Dezavantajlar:

  • Daha karmaşık mimari
  • Sürekli işlem gücü ve kaynak gerektirir.
  • Hata yönetimi daha zordur.

⚡ Gerçek Hayat Streaming Processing Örneği:

  • Senaryo: Bir banka veya e-ticaret sitesi, kullanıcıların yaptığı işlemleri anlık olarak izler.
  • İhtiyaç: Şüpheli bir işlem gerçekleştiğinde (örneğin aynı kartla 2 dakika içinde farklı ülkelerde alışveriş), sistem bunu anında fark edip alarm üretmelidir.
  • Streaming mantığı: Veriler akış halinde gelir → anında işlenir → karar verilir.
  • Avantaj: Dolandırıcılık gibi kritik durumlarda gecikme olmadan müdahale edilebilir.

💻 Kod Örneği (Python + Kafka + Spark Streaming)

from pyspark.sql import SparkSession
from pyspark.sql.functions import col

# Spark Streaming başlat
spark = SparkSession.builder.appName("FraudDetection").getOrCreate()

# Kafka'dan veri oku
transactions = spark \
    .readStream \
    .format("kafka") \
    .option("kafka.bootstrap.servers", "localhost:9092") \
    .option("subscribe", "transactions") \
    .load()

# JSON verisini parse et
transactions_df = transactions.selectExpr("CAST(value AS STRING)")

# Basit fraud kuralı: 10000 TL üzeri işlemleri işaretle
suspicious = transactions_df.filter(col("amount") > 10000)

# Anlık olarak konsola yaz
query = suspicious.writeStream \
    .outputMode("append") \
    .format("console") \
    .start()

query.awaitTermination()

Bu kod, Kafka’dan gelen işlemleri streaming olarak işler ve belirli kurallara uyanları anında işaretler.

🛒 E-Ticaret Örneği: Batch vs Streaming

Batch Senaryosu: Günlük Satış Raporu

Durum: Bir e-ticaret sitesi gün boyunca binlerce sipariş alır.

Çözüm: Gün sonunda tüm siparişler topluca işlenir, raporlanır ve yönetime sunulur.

Teknik:

  • Veriler gün boyunca log dosyalarında veya veri tabanında birikir.
  • Gece Airflow DAG çalışır, ETL süreci verileri temizler ve veri ambarına yükler.
  • BI araçları (Power BI, Tableau) rapor üretir.

Avantaj: Yönetim için özet raporlar hazırdır, performans açısından verimli.

Dezavantaj: Anlık stok veya kampanya takibi yapılamaz.

Streaming Senaryosu: Anlık Stok Takibi

Durum: Aynı e-ticaret sitesi, kampanya sırasında ürün stoklarını anlık takip etmek ister.

Çözüm: Sipariş verildiği anda stok güncellenir, tükenen ürünler anında sistemden kaldırılır.

Teknik:

  • Sipariş verisi Kafka üzerinden akışa girer.
  • Spark Streaming veya Flink stok tablosunu günceller.
  • Kullanıcıya “stok tükendi” mesajı anında gösterilir.

Avantaj: Gerçek zamanlı müşteri deneyimi.

Dezavantaj: Daha karmaşık mimari, sürekli kaynak tüketimi.

| Özellik        | Batch         | Streaming      |
| -------------- | ------------- | -------------- |
| Çalışma şekli  | Zamanlanmış   | Sürekli        |
| Veri gecikmesi | Dakika–saat   | Saniye–ms      |
| Karmaşıklık    | Düşük         | Yüksek         |
| Maliyet        | Daha ucuz     | Daha pahalı    |
| Kullanım alanı | Raporlama, BI | Anlık kararlar |

🎬 Kapanış: “Batch mi Streaming mi? Karar Senin!”

Veri dünyasında tek bir doğru yok.

  • Batch → Büyük veri setlerini topluca işlemek, raporlamak, geçmişe dönük analiz yapmak için ideal.
  • Streaming → Anlık kararlar, gerçek zamanlı deneyimler ve kritik sistemler için vazgeçilmez.

Bugün bankaların gün sonu mutabakatından e-ticaretin anlık stok takibine kadar örneklerle gördük ki, her yaklaşımın kendine özgü güçlü ve zayıf yanları var.

Yazım burada sona eriyor. Eğer eklemek istediğiniz bir şeyler ya da düzeltilmesi gereken bir hata olduğunu düşünüyorsanız, benimle iletişime geçmekten çekinmeyin.


메타데이터
post_id
9405ffefe2ad
slug
batch-mi-streaming-mi-gerçek-hayat-projelerinden-çarpıcı-örneklerle-veri-i̇şleme-düellosu-9405ffefe2ad
url
https://medium.com/@yyffgzct/batch-mi-streaming-mi-ger%C3%A7ek-hayat-projelerinden-%C3%A7arp%C4%B1c%C4%B1-%C3%B6rneklerle-veri-i%CC%87%C5%9Fleme-d%C3%BCellosu-9405ffefe2ad
canonical_url
https://medium.com/@yyffgzct/batch-mi-streaming-mi-ger%C3%A7ek-hayat-projelerinden-%C3%A7arp%C4%B1c%C4%B1-%C3%B6rneklerle-veri-i%CC%87%C5%9Fleme-d%C3%BCellosu-9405ffefe2ad
author_url
https://medium.com/@yyffgzct
status
ok
fetched_at
2026-06-22 17:31:34