Évolution de la chaîne de nettoyage des données brutes de l'Assemblée

Situation actuelle

Les types bruts (raw_types) servent à valider les données brutes récupérées de l’Assemblée nationale.

Si les types bruts valident les dernières données brutes récupérées de data.assemblee-nationale.fr, les données brutes sont converties en données nettoyées, qui sont elles-mêmes validées avec les types nettoyés (on n’est jamais trop prudent :smile:).

Ces types bruts sont générés par quicktype puis légèrement retravaillés à la main afin de les rendre un peu plus génériques.

Ces types bruts ne sont pas mis à jour tant qu’un problème de validation des données ne se produit pas.

Quand une erreur de validation se produit, le type brut concerné est mis à jour (par quicktype, plus quelques opérations manuelles), puis le type nettoyé est mis à jour en appliquant manuellement les différences trouvé dans le nouveau type brut par rapport à sa version précédente

Avantages

Avoir des types bruts générés automatiquement d’après les données permet de s’assurer qu’ils sont à jour.

Quand une validation par les types bruts échoue, c’est un indice que le format des données brutes a évolué et qu’il faut mettre à jours les types bruts ainsi peut-être que les types nettoyés.

Inconvénients

Comme les données brutes sont toujours validées avec les types bruts et que ces types bruts sont fragiles (plus fragiles que les types nettoyés), une erreur de validation se produit fréquemment alors que les données auraient quand même pu être converties en données nettoyées valides.

Du coup, plusieurs fois par mois, la mise à jour des données est bloquée jusqu’à ce qu’un débogage manuel permette de mettre à jour les différents types et de relancer la conversion et la publication des données. Comme les données de l’Assemblée sont principalement mises à jour la nuit, ce débogage retarde la mise à jour des données jusqu’au milieu de matinée dans le meilleur des cas et de plusieurs jours dans le pire des cas.

Or dans la majorité des cas, les données auraient pu être converties sans problème si on ne les avait pas validées avec les types bruts.

Ce processus n’est pas soutenable, car il entraine des contraintes de disponibilité sur les rares personnes capables d’actualiser les types (1 seule personne actuellement) et il retarde de plusieurs heures la mise à disposition de données actualisées, ce qui est un problème majeur pour certaines informations comme les réunions, les actualisations de dossiers législatifs, etc.

Solution envisagée

Ne plus mettre la validation des données brutes par les types bruts dans la chaîne de production des données nettoyées. Mais la mettre dans une chaîne parallèle.

Comme cela, quand les types bruts ne valident pas les données brutes, mais que les données nettoyées sont quand mêmes produites, les développeurs ont toute leur temps pour actualiser les types bruts et éventuellement nettoyés.

2 « J'aime »