Module 5 : Pipelines et Integration de donnees
Introduction aux Pipelines
Les pipelines Synapse permettent d'orchestrer des flux de donnees ETL/ELT. Ils sont bases sur Azure Data Factory et offrent une interface visuelle dans Synapse Studio.
Concepts cles
- Pipeline : Enchainement d'activites
- Activite : Une tache unitaire (copie, transformation, notebook...)
- Dataset : Reference vers une source ou destination de donnees
- Linked Service : Connexion vers un systeme externe
- Trigger : Declencheur (planifie, evenement, manuel)
Activites principales
1. Copy Data
Copie des donnees entre sources :
Sources supportees : 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
Execute un notebook Spark dans le pipeline.
4. Stored Procedure
Execute une procedure stockee SQL.
5. Script SQL
Execute un script SQL serverless ou dedie.
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 calculees
|
3. [Copy Data] -> Silver/ventes_clean/
|
4. [Notebook] Agregations Spark
|
5. [Stored Proc] Charger dans DW dedie
|
6. [Email] Notification de fin
Parametres et variables
// Parametre de pipeline
@pipeline().parameters.dateDebut
// Variable systeme
@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 fenetres de temps avec reprise automatique.
Event Trigger
Declenche sur l'arrivee d'un fichier dans le storage.
Gestion des erreurs
Strategies :
- Connecter les activites par "On failure" pour les cas d'erreur
- Utiliser des activites "Set Variable" pour tracer l'etat
- Configurer des retries avec intervalle
- Envoyer des alertes via Logic Apps ou email
Monitoring
Dans Synapse Studio > Monitor :
- Pipeline runs : historique des executions
- Trigger runs : declenchements
- 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 etre re-executes sans effet de bord
- Parametrage : Evitez les valeurs en dur, utilisez des parametres
- Logging : Tracez les metriques importantes dans une table de logs
- Tests : Testez en dev avant de deployer en prod