Module 5 : Pipelines et Intégration de données
Introduction aux Pipelines
Les pipelines Synapse permettent d'orchestrer des flux de données ETL/ELT. Ils sont basés sur Azure Data Factory et offrent une interface visuelle dans Synapse Studio.
Concepts clés
- Pipeline : Enchaînement d'activités
- Activité : Une tâche unitaire (copie, transformation, notebook...)
- Dataset : Référence vers une source ou destination de données
- Linked Service : Connexion vers un système externe
- Trigger : Déclencheur (planifié, événement, manuel)
Activités principales
1. Copy Data
Copie des données entre sources :
Sources supportées : Azure Blob, Data Lake, SQL Server, Oracle, SAP, Salesforce, APIs REST, fichiers FTP, etc.
2. Data Flow
Transformations visuelles sans code :
- Join, Merge, Split
- Aggregate, Sort, Filter
- Derived Column, Lookup
- Pivot, Unpivot
3. Execute Notebook
Exécute un notebook Spark dans le pipeline.
4. Stored Procedure
Exécute une procédure stockée SQL.
5. Script SQL
Exécute un script SQL serverless ou dédié.
Exemple de pipeline ETL
Pipeline: ETL_Ventes_Quotidien
1. [Copy Data] Source_ERP -> Bronze/ventes_raw/
|
2. [Data Flow] Nettoyage et transformation
|-- Filtrer lignes invalides
|-- Convertir types
|-- Ajouter colonnes calculées
|
3. [Copy Data] -> Silver/ventes_clean/
|
4. [Notebook] Agrégations Spark
|
5. [Stored Proc] Charger dans DW dédié
|
6. [Email] Notification de fin
Paramètres et variables
// Paramètre de pipeline
@pipeline().parameters.dateDebut
// Variable système
@pipeline().RunId
@utcNow()
// Expression conditionnelle
@if(equals(pipeline().parameters.env, 'prod'),
'prod-storage',
'dev-storage')
// Formatage de date
@formatDateTime(utcNow(), 'yyyy/MM/dd')
Triggers
Schedule Trigger
{
"name": "DailyTrigger",
"properties": {
"type": "ScheduleTrigger",
"recurrence": {
"frequency": "Day",
"interval": 1,
"startTime": "2024-01-01T06:00:00Z",
"timeZone": "Romance Standard Time"
}
}
}
Tumbling Window
Pour traiter des fenêtres de temps avec reprise automatique.
Event Trigger
Déclenche sur l'arrivée d'un fichier dans le storage.
Gestion des erreurs
Stratégies :
- Connecter les activités par "On failure" pour les cas d'erreur
- Utiliser des activités "Set Variable" pour tracer l'état
- Configurer des retries avec intervalle
- Envoyer des alertes via Logic Apps ou email
Monitoring
Dans Synapse Studio > Monitor :
- Pipeline runs : historique des exécutions
- Trigger runs : déclenchements
- Integration runtime : statut des runtimes
- Apache Spark applications : jobs Spark
Bonnes pratiques
- Architecture Medallion : Bronze (raw) -> Silver (clean) -> Gold (business)
- Idempotence : Les pipelines doivent pouvoir être ré-exécutés sans effet de bord
- Paramétrage : Évitez les valeurs en dur, utilisez des paramètres
- Logging : Tracez les métriques importantes dans une table de logs
- Tests : Testez en dev avant de déployer en prod