İş akışlarıyla üretim hatları

Databricks'te Spark SQL ile Veri Dönüştürme

Disha Mukherjee

Lead Data Engineer

Neden Delta Lake?

Düzenli veri tabloları ve koruyucu kalkanla güvenli, parlayan dijital kasa, modern düz stil

 

$$

  • ACID işlemleri → başarısız yazmaları geri alır
  • Şema zorlaması → uyuşmayan türleri engeller
  • Sürümleme → geçmiş herhangi bir durumu sorgula
Databricks'te Spark SQL ile Veri Dönüştürme

Delta'ya yazma

df_valid.write.format("delta") \
    .mode("overwrite") \
    .saveAsTable("transactions_clean")

print(f"Rows written: {df_valid.count():,}")
Rows written: 33,223

$$

$$

  • Unity Catalog'da yeni bir Delta tablosu görünür
Databricks'te Spark SQL ile Veri Dönüştürme

Notebook görevleri

task1_ingest: yükle ve temizle

  • CSV yükler → temizleme uygular → bir Delta tablosu yazar
Databricks'te Spark SQL ile Veri Dönüştürme

Notebook görevleri

task2_metrics: kategoriye göre gelir

  • Temizlenmiş tabloyu okur → metrikleri hesaplar → yeni bir tabloya yazar
Databricks'te Spark SQL ile Veri Dönüştürme

Notebook görevleri

task3_customers: harcamaya göre sırala

  • Temizlenmiş tabloyu okur → müşterileri sıralar → yeni bir tabloya kaydeder
Databricks'te Spark SQL ile Veri Dönüştürme

İşi oluşturma

Jobs ve Pipelines arayüzü: task1_ingest'ten task2_metrics'e, oradan task3_customers'a bağımlılık oklarıyla tamamlanmış üç görevli iş DAG'ı

  • Elle çalıştırabilir, işleri zamanlayabilir ve tetikleyiciler ayarlayabilirsin
Databricks'te Spark SQL ile Veri Dönüştürme

İşi çalıştırma

task1_ingest ve task2_metrics yeşil başarılı, task3_customers kırmızı başarısız iş çalıştırma DAG'ı

Databricks'te Spark SQL ile Veri Dönüştürme

İşi çalıştırma

Üçüncü görevde bir hatayı kontrol etme

  • Hata: customer-id Customer_ID olmalı
Databricks'te Spark SQL ile Veri Dönüştürme

İşi çalıştırma

Başarıyla grafik görünümleri

Zaman çizelgesi görünümü

Databricks'te Spark SQL ile Veri Dönüştürme

Lakeflow nedir?

$$

$$

karşılaştırma: Emredici (Jobs) | Bildirime dayalı (Lakeflow)

 

  • Jobs → her adımı biz yönetiriz
  • Lakeflow → tabloların ne içermesi gerektiğini bildiririz
  • Sıra, yeniden denemeler ve işlem gücünü Databricks yönetir
Databricks'te Spark SQL ile Veri Dönüştürme

@dlt.table deseni

@dlt.table(name="transactions_bronze")
def transactions_bronze():
    return spark.read.format("csv").schema(schema).load(FILE_PATH)

@dlt.table(name="transactions_silver") def transactions_silver(): return dlt.read("transactions_bronze").na.drop(...).filter(...)
@dlt.table(name="category_revenue_gold") def category_revenue_gold(): return dlt.read("transactions_silver").groupBy("Category").agg(...)
Databricks'te Spark SQL ile Veri Dönüştürme

Boru hattı çalıştırma

Lakeflow pipeline DAG: transactions_bronze 100K satır, sonra transactions_silver 33K satır, sonra category_revenue_gold 6 satır; hepsi yeşil, materialized view

  • Bronze (100K satır) → Silver (33K satır) → Gold (6 satır)
Databricks'te Spark SQL ile Veri Dönüştürme

Notebooks, Jobs, yoksa Lakeflow?

$$

katmanlar: Notebooks, Databricks Jobs, Lakeflow Pipelines

 

$$

  • Notebooks → keşif, prototipleme
  • Databricks Jobs → çok adımlı, zamanlanmış hatlar
  • Lakeflow → tamamen yönetilen, bildirime dayalı
Databricks'te Spark SQL ile Veri Dönüştürme

Hadi pratik yapalım!

Databricks'te Spark SQL ile Veri Dönüştürme

Preparing Video For Download...