fix(etl): importer une seule mesure par heure depuis l'API Mock
L'API Mock ne renvoie pas les mesures d'une période : elle génère `limit` points répartis sur l'intervalle demandé (1 000 par heure avec --limit 1000, un toutes les 3,6 s). Le DAG aurait écrit 7 000 lignes par heure et par environnement, alors que le dataset historique a une mesure horaire et que les features ML décalent par ligne : `shift(168)`, le retard d'une semaine, serait devenu un retard de dix minutes, sans erreur visible au scoring ni au réentraînement. Avec --limit 1, l'API renvoie la mesure de :00 de chaque heure, au pas du CSV. Constaté sur la recette le 23/09 avant la réactivation des DAGs.
This commit is contained in:
@@ -18,9 +18,9 @@ from airflow.timetables.trigger import CronTriggerTimetable
|
||||
# Le backend possède son propre environnement uv dans l'image Airflow (ADR 0008).
|
||||
COMMANDE_BACKEND = "cd /opt/backend && env -u VIRTUAL_ENV uv run --no-sync python -m"
|
||||
|
||||
# Le pipeline backend et l'API acceptent au maximum 1 000 lectures par site.
|
||||
# Cette marge évite de perdre silencieusement une lecture si une heure en contient plus de 60.
|
||||
LIMITE_LECTURES = 1000
|
||||
# Contrainte : l'API Mock génère `limit` points répartis sur l'intervalle. Un seul donne la mesure
|
||||
# de :00, au pas horaire du CSV que les features ML supposent (`shift(168)` compte des lignes).
|
||||
LIMITE_LECTURES = 1
|
||||
|
||||
# Deux reprises donnent trois tentatives au total. Même dans le pire cas, l'exécution reste
|
||||
# inférieure au pas horaire du DAG.
|
||||
|
||||
Reference in New Issue
Block a user