Productiepijplijnen met workflows

Gegevens transformeren met Spark SQL in Databricks

Disha Mukherjee

Lead Data Engineer

Waarom Delta Lake?

Een veilige, gloeiende digitale kluis met georganiseerde datatabellen en een beschermend schild, vlakke moderne stijl

 

$$

  • ACID-transacties → mislukte writes terugdraaien
  • Schemahandhaving → onjuiste types blokkeren
  • Versiebeheer → elke vorige staat bevragen
Gegevens transformeren met Spark SQL in Databricks

Schrijven naar Delta

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

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

$$

$$

  • Er verschijnt een nieuwe Delta-tabel in Unity Catalog
Gegevens transformeren met Spark SQL in Databricks

Notebook-taken

task1_ingest: laden en opschonen

  • Laadt CSV → past opschoning toe → schrijft een Delta-tabel
Gegevens transformeren met Spark SQL in Databricks

Notebook-taken

task2_metrics: omzet per categorie

  • Leest opgeschoonde tabel → berekent metrics → schrijft naar nieuwe tabel
Gegevens transformeren met Spark SQL in Databricks

Notebook-taken

task3_customers: rangschik op bestedingen

  • Leest opgeschoonde tabel → rangschikt klanten → slaat op in nieuwe tabel
Gegevens transformeren met Spark SQL in Databricks

De job maken

Jobs- en Pipelines-UI met voltooide job-DAG met drie taken en pijlen van task1_ingest naar task2_metrics naar task3_customers

  • Kan handmatig draaien, inplannen en triggers instellen
Gegevens transformeren met Spark SQL in Databricks

De job uitvoeren

Job-run-DAG met task1_ingest en task2_metrics geslaagd (groen) en task3_customers mislukt (rood)

Gegevens transformeren met Spark SQL in Databricks

De job uitvoeren

Een fout in taak drie controleren

  • Fout: customer-id moet Customer_ID zijn
Gegevens transformeren met Spark SQL in Databricks

De job uitvoeren

Grafiekweergaven met succes

Een tijdlijnweergave

Gegevens transformeren met Spark SQL in Databricks

Wat is Lakeflow?

$$

$$

vergelijking: Imperatief (Jobs) | Declaratief (Lakeflow)

 

  • Jobs → wij beheren elke stap
  • Lakeflow → declareer wat tabellen moeten bevatten
  • Databricks regelt volgorde, retries en compute
Gegevens transformeren met Spark SQL in Databricks

Het @dlt.table-patroon

@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(...)
Gegevens transformeren met Spark SQL in Databricks

Pipeline-run

Lakeflow-pijplijn-DAG met transactions_bronze 100K rijen, daarna transactions_silver 33K rijen, daarna category_revenue_gold 6 rijen; allemaal groene gematerialiseerde views

  • Brons (100K rijen) → Zilver (33K rijen) → Goud (6 rijen)
Gegevens transformeren met Spark SQL in Databricks

Notebooks, Jobs of Lakeflow?

$$

lagen: Notebooks, Databricks Jobs, Lakeflow Pipelines

 

$$

  • Notebooks → verkennen, prototypen
  • Databricks Jobs → meerstaps, geplande pijplijnen
  • Lakeflow → volledig beheerd, declaratief
Gegevens transformeren met Spark SQL in Databricks

Laten we oefenen!

Gegevens transformeren met Spark SQL in Databricks

Preparing Video For Download...