Modül 8 · Toplu İşleme (Batch) · ⏱ 6 dk

Bulutta Spark: Dataproc vs Colab

Spark in cloud

Bu derste neler öğreneceksin

  • Dataproc cluster oluşturur
  • GCS Dataproc BigQuery pipeline kurar
  • Colab ücretsiz tier ile sınır testi yapar

Elif’in Yeni Sorunu: Veri Bilgisayara Sığmıyor

Elif artık 3 şube değil, 30 şube. Günde 50.000 sipariş geliyor. Tüm veriyi kendi laptopunda toplamaya çalışınca disk “Yeterli alan yok!” diye bağırıyor. Bilgisayarı da fanı son sürat çalıştırıyor.

Elif’in iki seçeneği var:

  1. Colab: Google’ın ücretsiz verdiği sanal bilgisayar (kısmen ücretsiz).
  2. Dataproc: Google’ın Spark için kurduğu özel mutfak (ücretli ama güçlü).

Bugün ikisini de tanıyacağız, sonra “hangisini ne zaman seçeriz” sorusunu cevaplayacağız.

Seçenek 1: Google Colab

Colab, Google’ın tarayıcıdan açtığın ücretsiz bir Jupyter defteri. Birisi uzak bilgisayar sana tahsis ediyor, sen Python kodu yazıyorsun, o çalıştırıyor.

Avantajları:

  • Sıfır kurulum. Tarayıcıdan aç, kod yaz, çalıştır.
  • Ücretsiz GPU bile var (yapay zeka için).
  • Spark kütüphanesi pip install pyspark ile hazır.

Dezavantajları:

  • Ücretsiz katman sınırlı: günde 12 saat, ara sıra düşüyor, GPU kuyruğa alınabiliyor.
  • Veriler geçici diske yazılıyor — kapatınca gidebilir (Drive’a bağlamazsan).
  • Çok büyük veri (terabaytlar) için yavaş.

Colab’da Spark açmak için:

# Colab defterine yapıştır
!pip install pyspark

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("elif-notebook").getOrCreate()

# Veriyi oku
df = spark.read.csv("ornek.csv", header=True)
df.show(5)

Üst satırdaki ! Colab’a “bu bir terminal komutu” diyor. Normalde terminalde yazarsın, Colab’da başına ! koyarsın.

Seçenek 2: Dataproc (Gerçek Mutfak)

Dataproc, Google Cloud’un Spark için optimize ettiği bir cluster hizmeti. Sen sadece “şu kadar makine aç, şu kadar şu makineden aç” diyorsun, Google hepsini ayağa kaldırıyor.

Avantajları:

  • Bir düğmeyle 10, 50, hatta 1000 makine açabilirsin.
  • Veriler GCS (Google Cloud Storage) üzerinde — terabayt olsa rahat.
  • İş bitince makineleri kapatırsın, saniye başına ücret ödersin.
  • BigQuery ile direkt konuşur (bir sonraki bölüm).

Dezavantajları:

  • Ücretli (küçük cluster için ayda 50-200 TL, büyük olan 1000+ TL).
  • Kurulumu öğrenmek zaman alıyor.

Dataproc cluster açmak için (Google Cloud Shell’de):

# 3 makine aç: 1 şef + 2 aşçı
gcloud dataproc clusters create elif-mutfak \
  --region=europe-west1 \
  --zone=europe-west1-b \
  --master-machine-type=n1-standard-2 \
  --worker-machine-type=n1-standard-2 \
  --num-workers=2 \
  --image-version=2.1-debian11

2 dakika sonra cluster hazır. Şimdi Spark işi gönder:

gcloud dataproc jobs submit pyspark \
  --cluster=elif-mutfak \
  --region=europe-west1 \
  gs://benim-bucket/im.py

gs://benim-bucket/im.py GCS’teki (Google Cloud Storage) Python dosyası. Cluster o dosyayı indirip çalıştırıyor.

GCS → Dataproc → BigQuery: Üçlü Takım

Elif’in tam veri hattı şöyle:

[Instagram siparişleri] 
        ↓ her saat bir JSON dosyası düşüyor
   [GCS: gs://elif-data/raw/2026/06/19/siparis.json]
        ↓ Dataproc her gece 03:00'te okuyor
   [Dataproc: temizle, zenginleştir, özetle]
        ↓ yaz
   [BigQuery: elif_report.satis_ozet]
        ↓ sabah patron açıyor
   [Looker Studio dashboard'u]

Bunu Elif için parça parça kuralım.

Adım 1: Veriyi GCS’e Yükle

# Yerel dosyayı buluta kopyala
gsutil cp siparis_2026_06_19.csv gs://elif-data/raw/

Adım 2: Dataproc ile Oku ve Dönüştür

# gs://elif-data/jobs/rapor.py  (Dataproc'un çalıştıracağı dosya)
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, to_date, sum as _sum

spark = SparkSession.builder.appName("gece-raporu").getOrCreate()

# 1) GCS'ten oku
df = spark.read.csv("gs://elif-data/raw/siparis_*.csv", header=True, inferSchema=True)

# 2) Temizle: negatif fiyatları at
df = df.filter(col("fiyat") > 0)

# 3) Özetle
rapor = (
    df.groupBy("icecek")
    .agg(
        _sum("fiyat").alias("toplam_gelir"),
    )
)

# 4) BigQuery'ye yaz
rapor.write.format("bigquery") \
    .option("table", "elif_report.satis_ozet") \
    .save()

Adım 3: Her Gece Otomatik Çalıştır

Bunu Cloud Scheduler + Dataproc ile zamanlayabilirsin. Bu kursun ileriki derslerinde detaylı göreceğiz. Şimdilik bil: “her gece 03:00’te bu iş çalışsın” demek birkaç tık.

Hangisini Ne Zaman Seçeriz?

DurumSeçim
Veri 1 GB’dan az, hızlı deneme istiyorumColab
Ödev / kişisel projeColab
Günde 100 GB+ veri işliyorumDataproc
İş saatleri dışında büyük raporDataproc
Bütçe kısıtlı, sadece bazen çalıştıracağımColab Pro (aylık 100 TL civarı)
Ekip birden çok kişi çalışacakDataproc

Colab’ın Ücretsiz Sınırı

Google Colab’ın ücretsiz katmanı cömert ama sınırsız değil. Deneyimler:

  • Sürekli GPU kullanırsan günde 4-6 saat sonra oturum düşebilir.
  • RAM 12 GB civarı. Çok büyük veri setini okuyamazsın.
  • Diske yazdıkların kapatınca gidebilir. Google Drive’a bağlamazsan kaybedersin.

Bu yüzden ciddi iş için Dataproc (veya kendi laptopunun pahalı donanımı). Colab daha çok “öğren ve dene” için.

Özet

Bugün öğrendik:

  • Colab, tarayıcıdan ücretsiz Python çalıştırma yeri. Küçük veri ve ödev için ideal.
  • Dataproc, Spark için optimize edilmiş ücretli cluster. Büyük veri ve üretim için.
  • GCS → Dataproc → BigQuery üçlüsü tipik bir bulut veri hattı.
  • Ücretsiz tier ile başla, büyüdükçe ücretliye terfi et.

Küçük Ödev

  1. Google Colab’da yeni bir defter aç, pip install pyspark yaz, basit bir tablo oluştur.
  2. Bir cümle yaz: “Kendi limonatacı projemde Colab mı Dataproc mu seçerdim, neden?”
  3. (İsteğe bağlı) GCP ücretsiz kredi hesabın varsa (öğrenciysen 300$ veriyor) çok küçük bir Dataproc cluster aç. 2 dakika içinde hazır olacak.

Sıradaki

Toplu işlemeyi bitirdik. Bir sonraki modülde akan veri (streaming) var: Kafka ve Flink. Ama önce 32. derste “Streaming vs Batch” farkını öğreniyoruz →