Streaming vs Batch Processing — Data Engineering

Streaming vs Batch Processing Dua paradigma utama dalam memproses data. Pilihan antara keduanya tergantung pada seberapa cepat data harus tersedia setelah terja

Streaming vs Batch Processing

Dua paradigma utama dalam memproses data. Pilihan antara keduanya tergantung pada seberapa cepat data harus tersedia setelah terjadi.

Batch Processing

Data diproses dalam kelompok besar secara berkala (per jam, per hari). Mayoritas data pipeline menggunakan pendekatan ini.

# Batch: proses semua order kemarin
# Dijalankan oleh scheduler (Airflow) setiap jam 2 pagi

def daily_revenue_batch():
    yesterday = date.today() - timedelta(days=1)

    # Extract: ambil semua order kemarin
    orders = db.query("""
        SELECT * FROM orders
        WHERE DATE(created_at) = %s
    """, [yesterday])

    # Transform & Load
    revenue = calculate_revenue(orders)
    db.insert("daily_revenue", revenue)

# Kelebihan batch:
# ✓ Sederhana, mudah di-debug
# ✓ Efisien untuk data volume besar
# ✓ Retry mudah (proses ulang satu batch)
# ✓ Cost-effective

Stream Processing

Data diproses segera setelah terjadi (real-time atau near real-time). Latency dalam hitungan detik atau milidetik.

# Stream: proses setiap order saat terjadi
from kafka import KafkaConsumer
import json

consumer = KafkaConsumer(
    "order-events",
    bootstrap_servers=["kafka:9092"],
    value_deserializer=lambda m: json.loads(m)
)

for message in consumer:
    order = message.value

    # Proses segera
    update_realtime_dashboard(order)
    check_fraud_detection(order)
    send_notification(order)

# Kelebihan streaming:
# ✓ Data tersedia dalam detik
# ✓ Cocok untuk alerting & monitoring
# ✓ React ke event secara real-time

Perbandingan

AspekBatchStreaming
LatencyMenit sampai jamMilidetik sampai detik
KompleksitasRendahTinggi
Use caseDaily reports, ETL, ML trainingFraud detection, live dashboard, alerting
ToolsAirflow, dbt, Spark batchKafka, Flink, Spark Streaming
Error handlingRerun batchDead letter queue, replay
CostLebih murahLebih mahal (always-on infra)

Lambda & Kappa Architecture

Yang akan kamu pelajari