DBN - Module 325

Contenu

#325 - Théorie 1 - Notation BPMN
La notation BMMN
Piscines et lignes
Mini exercice oral
#325 - Exercice 1 - Automatiser une tâche simple avec un script
Enoncé
Traitement d'une fichier
Exemple de fichier : liste.txt
#325 - Exercice 2 — Modéliser un processus en BPMN
Objectif
Fiche théorique
Exemple à traiter
Structure
DAG
Définition
ETL et ELT
DAG

Support de cours

#325 - Théorie 1 - Notation BPMN

La notation BMMN

Piscines et lignes

1. Le Pool

Le pool représente un acteur global, généralement une organisation, une entreprise ou un système complet.

Exemples de pools :

  • Entreprise A et Fournisseur B
  • Client et Service SAV
  • Système interne et Service externe (API)

On utilise un pool différent lorsqu’on veut montrer une interaction entre plusieurs parties distinctes.

Le pool est l’entité principale, comme un terrain de jeu.

2. La Lane

Une lane (couloir) divise un pool en sous-sections.
Elle représente une fonction, un rôle, un service ou une équipe à l’intérieur d’un même pool.

Exemples de lanes dans un pool Entreprise :

  • Pool = Entreprise
    Lane 1 → Service Clients
    Lane 2 → Logistique
    Lane 3 → Comptabilité

La lane sert à indiquer qui exécute chaque tâche dans un même organisme.

La lane est un couloir à l’intérieur de la piscine.
Chaque couloir = un rôle ou un service.

Mini exercice oral

1) Contexte du processus

Un client passe une commande auprès d’une entreprise.
L’entreprise comporte deux services :

  • Pool = Client
  • Pool = Entreprise

Lanes de l’entreprise :

  • Service Commercial
  • Service Comptabilité

Trouver le bon pool :

  • CLIENT
  • ENTREPRISE

Trouver la bonne lane :

  • Service Commercial
  • Service Comptabilité
  1. Choisit un produit
  2. Remplit le formulaire de commande
  3. Valide la commande dans le système
  4. Envoie la facture
  5. Reçoit la confirmation
  6. Traite le paiement
  7. Répond à une question du client
  8. Vérifie que le paiement a été reçu
  9. Demande un remboursement
  10. Corrige l’adresse de facturation

 

#325 - Exercice 1 - Automatiser une tâche simple avec un script

Enoncé

Objectif :

comprendre ce qu’est une automatisation et écrire un script simple.

Exemple concret :

transformer une liste simple.txt en traitée.txt
Comprendre l’intérêt de l’automatisation sur une tâche répétitive

 

 

Traitement d'une fichier

# --- Automatisation simple : numérotation de lignes ---

# Ouvre le fichier source en lecture
with open("liste.txt", "r", encoding="utf-8") as fichier_entree:
lignes = fichier_entree.readlines()

# Prépare un tableau pour stocker les lignes modifiées
lignes_traitees = []

# Ajoute un numéro devant chaque ligne
for i, ligne in enumerate(lignes, start=1):
ligne_modifiee = f"{i}. {ligne.strip()}\n"
lignes_traitees.append(ligne_modifiee)

# Écrit le résultat dans un nouveau fichier
with open("liste_traitee.txt", "w", encoding="utf-8") as fichier_sortie:
fichier_sortie.writelines(lignes_traitees)

print("Traitement terminé ! Le fichier 'liste_traitee.txt' a été généré.")

Exemple de fichier : liste.txt

pomme
banane
poire
kiwi

#325 - Exercice 2 — Modéliser un processus en BPMN

Objectif

Objectif :

représenter un workflow avant de le programmer.

Exemple à traiter

Traitement d’une commande e-commerce

  1. Le client passe commande
  2. Le système vérifie le stock
  3. Si article disponible → préparer l’expédition
  4. Sinon → envoyer un message d’indisponibilité
  5. Le paiement est validé
  6. La commande est envoyée

Structure

  • Start Event : Commande reçue

  • Task 1 : Enregistrer la commande

  • Task 2 : Vérifier le stock

  • Gateway 1 (XOR) : Article disponible ?

    • Oui →

      • Task 3 : Préparer la commande

      • Task 4 : Valider le paiement

      • Gateway 2 (XOR) : Paiement accepté ?

        • Oui →

          • Task 5 : Expédier la commande

          • End Event : Commande expédiée

        • Non →

          • Task 6 : Notifier échec de paiement

          • End Event : Commande annulée

    • Non →

      • Task 7 : Informer client (rupture de stock)

      • End Event : Commande non livrable

DAG

Définition

Les schémas DAG (Directed Acyclic Graphs)

Qu’est-ce qu’un DAG ?

Un DAG (Directed Acyclic Graph) est une structure composée de nœuds reliés par des arêtes orientées, sans aucun cycle. Il permet de représenter un ensemble d’opérations ordonnées où il est impossible de revenir en arrière.

 

À quoi servent les DAG ?

Les DAG servent à représenter des séquences de tâches avec dépendances strictes. Ils sont utilisés dans :

  •  Orchestration de tâches (ETL/ELT, pipelines de données, machine learning)
  • Build systems (compilation)
  • Graphes de dépendances (gestion de paquets)
  • Calcul scientifique et workflows distribués

Normes et standards

Contrairement à BPMN, il n’existe pas de norme universelle pour représenter visuellement un DAG. Le DAG est un concept mathématique, et chaque outil (Airflow, Dagster, Prefect, etc.) utilise sa propre notation ou syntaxe (JSON, YAML, DSL Python).

 

Lecture d’un DAG

Un DAG se lit en suivant l’orientation des flèches :

  • Un nœud représente une tâche.
  • Une arête indique une dépendance.
  • Le flux est strictement acyclique, garantissant une exécution déterministe.

 

Avantages des DAG

  • Pas de cycles : workflows sûrs et prévisibles.
  • Idéal pour les dépendances complexes.
  • Parallélisation automatique des tâches indépendantes.
  • Reprise d’exécution facilitée.
  • Visualisation claire des pipelines.
  • Très bonne scalabilité.

 

Comparaison DAG / BPMN

DAG :

  • Orienté exécution technique
  • Sans cycles
  • Pas de norme visuelle unique
  • Utilisé par développeurs et data engineers

 

BPMN :

  • Standardisé (OMG)
  • Autorise les boucles
  • Représente des processus métier
  • Utilisé par analystes et équipes métier

 

Résumé

Les DAG sont des outils puissants pour orchestrer des workflows techniques complexes. Ils assurent une exécution structurée, scalable et déterministe, même si leur représentation graphique n'est pas normalisée comme celle des processus BPMN.

ETL et ELT

ETL et ELT

Définition ETL

ETL signifie Extract – Transform – Load. C’est un processus d’intégration de données comportant trois étapes :

  • Extract : extraction des données depuis diverses sources.
  • Transform : nettoyage, normalisation et transformation des données.
  • Load : chargement des données transformées dans un data warehouse.

Usages :

  • Data warehouses traditionnels.
  • Environnements on-premise.
  • Traitements batch.

Avantages :

  • Transformation avant chargement.
  • Qualité de données contrôlée.
  • Adapté aux systèmes où le data warehouse n’est pas performant pour le calcul.

Définition ELT

ELT signifie Extract – Load – Transform. Ce processus inverse l’ordre ETL :

  • Extract : extraction des données.
  • Load : chargement direct des données brutes dans le data warehouse.
  • Transform : transformation réalisée dans le data warehouse.

Usages :

  • Cloud Data Warehouses (Snowflake, BigQuery, Redshift).
  • Traitement rapide des données brutes.
  • Analyse à grande échelle ou en temps quasi réel.

Avantages :

  • Transformations effectuées par la puissance du cloud.
  • Chargement plus rapide.
  • Conservation des données brutes pour réutilisation ultérieure.
  • Architecture simplifiée.

Différences principales ETL vs ELT

  • ETL transforme avant de charger ; ELT charge avant de transformer.
  • ETL utilise un serveur intermédiaire ; ELT utilise le data warehouse pour les transformations.
  • ELT est plus performant dans les environnements cloud modernes.
  • ETL est souvent utilisé dans les environnements on-premise.

Exemple simple

ETL : extraction → transformation → chargement.

ELT : extraction → chargement → transformation via SQL dans le data warehouse.

Résumé

ETL = idéal pour infrastructures classiques.

ELT = idéal pour plateformes cloud modernes nécessitant scalabilité et traitement rapide.

DAG

[A] Extraction des données
|
[B] Validation des données
/ \
[C] Nettoyage [D]  --- Enrichissement

\/
[E] Génération du rapport

 

Description des tâches

A. Extraction des données

Récupère des données depuis une API, une base SQL ou un fichier.

Format brut, non vérifié.

B. Validation des données

Vérifie la qualité : formats, valeurs manquantes, doublons.

Point de décision : un rejet si problème > seuil.

C. Nettoyage

Suppression des lignes invalides.

Normalisation des colonnes.

D. Enrichissement

Ajout de données externes (ex : lookup dans une autre base).

Transformation métier.

E. Génération du rapport

Fusion des données nettoyées + enrichies.

Export en CSV, Excel ou tableau de bord.

Pourquoi cet exemple est un DAG ?

  • Les flèches sont orientées (on avance toujours dans la même direction).
  • Il n'y a aucun cycle : impossible de revenir à une étape précédente.
  • Il représente un workflow réaliste, très utilisé en data engineering.
Topbee Sàrl
Rte de la Plantaz 8
1870 Monthey

info@topbee.ch
crossmenuchevron-down