Automatiser la publication et la mise à jour de données de PostgreSQL vers Data.gouv.fr#
Date de publication initiale : 31 Aout 2021
Prérequis#
- l'interpréteur Bourne-Again shell
- jq, cURL et GDAL doivent être installés
- une connexion internet pour publier vos données
Intro#
Être géomaticien dans un petit EPCI c'est souvent être multitâche et cela implique également d'intervenir sur une diversité de sujets. D'ailleurs celui qui va nous intéresser aujourd'hui, c'est l'Open Data !
Je ne vais pas vous faire un rappel sur l'ouverture des données publiques mais si ça ne vous parle pas, je vous recommande l'introduction de l'article proposé par le Parc national des Écrins (Cendrine HOARAU / Juin 2021) qui propose également une solution pour publier des données en open data sur son propre serveur.
En ce qui me concerne et contrairement au Parc national des Écrins, je n'ai pas de serveur à disposition pour y déposer mes données, j'ai donc développé un processus en Bash qui s'appuie sur OGR pour extraire des données stockées dans une base PostgreSQL et les publier directement sur le portail data.gouv.fr à travers l'API dédiée.
pg2datagouv#
Avant de démarrer, voici une représentation schématique du fonctionnement de pg2datagouv.
graph TD;
A{pg2datagouv.sh} --> G(config.env);
G --> A;
A --> D[dechets_composteurs.sh] --> |Extraction avec OGR| U(composteurs.shp);
D --> G;
G --> D;
U --> H{API};
R{Tâche CRON} --> |Lancer| A;
S(metadonnees.json) --> A;
H --> S;
A --> H;
M(composteurs.env) --> H;
H --> |Publier| X{Data.gouv.fr};
Info
Je rappelle que pg2datagouv repose sur l'utilisation de jq , cURL et GDAL et que vous devez les installer avant de vous lancer.
Dans la suite de ce tutoriel, je vais détailler les étapes à prendre en compte pour pouvoir adapter le projet à votre structure/infrastructure après l'avoir récupéré depuis Github.
Adapter et utiliser pg2datagouv#
1. Configurer l'environnement de travail#
Avant de se lancer, il est bon de paramétrer le fichier de configuration que vous devrez adapter à votre organisation et qui sera utilisé par les différents scripts présentés ci-après. On y définit notamment les différents répertoires de travail ainsi que les variables permettant d'accéder au portail national et à la base de données.
Voici le fichier config.env
à adapter :
2. Un script d'extraction par donnée à publier#
Dans le répertoire scripts, vous devez y placer un script Bash pour chaque donnée à extraire. Chacun des scripts va permettre de personnaliser la mise en forme de la donnée extraite depuis la base PosgreSQL et de gérer les différents formats en sortie (shp, json, sql, csv, ods, gpkg,..).
Voici un exemple d'extraction des informations liées aux composteurs au format shapefile.
Consulter l'exemple des composteurs
3. Intégrer le script d'extraction dans le script parent : pg2datagouv.sh#
Afin d'appeler le script enfant préalablement créé vous devez l'ajouter au script parent qui sera exécuté (un script pour les gouverner tous). De plus, en ajoutant le script enfant vous pouvez également décider d'ajouter un fichier associé comme par exemple une licence qui sera intégrée dans le zip final publié.
Info
Nota les fichiers annexes sont rangés dans le répertoire attachment.
Voici un exemple correspondant toujours à la donnée des composteurs.
Premièrement, ajouter la variable correspondant à la donnée définie
Deuxièmement, définir le script d'extraction de la donnée ainsi que les actions associées.
Définir les actions | |
---|---|
4. Renseigner les métadonnées du jeu de données#
Comme pour le script d'extraction des données, il faut créer un fichier définissant les paramètres de chaque jeu de données publié (titre, licence, description, tags,...) et qui seront utilisés par le site data.gouv.fr pour générer la fiche associée au jeu de données.
5. Exécution#
Une fois que tout est configuré, il est possible de lancer manuellement la publication d'une donnée en passant les paramètres nom_table
code_ EPSG
format
:
Exécution | |
---|---|
Les données seront alors directement publiées sur data.gouv.fr à l'aide de l'API et vous pourrez ensuite voir votre jeu de données dans l'interface de gestion du site.
Info
Une fois le processus d'extraction validé, il est également recommandé d'automatiser la publication à l'aide de tâches cron en définissant la fréquence d'actualisation des ressources.
6. Et après#
Une fois qu'une ressource est publiée pour un jeu de données, leurs métadonnées respectives sont stockées dans le répertoire : data_config_json. Ces fichiers contiennent notamment un identifiant unique exploité pour leurs mises à jour à suivre.
Important
Il est important de ne pas supprimer ces fichiers une fois le jeu de données ou la ressource publiés.
Conclusion#
La solution que je vous propose nécessite un peu de temps de mise en oeuvre et quelques connaissances en bash mais elle permet ensuite de simplifier la publication et surtout l'actualisation de données sur le portail data.gouv.fr.
Auteur·ice#
Florian BORET#
Géomaticien/cartographe, je suis arrivé dans le monde de la géomatique en suivant un cursus « professionnalisant » (BTS Géomètre-Topographe, Licence pro GGAT, Master SIGAT). J’ai ensuite travaillé dans un bureau d’études spécialisé dans la production de données d’occupation du sol et puis pour des raisons personnelles je me suis expatrié quelques années au Sénégal où je me suis lancé comme géomaticien indépendant (DATA\WAX).
Depuis mon retour en France, je suis en charge du SIG de la communauté d'agglomération Lunel Agglo.
En dehors de ces expériences, j'ai aussi régulièrement initié de petits projets personnels iGeo-Topo, GIS-Blog.fr, osm2igeo, osm2igeotopo. Aujourd'hui, c’est avec plaisir que j’interviens également comme contributeur de GeoTribu.
Licence #
Ce contenu est sous licence Creative Commons International 4.0 BY-NC-SA, avec attribution et partage dans les mêmes conditions, sauf dans le cadre d'une utilisation commerciale.
Les médias d'illustration sont potentiellement soumis à d'autres conditions d'utilisation.
Réutiliser, citer l'article
Vous êtes autorisé(e) à :
- Partager : copier, distribuer et communiquer le matériel par tous moyens et sous tous formats
- Adapter : remixer, transformer et créer à partir du matériel pour toute utilisation, exceptée commerciale.
Citer cet article :
"Automatiser la publication et la mise à jour de données de PostgreSQL vers Data.gouv.fr" publié par Florian BORET sur Geotribu sous CC BY-NC-SA - Source : https://geotribu.fr/articles/2021/2021-08-31_pg2datagouv/
Commentaires
Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.
Propulsé par Isso.
Ce contenu est sous licence Creative Commons BY-NC-SA 4.0 International