Real-Time Weather Stream
Les événements circulent d'Azure Event Hubs vers Databricks, sont affinés en continu à travers les couches Delta Lake et arrivent dans un rapport Power BI quasiment en temps réel.
5 min
fenêtres d'agrégation
≤ 20 min
de latence jusqu'à Power BI
3
couches Delta dans Unity Catalog
Plateforme
Azure Databricks
Stack
- Azure Event Hubs
- Azure Databricks
- Spark Structured Streaming
- Delta Lake
- Unity Catalog
- Power BI
Contexte
Dans ce projet, j'ai construit un pipeline scalable avec Azure Event Hubs et Databricks pour traiter des données en streaming quasiment en temps réel. Des flux d'événements issus de sources comme Kafka ou des objets connectés sont ingérés dans Event Hubs puis traités avec Spark Structured Streaming, avant d'être stockés dans un lakehouse Delta selon l'architecture Medallion.
Bronze conserve les événements bruts pour la traçabilité, Silver les nettoie et les structure pour les requêtes, et Gold les agrège pour l'analyse — une conception qui reste flexible et performante avec de gros volumes de données temps réel.
Enfin, les données sont exposées à Power BI en DirectQuery, pour des dashboards rafraîchis quasiment en temps réel avec une latence maximale de 20 minutes.
Architecture de la solution
- Event Hubs
- Bronze
- Silver
- Gold
- Power BI
- Étape 01Source
Azure Event Hubs
J'ai créé une ressource Event Hubs dans un groupe de ressources Azure. Event Hubs constitue la couche d'ingestion, capable d'absorber des flux d'événements à haut débit en temps réel.
Les événements sont synthétiques, générés avec le Data Explorer d'Event Hubs : des messages JSON représentant chacun un enregistrement sous forme de paires clé-valeur — comme une ligne de table.
- Étape 02Atterrissage
Azure Databricks connecté à Event Hubs
Un workspace Databricks est créé dans le même groupe de ressources, avec un cluster de calcul pour traiter le flux. La bibliothèque Azure Event Hubs connector est installée sur le cluster pour que Spark Structured Streaming lise les événements efficacement.
- Étape 03Bronze
Démarrage du flux — couche Bronze
Structure Medallion dans Unity Catalog
Dans un notebook Databricks, je crée d'abord le catalogue et les schémas
bronze,silveretgoldpour que les données soient ingérées, traitées et affinées de façon structurée.Connexion à Event Hubs
La connexion est configurée avec le namespace Event Hubs, le nom du hub et la clé d'accès.
Lecture du flux
Spark Structured Streaming lit et affiche ensuite les événements entrants.
Persistance en Delta
Avec
readStreamseul, les données ne vivent qu'en mémoire et disparaissent à l'arrêt du flux. Grâce àwriteStream, les événements sont persistés dans la couche Bronze au format Delta et restent disponibles pour le traitement et l'analyse. - Étape 04Silver
Couche Silver — parsing & nettoyage
En Bronze, le contenu de chaque événement se trouve dans une colonne binaire
body. Pour le rendre interrogeable, il faut le décoder et le structurer.1. Du binaire à la chaîne
La colonne
bodyest convertie en chaîne aveccast().2. Parsing du JSON
Un schéma est défini avec
StructTypeetStructFieldde PySpark, puisfrom_json()transforme la chaîne en colonnes structurées.3. Écriture de la table Silver
writeStreamenregistre les données structurées dans la table Deltastreaming.silver.weather, en traitement incrémental : les nouveaux événements arrivent en continu sans écraser l'existant. - Étape 05Gold
Couche Gold — agrégats sur 5 minutes
Le flux Silver est agrégé sur des fenêtres de 5 minutes pour produire des indicateurs synthétiques prêts pour le reporting.
Les agrégats sont persistés dans
streaming.gold.weather_summarypour des requêtes efficaces. - Étape 06Orchestration
Récapitulatif du pipeline
- →Event Hubs ingère des événements JSON en temps réel, diffusés en continu vers Databricks.
- →Bronze conserve les événements bruts dans leur forme d'origine.
- →Silver décode les enregistrements binaires en JSON structuré et extrait les attributs météo comme la température, l'humidité et la vitesse du vent.
- →Gold calcule des moyennes sur 5 minutes pour chaque indicateur, prêtes pour la visualisation.
- Étape 07Restitution
Rapport Power BI temps réel
Power BI se connecte via Databricks Partner Connect, qui fournit un connecteur lié au cluster. Power BI interroge directement la couche Gold, et les rapports restent à jour quasiment en temps réel.
Le rapport présente deux vues : la couche Silver avec les événements nettoyés, et la couche Gold avec les indicateurs agrégés par intervalles de 5 minutes. On filtre par période et on explore la température selon les conditions météo (Cloudy, Partly Cloudy, Sunny).
Synthèse
Ce projet livre un pipeline temps réel complet avec Azure Event Hubs, Databricks et Power BI, en suivant l'architecture Medallion pour transformer des événements bruts en insights.
- →Bronze — les événements météo JSON issus d'Event Hubs sont stockés tels quels dans une table Delta.
- →Silver — les contenus binaires sont parsés en colonnes lisibles et typées.
- →Gold — des agrégats sur 5 minutes de la température, de l'humidité, du vent et des précipitations font ressortir tendances et anomalies.
Livrées à Power BI via Partner Connect, les données alimentent un dashboard interactif avec filtres temporels et analyse par condition — une approche scalable pour les flux de données continus.
Projet suivant · 01
NYC Taxi Analytics
Pipeline batch · Data warehouse