Produktions-Pipelines mit Workflows

Daten­transformation mit Spark SQL in Databricks

Disha Mukherjee

Lead Data Engineer

Warum Delta Lake?

Ein sicheres leuchtendes digitales Tresorfach mit organisierten Datentabellen und einem Schutzschild, flacher moderner Stil

 

$$

  • ACID-Transaktionen → fehlerhafte Schreibvorgänge zurückrollen
  • Schema-Erzwingung → unpassende Typen blockieren
  • Versionierung → jeden früheren Stand abfragen
Daten­transformation mit Spark SQL in Databricks

In Delta schreiben

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

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

$$

$$

  • Eine neue Delta-Tabelle erscheint im Unity Catalog
Daten­transformation mit Spark SQL in Databricks

Notebook-Aufgaben

task1_ingest: laden und bereinigen

  • Lädt CSV → bereinigt → schreibt eine Delta-Tabelle
Daten­transformation mit Spark SQL in Databricks

Notebook-Aufgaben

task2_metrics: Umsatz nach Kategorie

  • Liest bereinigte Tabelle → berechnet Kennzahlen → schreibt in neue Tabelle
Daten­transformation mit Spark SQL in Databricks

Notebook-Aufgaben

task3_customers: nach Ausgaben ranken

  • Liest bereinigte Tabelle → rankt Kund:innen → speichert in neue Tabelle
Daten­transformation mit Spark SQL in Databricks

Job erstellen

Jobs- und Pipelines-UI mit abgeschlossenem Drei-Task-DAG und Abhängigkeitspfeilen von task1_ingest zu task2_metrics zu task3_customers

  • Manuell starten, planen und Trigger setzen
Daten­transformation mit Spark SQL in Databricks

Job ausführen

Job-Run-DAG mit task1_ingest und task2_metrics grün erfolgreich und task3_customers rot fehlgeschlagen

Daten­transformation mit Spark SQL in Databricks

Job ausführen

Einen Fehler in Aufgabe drei prüfen

  • Fehler: customer-id sollte Customer_ID sein
Daten­transformation mit Spark SQL in Databricks

Job ausführen

Graph-Ansichten mit Erfolg

Eine Zeitachsenansicht

Daten­transformation mit Spark SQL in Databricks

Was ist Lakeflow?

$$

$$

Vergleich: Imperativ (Jobs) | Deklarativ (Lakeflow)

 

  • Jobs → wir steuern jeden Schritt
  • Lakeflow → wir deklarieren, was Tabellen enthalten sollen
  • Databricks übernimmt Reihenfolge, Retries und Compute
Daten­transformation mit Spark SQL in Databricks

Das Muster @dlt.table

@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(...)
Daten­transformation mit Spark SQL in Databricks

Pipeline-Lauf

Lakeflow-Pipeline-DAG mit transactions_bronze 100K Zeilen, dann transactions_silver 33K Zeilen, dann category_revenue_gold 6 Zeilen, alle grüne materialisierte Views

  • Bronze (100K Zeilen) → Silver (33K Zeilen) → Gold (6 Zeilen)
Daten­transformation mit Spark SQL in Databricks

Notebooks, Jobs oder Lakeflow?

$$

Ebenen: Notebooks, Databricks Jobs, Lakeflow Pipelines

 

$$

  • Notebooks → explorieren, Prototypen
  • Databricks Jobs → mehrstufige, geplante Pipelines
  • Lakeflow → vollständig verwaltet, deklarativ
Daten­transformation mit Spark SQL in Databricks

Lass uns üben!

Daten­transformation mit Spark SQL in Databricks

Preparing Video For Download...