Open Data Toulouse

Cas pratique:

Voici une illustration de ce qu'il est possible de faire avec un outil tel que Talend TOS DI. Le but de l'exercice est d'intégrer les données fournies par l'Open Data de la ville de Toulouse (http://data.grandtoulouse.fr/) et plus précisément les données concernant le domaine de la petite enfance (position des crèches, écoles maternelle et primaire) afin d'alimenter un site web affichant les données récupérées sur Google Maps à partir de fichiers .JSON.

En d'autres termes nous souhaitons intégrer les données venant de ce site:

img site open data toulouse

 

Pour arriver à alimenter ce site:

img site inf petite enfance

LES ÉTAPES A PRÉVOIR

Pour arriver à cela, nous devons prévoir plusieurs étapes:

- arriver à reproduire la navigation sur le site "Open Data Grand Toulouse" afin de récupérer les 3 fichiers qui nous intéressent.

- rapatrier les fichiers compressés en local, puis les décompresser pour pouvoir les exploiter et choisir le format qui nous correspond (.CSV)

- contrôler les formats des fichiers récupérer et les transformer dans le format attendue pour que notre système cible (notre site web) puisse les utiliser (car les 3 fichiers n'ont pas la même structure de données!)

- convertir nos fichiers .CSV en .JSON

- transférer les fichiers .JSON générés sur notre site web via le protocole FTP.

 

COMMENT FAIRE AVEC TALEND?

Voici de manière illustrée, les différentes étapes à prévoir dans Talend pour réaliser cette intégration:

- construction d'un job principal qui va enchaîner des sous-jobs correspond aux grandes étapes pour chacun des 3 fichiers (dans un soucis d'organisation et de lisibilité des jobs créés):

main job

 

- accès à la page de validation d'accès aux données (formulaire HTTP), récupération du fichier .ZIP, décompression dans la foulée. Ces étapes sont réalisables via 2 composants:

job recup

 

- contrôle et traitement des fichiers en local, transformation au format .JSON avec une structure spécifique:

convert job

 

- intégration au site web de présentation via un transfert FTP:

job transfert

 

Nous pouvons voir également la traduction en code Java de ce job à travers le Studio:

code java studio

 

Au final nous avons un job prêt à l'emploi, exécutable directement dans le Studio ou bien exportable sous la forme d'un code source Java autonome et exécutable comme n'importe quel programme Java.

L'export sous forme de code autonome exécutable est réalisable en 2 clics de bouton. Un .BAT est automatiquement généré pour lancer à partir de Windows ou un .SH à partir de Linux:

fichiers java

 

Un fichier de paramétrage par défaut est également incorporé afin de pouvoir modifier les paramétrages du contexte sans avoir à recompiler tout le code du projet (très pratique!):

fichier param

 

Dans un souci de simplicité nous ne traiterons pas des systèmes d'alerte, de reprise sur incidents ou de logs (mais qui peuvent être réalisés comme un job dédié dans Talend!).

De plus, nous n'avons pas factorisé les jobs avec un traitement unique paramétré pour les 3 fichiers à importer (crèche, maternelle et élémentaire), mais c'est tout à fait possible de le faire.

Le job ainsi réalisé peut-être déclenché via un planificateur de tâche quelconque et exécuté sur n'importe quelle machine munie d'une machine virtuelle Java (JVM).

 

CONCLUSION

Cet exemple illustre la notion d'intégration de données et comment un outil comme Talend peut y répondre. Nous avons manipulé ici le protocole HTTP et FTP, le format compressé .ZIP, des fichiers .CSV et .JSON et manipulé des formats de fichiers. Ceci est un petit exemple de ce qu'il est possible de faire avec un outil comme Talend. Il sera généralement plus courant d'avoir également à manipuler des bases de données, des Web Services ou des services spécialisés tels que MOM ou JMS.

 

SOURCES UTILISÉES DANS CE LABO

- données sources du site "Open Data Grand Toulouse": suivre ce lien

- Talend Open Studio for data integration v5.1: suivre ce lien

- le site du framework web Exhibit utilisé pour réaliser le site "Carte des infrastructures pour la petite enfance à Toulouse": suivre ce lien

- firebug, indispensable pour le déboguage web: suivre ce lien

- le site "Carte des infrastructures pour la petite enfance à Toulouse" qui est réellement fonctionnel: suivre ce lien