Closed lucaa closed 2 years ago
Avertissement au démarrage du wiki pour le modèle de données hibernate:
2022-08-05 17:57:39,660 [XWiki initialization] WARN o.h.m.RootClass - composite-id class does not override equals(): com.xwiki.projects.dinsic.wikidemarches.aggregates.AvisAggregateByDay
2022-08-05 17:57:39,661 [XWiki initialization] WARN o.h.m.RootClass - composite-id class does not override hashCode(): com.xwiki.projects.dinsic.wikidemarches.aggregates.AvisAggregateByDay
à évaluer les consequences et à implémenter.
Le scripts de calcul des agrégats ainsi que les APIs d'accès aux données ont été mis en production.
Il manque, par contre, les instructions propres de déploiement.
Je laisse la tâche ouverte pour finaliser ces instructions.
J'ai ajouté les instructions s'installation ainsi:
hibernate.cfg.xml
marquée dans la section de configuration du war: https://github.com/DISIC/observatoire/wiki/Instructions-d'installation-v-5.x#mise-en-place-du-war Des instructions séparées pour la version 5.x ont été créé à cette occasion, ce qui a permis de simplifier les instructions (car des opérations nécessaires pour des versions intermédiaires de la 4.x ne sont plus necessaires pour la version 5.x . Aussi, les instructions d'installation ont été traduites en français et les instructions pour l'import des données ont été isolées dans un document séparé.
Quelques notes sur l'implémentation:
La tâche #1183 a été créée pour décider la fréquence d’exécution idéale.
Opérationnellement:
Note: suite à la mise en place des agrégats, les opérations suivantes (qui ont été faites sur les données dans le passé) ne sont plus possibles telles quelles (car elles impactent la correctitude des données agrégées):
Note: suite à la mise en place des agrégats, les opérations suivantes (qui ont été faites sur les données dans le passé) ne sont plus possibles telles quelles (car elles impactent la correctitude des données agrégées):
Plus précisément, les scripts d'administration des avis qui modifient les données des avis (effacement et réaffectation) ne mettent pas à jour les données agrégées qui ont été déjà calculées à base de ces avis. Ainsi, ces scripts peuvent introduire des inconsistances entre les données détaillées des avis et les données affichées à l'écran pour les usages suivants:
Ainsi, l'utilisation de ces scripts est désormais déconseillée. Néanmoins, si ces opérations sont nécessaires, il faut prévoir une mise à jour des données agrégées (manuelle ou par un autre script à créer) et d'observatoire.
cc @jrenauxdinum @AnthonyBrunelli
Des avertissements expliquant cette situation ont été mis en place sur les écrans de ces opérations.
Suite à l'écriture des instructions & documentation, je ferme cette tâche. Les mises à jour des fonctionnalités pour utiliser les agrégats sont couvertes par les autres tâches liées.
Re-ouverture du ticket car le script pour mettre à jour les données au fur et à mesure a un bug qui fait qu'il ne prend pas en compte tous les avis pour les comptages des aides et difficultés.
Le problème était lié au script de mise à jour périodique des donnés, qui:
Cette dernière opération faisait que, à chaque calcul fait le jour j, les informations d'aides et difficultés du jour j-2 était remplacés avec des données partielles qui ne prenaient pas en compte toute la journée j-2.
Le correctif mis en place change le critère de selection des avis pris en compte dans les comptages pour les filtrer par leur date en prenant en compte uniquement le jour, sans l'heure de l'avis. Ainsi, les comptages comptent toujours des jours entiers et quelque soit la politique de remplacement de valeurs, des valeurs complètes seront prises en compte.
Quelques scripts de calcul ne sont pas utilisés, je rouvre cette tâche pour supprimer ces scripts pour garder uniquement les scripts necessaires.
Les scripts suivants ont été supprimés:
Aujourd'hui tous les fonctionnalités qui affichent des données synthétiques sur les avis les calculent en direct sur la base des données détaillées des avis, à l'exception des observatoires qui utilisent un cache sur disk ( #866 ) .
Ces fonctionnalités incluent:
Cette tâche est pour mettre en place un stockage de données agrégées des avis d'une démarche ainsi que le mécanisme de calcul de ces données, pour pouvoir ensuite facilement utiliser les données agrégées pour tous ces fonctionnalités pour les rendre plus rapides, ainsi qu'ajouter des nouvelles fonctionnalités.
La granularité des agrégats qui est suffisante pour répondre aux besoins des écrans ci-dessous est la journée: une entrée dans la base d’agrégats pour chaque jour.
Certaines données des avis ne sont pas "agrégables", plus précisément les données libres à remplir par l'utilisateur (le verbatim ainsi que les 2 champs "autre" des questions sur les aides et les difficultés rencontrées). Le maximum qui pourra être fait est de compter le nombre d'avis qui ont une valeur remplie ou pas pour ces champs libres - à décider si ça sera fait dans la première version ou pas.
La re-ecriture des fonctionnalités existantes pour utiliser les agrégats ne fait pas partie de cette tâche, il faudra créer des tâches individuelles pour chacune des fonctionnalités remplacées.