DataWeave en profondeur (Course #dataweave)
For tous les développeurs.
À la fin, vous saurez
À l'issue de cette formation, vous serez capable d'architecturer des transformations DataWeave 2.x complexes — streaming, jointures, modules personnalisés — afin d'absorber des rafales de 20 k événements/s à heap constant.
Cas fil rouge
Nordwind Logistics diffuse la télémétrie de 40 000 véhicules : des flux EDIFACT et CSV historiques arrivent par rafales de 20 k événements/s et doivent ressortir en webhooks JSON versionnés, cible p95 < 100 ms par transformation. Les transporteurs remanient leurs layouts chaque semaine : les mappings évoluent sans interruption de service. Chaque module reconstruit une portion de cette chaîne en DataWeave 2.x.
Programme chaque ligne est quelque chose que vous faites
5 modules · 15 sujets · dans l'ordre du cours
-
Module 1
Dans le moteur DataWeave
Objectif. Prédire le résultat de l'évaluation (paresse, coercition, selectors) et débugger un mapper webhook défaillant en quelques minutes.
- Tracer l'ordre d'évaluation : évaluation paresseuse, sémantique map/mapObject/mapArray, coûts de recalcul
- Maîtriser types, coercition et valeurs par défaut : pièges Number vs String, formats DateTime et locales
- Débugger vite : points d'arrêt, aperçus et inspection des variables dans l'éditeur DataWeave de Studio
-
Module 2
Maps imbriquées, jointures, réductions
Objectif. Composer mappings imbriqués, jointures par groupBy et réductions fusionnant positions véhicules et plans de route sur 100 k enregistrements.
- Construire mappings imbriqués et reduce à accumulateur sur les arbres d'expédition
- Joindre des jeux par clé : composition groupBy + filter à la manière des jointures SQL sur 100 k lignes
- Absorber les gros payloads : readers en streaming et traitement par chunks, heap stable à 20 k événements/s
-
Module 3
XML, CSV et fichiers plats
Objectif. Mapper sans perte entre XML à namespaces, CSV hostiles, segments EDIFACT à largeur fixe et webhooks JSON stables.
- Apprivoiser le XML : namespaces, attributs, contenu mixte et sorties compatibles CDATA pour les messages douaniers
- Choisir ses stratégies JSON : ordre des clés, suppression des null, sortie stable côté webhooks
- Trancher les cas limites flat-file : virgules quotées, retours ligne imbriqués, en-têtes/pieds en largeur fixe
-
Module 4
Bibliothèques DataWeave réutilisables
Objectif. Packager les fonctions de mapping canoniques de Nordwind en bibliothèque versionnée consommée par trois projets.
- Écrire des modules importables : exports, surcharge de fonctions, arborescence src/main/resources/libs
- Distribuer les bibliothèques via dépendances Maven ou actifs Exchange épinglés en versions sémantiques
- Fiabiliser les transforms : assertions sur échantillons dorés branchées dans le build Maven
-
Module 5
Des transforms qui passent la revue
Objectif. Instituer une checklist de revue couvrant nommage, lisibilité et performance qui bloque les régressions au merge.
- Normaliser nommage et lisibilité : fonctions pures, types explicites, zéro chaîne magique
- Benchmarker les pièges de performance : scans répétés, récursion profonde, lectures avides — avant/après sur 10 Mo
- Bloquer les revues avec une checklist transform : métadonnées déclarées, cas limites listés, streaming vérifié
Références & documentation officielle chaque affirmation ci-dessus a une source
Module 1
- Variables DataWeaveDoc MuleSoft
- Constructions de valeurs par typeDoc MuleSoft
Module 2
- groupBy (dw::Core)Doc MuleSoft
- reduce (dw::Core)Doc MuleSoft
Module 3
- Format fichier platDoc MuleSoft
- Format XMLDoc MuleSoft
Module 4
- Créer des modules et mappings personnalisésDoc MuleSoft
Module 5
- Le streaming dans DataWeaveDoc MuleSoft