Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| eadl:bloc5:fm3:td3 [2026/11/01 12:40] – jcheron | eadl:bloc5:fm3:td3 [2026/11/05 00:45] (Version actuelle) – [Schémas des trois flux] jcheron | ||
|---|---|---|---|
| Ligne 4: | Ligne 4: | ||
| * **Durée :** 6 heures | * **Durée :** 6 heures | ||
| * **Organisation :** équipes de 2 personnes | * **Organisation :** équipes de 2 personnes | ||
| - | * **Environnement :** Hadoop sur Docker Compose (cluster fourni, identique à celui du TD2) | + | |
| + | | ||
| * **Technologies autorisées :** HDFS, YARN, MapReduce Streaming et/ou Hive | * **Technologies autorisées :** HDFS, YARN, MapReduce Streaming et/ou Hive | ||
| * **Technologie exclue pour ce projet :** Spark, traité dans l' | * **Technologie exclue pour ce projet :** Spark, traité dans l' | ||
| Ligne 56: | Ligne 57: | ||
| Un jeu de données réduit est fourni, **volontairement bien plus petit que les volumes réels**. Il se compose de trois fichiers CSV (avec en-tête), plus un lot correctif, dans le dossier '' | Un jeu de données réduit est fourni, **volontairement bien plus petit que les volumes réels**. Il se compose de trois fichiers CSV (avec en-tête), plus un lot correctif, dans le dossier '' | ||
| - | |||
| ==== Schémas des trois flux ==== | ==== Schémas des trois flux ==== | ||
| **Flux 1 : '' | **Flux 1 : '' | ||
| - | <sxh text> | + | <sxh text; |
| commande_id, | commande_id, | ||
| </ | </ | ||
| Ligne 67: | Ligne 67: | ||
| **Flux 2 : '' | **Flux 2 : '' | ||
| - | <sxh text> | + | <sxh text; |
| session_id, | session_id, | ||
| </ | </ | ||
| Ligne 73: | Ligne 73: | ||
| **Flux 3 : '' | **Flux 3 : '' | ||
| - | <sxh text> | + | <sxh text; |
| annulation_id, | annulation_id, | ||
| </ | </ | ||
| + | |||
| + | **Lot correctif : '' | ||
| + | |||
| + | <sxh text; | ||
| + | commande_id, | ||
| + | </ | ||
| + | |||
| + | Les dix premières colonnes reprennent le schéma du flux 1 : le lot correctif ne porte que sur les commandes. '' | ||
| Remarques sur les schémas : | Remarques sur les schémas : | ||
| Ligne 84: | Ligne 92: | ||
| * '' | * '' | ||
| - | ==== Anomalies présentes dans le jeu ==== | + | ==== Qualité des données |
| - | Le jeu contient | + | Comme ceux que livrent les systèmes sources réels, ce jeu de données n'est pas propre. Explorez-le avant de coder : c'est à vous d' |
| - | * lignes dupliquées | + | Pour vos tests (fichier corrompu, flux manquant, lignes ajoutées), travaillez sur des copies : les résultats que vous présentez doivent être calculés sur le jeu fourni, sans modification. |
| - | * champs vides ou mal formés (dates, nombres) ; | + | |
| - | * montants, prix ou quantités invalides (négatifs, nuls, non numériques) ; | + | |
| - | * produits dont la catégorie diffère entre deux flux ; | + | |
| - | * **annulations orphelines** (référence à une ligne de commande inexistante dans le lot) ; | + | |
| - | * annulations dont le montant dépasse celui de la ligne de commande ; | + | |
| - | * événements dont l' | + | |
| - | * lignes d' | + | |
| - | * commandes annulées plusieurs fois ; | + | |
| - | * un **lot correctif** ('' | + | |
| - | + | ||
| - | Vous pouvez compléter | + | |
| ==== Règles métier à définir ==== | ==== Règles métier à définir ==== | ||
| Ligne 167: | Ligne 164: | ||
| Le nettoyage des données est attendu en **MapReduce Streaming**, | Le nettoyage des données est attendu en **MapReduce Streaming**, | ||
| + | |||
| + | **Calcul de contrôle, avant votre premier job.** Copiez les deux extraits ci-dessous dans '' | ||
| + | |||
| + | <sxh text; | ||
| + | commande_id, | ||
| + | CMD1073051, | ||
| + | CMD1073061, | ||
| + | CMD1073061, | ||
| + | CMD1073089, | ||
| + | CMD1073089, | ||
| + | CMD1073093, | ||
| + | CMD1073104, | ||
| + | CMD1073104, | ||
| + | CMD1073337, | ||
| + | CMD1073337, | ||
| + | CMD1074687, | ||
| + | CMD1074687, | ||
| + | CMD1074687, | ||
| + | CMD1074687, | ||
| + | CMD1075106, | ||
| + | </ | ||
| + | |||
| + | <sxh text; | ||
| + | annulation_id, | ||
| + | ANN0196112, | ||
| + | ANN0196652, | ||
| + | ANN0198204, | ||
| + | ANN0198163, | ||
| + | ANN0198196, | ||
| + | </ | ||
| **N' | **N' | ||
| Ligne 199: | Ligne 226: | ||
| Faites apparaître **au moins un calcul de capacité et un calcul de débit** (par exemple : quel débit de traitement faut-il pour absorber le volume de pointe dans la fenêtre disponible ?). Indiquez les hypothèses utilisées et précisez pourquoi une extrapolation à partir du jeu de données réduit reste approximative. | Faites apparaître **au moins un calcul de capacité et un calcul de débit** (par exemple : quel débit de traitement faut-il pour absorber le volume de pointe dans la fenêtre disponible ?). Indiquez les hypothèses utilisées et précisez pourquoi une extrapolation à partir du jeu de données réduit reste approximative. | ||
| + | |||
| + | Pour tester la montée en charge (palier 3), fabriquez un jeu plus volumineux à partir des fichiers fournis, par exemple en les dupliquant. Une simple concaténation transforme chaque copie en doublon de la précédente : rendez les identifiants uniques dans chaque copie, ou expliquez l' | ||
| ===== 4. Contraintes de réalisation ===== | ===== 4. Contraintes de réalisation ===== | ||
| Ligne 210: | Ligne 239: | ||
| ===== 5. Usage de l'IA générative ===== | ===== 5. Usage de l'IA générative ===== | ||
| - | L' | + | <WRAP important round> |
| + | **Première phase sans IA.** L' | ||
| + | |||
| + | Pourquoi : c'est la partie du projet où l'on apprend le plus, et celle qu'une IA ferait le plus volontiers à votre place. Repérer vous-mêmes ce qui ne va pas dans les données, et prévoir le résultat avant de lancer un job, c'est ce qui vous permettra ensuite de juger si ce que produit votre pipeline, ou une IA, est juste. | ||
| + | </ | ||
| + | |||
| + | Après cette phase, l'usage ponctuel d'un assistant IA est autorisé, comme il le serait dans un contexte professionnel. En revanche : | ||
| * **vous restez responsables** de tout ce que vous livrez : un script produit par une IA que vous ne savez pas expliquer sera considéré comme non maîtrisé ; | * **vous restez responsables** de tout ce que vous livrez : un script produit par une IA que vous ne savez pas expliquer sera considéré comme non maîtrisé ; | ||
| Ligne 218: | Ligne 253: | ||
| * **tracez votre usage** : une demi-page indiquant pour quelles tâches vous avez utilisé l'IA, ce que vous avez corrigé ou rejeté, et une erreur ou imprécision que vous avez relevée dans ses réponses. | * **tracez votre usage** : une demi-page indiquant pour quelles tâches vous avez utilisé l'IA, ce que vous avez corrigé ou rejeté, et une erreur ou imprécision que vous avez relevée dans ses réponses. | ||
| - | Les questions individuelles de la restitution orale porteront sur des éléments précis de votre solution. | + | ===== 6. Étapes conseillées |
| - | + | ||
| - | ===== 6. Déroulé indicatif de la séance | + | |
| - | ^ Durée indicative ^ Travail attendu ^ | + | - **Sans IA :** lire le cas, explorer les données, relever les ambiguïtés et formuler les hypothèses. |
| - | | 30 min | Lire le cas, relever les ambiguïtés et formuler les hypothèses | + | - **Sans IA :** dessiner |
| - | | 45 min | Dessiner | + | - **Sans IA :** calculer dans un tableur le résultat attendu sur l' |
| - | | 2 h 15 | Mettre en œuvre le traitement (palier 1, puis 2) | | + | - Point avec l' |
| - | | 1 h | Tester les erreurs, la relance et la cohérence des résultats | + | - Mettre en œuvre le traitement, d' |
| - | | 45 min | Estimer la capacité, discuter le scaling et les limites | + | |
| - | | 30 min | Finaliser le dossier et préparer la restitution | + | |
| - | | 15 min par équipe | Présentation et questions individuelles | + | |
| + | | ||
| - | Vous pouvez organiser votre travail autrement, mais réservez du temps pour les tests et la restitution. | + | Vous pouvez organiser votre travail autrement, mais ne sacrifiez pas les tests et la restitution |
| ===== 7. Livrable ===== | ===== 7. Livrable ===== | ||
| Ligne 240: | Ligne 274: | ||
| - un registre des hypothèses et décisions ; | - un registre des hypothèses et décisions ; | ||
| - les scripts, requêtes ou commandes nécessaires pour reproduire le traitement ; | - les scripts, requêtes ou commandes nécessaires pour reproduire le traitement ; | ||
| + | - le calcul de contrôle sur l' | ||
| - une preuve d' | - une preuve d' | ||
| - la description de la jointure et la vérification de sa justesse (par exemple : nombre d' | - la description de la jointure et la vérification de sa justesse (par exemple : nombre d' | ||
| Ligne 271: | Ligne 306: | ||
| Chaque membre pourra être interrogé individuellement sur n' | Chaque membre pourra être interrogé individuellement sur n' | ||
| - | ===== 8. Critères | + | ===== 8. Critères |
| ^ Critère ^ Insuffisant ^ Satisfaisant ^ Excellent ^ | ^ Critère ^ Insuffisant ^ Satisfaisant ^ Excellent ^ | ||