Pipelines de production avec des workflows

Transformation des données avec Spark SQL dans Databricks

Disha Mukherjee

Lead Data Engineer

Pourquoi Delta Lake ?

Un coffre-fort numérique lumineux et sécurisé avec des tables de données organisées et un bouclier protecteur, style moderne plat

 

$$

  • Transactions ACID → annulent les écritures en échec
  • Contrôle de schéma → bloque les types non conformes
  • Versioning → interroger tout état antérieur
Transformation des données avec Spark SQL dans Databricks

Écrire dans Delta

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

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

$$

$$

  • Une nouvelle table Delta apparaît dans Unity Catalog
Transformation des données avec Spark SQL dans Databricks

Tâches du notebook

task1_ingest : charger et nettoyer

  • Charge un CSV → applique un nettoyage → écrit une table Delta
Transformation des données avec Spark SQL dans Databricks

Tâches du notebook

task2_metrics : chiffre d'affaires par catégorie

  • Lit la table nettoyée → calcule des mesures → écrit dans une nouvelle table
Transformation des données avec Spark SQL dans Databricks

Tâches du notebook

task3_customers : classement par dépense

  • Lit la table nettoyée → classe les clients → enregistre dans une nouvelle table
Transformation des données avec Spark SQL dans Databricks

Créer le job

Interface Jobs et Pipelines affichant un DAG de job à trois tâches terminé, avec des flèches de dépendance de task1_ingest à task2_metrics puis à task3_customers

  • Exécuter manuellement, planifier des jobs, et configurer des déclencheurs
Transformation des données avec Spark SQL dans Databricks

Exécuter le job

DAG d'exécution : task1_ingest et task2_metrics réussies en vert, task3_customers en échec en rouge

Transformation des données avec Spark SQL dans Databricks

Exécuter le job

Vérification d'une erreur dans la troisième tâche

  • Erreur : customer-id devrait être Customer_ID
Transformation des données avec Spark SQL dans Databricks

Exécuter le job

Vues de graphe avec succès

Vue chronologique

Transformation des données avec Spark SQL dans Databricks

Qu'est-ce que Lakeflow ?

$$

$$

comparaison : Impératif (Jobs) | Déclaratif (Lakeflow)

 

  • Jobs → nous gérons chaque étape
  • Lakeflow → déclarer le contenu attendu des tables
  • Databricks gère l'ordre, les relances et le calcul
Transformation des données avec Spark SQL dans Databricks

Le motif @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(...)
Transformation des données avec Spark SQL dans Databricks

Exécution du pipeline

DAG de pipeline Lakeflow montrant transactions_bronze 100K lignes, puis transactions_silver 33K lignes, puis category_revenue_gold 6 lignes, toutes des vues matérialisées en vert

  • Bronze (100 000 lignes) → Silver (33 000) → Gold (6)
Transformation des données avec Spark SQL dans Databricks

Notebooks, Jobs ou Lakeflow ?

$$

couches : Notebooks, Databricks Jobs, Lakeflow Pipelines

 

$$

  • Notebooks → exploration, prototypage
  • Databricks Jobs → pipelines multi-étapes, planifiés
  • Lakeflow → entièrement géré, déclaratif
Transformation des données avec Spark SQL dans Databricks

Passons à la pratique !

Transformation des données avec Spark SQL dans Databricks

Preparing Video For Download...