Système de mise à jour 6 fois/jour - Architecture complète (Heure de Montréal)
La Vitrine Démocratique se met à jour 6 fois par jour (toutes les 4 heures) avec les dernières données des médias et analyses.
Modèle de fraîcheur: Les données collectées sur une fenêtre de 4h sont traitées et disponibles environ 53 minutes après le début du bloc.
Exemple: Bloc débute à 11:00 → Traitement ~53min → Données prêtes vers 11:53 (heure de Montréal)
Le pipeline utilise deux types de Glue Jobs AWS pour gérer l'extraction, la transformation et le chargement des données:
💡 Impact: Ces Glue Jobs ajoutent ~30 minutes au temps total du pipeline (~60 min au lieu de ~30 min de transformation pure).
TOUS les raffineurs utilisent maintenant salient_index comme source de vérité unique pour les scores de saillance.
Pipeline scientifique en 4 étapes:
salient_index (ne recalcule PAS les scores)salient_index (ne recalcule PAS les scores)
⚖️ Trade-off: Plus lent que GPT-4 (~25 min vs ~2 min), mais scientifiquement rigoureux, reproductible, et traçable.
💡 Objectif d'optimisation continue: Réduire le délai de traitement en améliorant les performances des modèles locaux et l'architecture du pipeline.
Vue d'ensemble du flux complet, de la collecte des données jusqu'à la publication de la Vitrine:
glue_job_general (9 colonnes)articles_segmented (16 colonnes)articles_segmented (16 colonnes)salient_headlines_objects (20 colonnes)salient_headlines_objects (20 colonnes)salient_index (20 colonnes AVEC scores)Tous ces pipelines démarrent en même temps après SALIENT_INDEX et lisent salient_index. Chaque pipeline a son Glue Job spécifique (+3 min):
salient_indexsalient_index (20 colonnes)issues_score (30 colonnes)salient_index (20 colonnes)party_score (24 colonnes)issues_scoresalient_index, issues_score, party_scoreVersions weekly/monthly des analyses, exécutées une fois par jour (15h30-15h45 EST) — À valider :
Temps d'exécution réels observés en production (exemple: bloc Glue Job à 11:00):
| Raffineur / Glue Job | Durée Réelle | Heure (ex: 11:00) | Notes |
|---|---|---|---|
| GLUE JOB GÉNÉRALE | 3 min | 11:00 | Traite le bloc du Matin (7:00-11:00) |
| ARTICLES_SEGMENTED | 3 min | 11:03 | API WTPSPLIT |
| + Glue Job spécifique | 3 min | 11:06 | Écriture Athena |
| SALIENT_OBJECTS | 25 min | 11:09 | GLiNER v1 + gemma3:27b |
| + Glue Job spécifique | 3 min | 11:34 | Écriture Athena |
| SALIENT_INDEX | 1 min | 11:37 | Calcul scores saillance |
| + Glue Job spécifique | 3 min | 11:38 | Écriture Athena |
| ⚡ Enrichissement (parallèle) | |||
| HEADLINE_OF_HEADLINES | 5 min | 11:41 | Génération titres |
| + Glue Job spécifique | 3 min | 11:46 | Écriture Athena |
| ISSUES_SCORE | 1 min | 11:41 | Classification Enjeux du CAPP |
| + Glue Job spécifique | 3 min | 11:42 | Écriture Athena |
| PARTY_SCORES | 1 min | 11:41 | Partis + sentiment |
| + Glue Job spécifique | 3 min | 11:42 | Écriture Athena |
| HEADLINES_ISSUES | 5 min | 11:42 | Attend ISSUES_SCORE |
| + Glue Job spécifique | 3 min | 11:47 | Écriture Athena |
| REFLET | 5 min | 11:42 | Attend ISSUES + PARTY |
| + Glue Job spécifique | 3 min | 11:47 | Écriture Athena |
| 🚀 Données Prêtes (~11:53) | |||
| VITRINE_GRAPH_DATA | 3 min | --:-- | Sera éliminé avec l'API (accès direct Parquet) |
| ✅ Avec l'API: Données disponibles directement via Athena Parquet à ~11:53 | |||
| 📅 Pipelines Hebdomadaires & Mensuels (1x/jour à 15h30 EST) | |||
| ISSUES_SCORE_WEEKLY | ~1 min | 15:30 | Agrégation hebdomadaire — À valider |
| ISSUES_SCORE_MONTHLY | ~1 min | 15:31 | Agrégation mensuelle — À valider |
| PARTY_SCORES_WEEKLY | ~1 min | 15:32 | Scores partis hebdo — À valider |
| PARTY_SCORES_MONTHLY | ~1 min | 15:33 | Scores partis mensuel — À valider |
| HEADLINES_ISSUES_WEEKLY | ~5 min | 15:34 | Headlines hebdo — À valider |
| HEADLINES_ISSUES_MONTHLY | ~5 min | 15:39 | Headlines mensuel — À valider |
| REFLET_WEEKLY | ~5 min | 15:44 | Reflet hebdomadaire — À valider |
| REFLET_MONTHLY | ~5 min | 15:49 | Reflet mensuel — À valider |
| 🎯 Pipelines Spéciaux | |||
| HOT_20 | ~5 min | 11:30 | Vendredis 11h30 EST |
| SONAR | ~3 min | 07:00 | Quotidien 07h00 EST |
| SONAR_HEATMAPS | ~5 min | 07:03 | Mercredis 07h30 EST |
Approbation de l'équipe et confirmation des durées réelles en production
PR #107 du repo aws-refiners - Création de l'infrastructure Lambda + ECR - Tests en environnement DEV
Application du nouvel horaire - Ajout du 6ème bloc (minuit) - Mise à jour des payloads
Monitoring intensif des temps d'exécution - Ajustements si nécessaire - Validation de la synchronisation
Réduction progressive des marges de sécurité - Préparation à l'arrivée de l'API - Documentation des métriques