J’aime les données et je cherche toujours de nouveaux moyens de rendre de nouvelles données accessibles aux utilisateurs de Tableau. Dans cet exemple, je vais montrer comment accéder à des données d’Internet via une API REST. Cela peut sembler un peu complexe mais c’est assez simple à adapter à vos besoins réels. Si vos besoins spécifiques sont très complexes, les consultants d’Interworks seront très heureux de vous aider… nous aimons les challenges autant que nous aimons les données.
Vous trouverez de nombreux sites Web fournissant des données que vous pourriez utiliser dans vos analyses (météo, cours de bourse, trafic aérien…). Dans cet exemple, nous allons construire une visualisation basée sur les données de J.C.Decaux Velib. Velib est un célèbre service automatisé de location de vélo disponible à Paris et dans beaucoup d’autres villes. En tant qu’utilisateur de Velib, vous pourriez être à la recherche d’un vélo disponible proche de vous ou d’un emplacement libre pour restituer un vélo.
Ce tableau de bord montre toutes les stations Velib à Paris; un code de couleurs affiche le niveau de disponibilité (de vélos ou de places libres). Un clic sur une station va afficher une vue de la station dans Google Street View.
Voici le tableau de bord finalisé :
Les étapes pour créer cet exemple sont:
- Utiliser un programme Python pour se connecter à un fournisseur de données sur Internet et obtenir des données via une API REST
- Le même programme Python va créer un extrait Tableau (fichier TDE) contenant les données sous un format exploitable en utilisant une API fournie par Tableau (Tableau Data Extract API)
- Tableau Desktop sera enfin utilisé pour visualiser le contenu de l’extrait de données Tableau
Attention: l’API Tableau Data Extract ne fonctionne que sous Windows, pas sur Mac.
Cet exemple utilise le language de programmation Python mais le même résultat peut être obtenu avec un programme en C/C++ ou en Java.
A installer avant de commencer:
- Tableau Desktop version 8 ou 9
- Python qui peut être téléchargé ici: https://www.python.org/downloads/windows/, choisissez la dernière version Python 2 et installez-là (Python version 3 non compatible avec l’API Tableau)
- L’API Tableau Data Extract téléchargeable ici: http://www.tableausoftware.com/data-extract-api. Sélectionnez 32bits ou 64bits selon la version de Windows que vous utilisez. Téléchargez simplement l’API, nous verrons plus loin comment l’utiliser.
- Optionnel: une application Google Chrome appelée « Postman » qui permet de tester la partie “accès aux données JSON sur Internet”; accessible sur le Chrome Web Store ici: https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm?hl=en
Etape 1: S’inscrire sur Decaux Open Data
C’est gratuit – Decaux va vous donner une clé API personnelle dont vous aurez besoin pour pouvoir accéder aux données en temps réel.
Le processus d’inscription peut différer chez d’autres fournisseurs de données mais, dans la plupart des cas, ils vous fourniront une clé personnelle d’identification à utiliser avec l’API.
Connectez-vous à cette adresse et suivez les instructions d’inscription: http://developer.jcdecaux.com
Etape 2 (optionnel mais plus sûr): Testez votre connexion et votre clé API
Dans Google Chrome, Lancez l’application Postman, puis entrez l’URL suivante:
https://api.jcdecaux.com/vls/v1/stations?apiKey=entrez-ici-votre-clé-API
puis cliquez sur “Send”; vous devriez voir un résultat comme ci-dessous qui affiche les données au format JSON:
Les données disponibles sont affichées au format JSON; notez que “lat” et “lon” (les coordonnées géographiques des stations) font partie d’un groupe appelé “position”, ce détail est important pour référencer ces données dans le programme Python.
Nous savons maintenant que le clé API est correcte et nous avons une bonne vision de la structure des données utilisables.
Etape 3: les modules Python
Python contient un ensemble de modules standards (équivalent des fonctions ou des procédures) et des modules additionnels peuvent être ajoutés. 3.1/ Téléchargez le module “Tableau Data Extract API for Python” (lien fourni plus haut dans ce document) et installez le dans Python 2.7
- Téléchargez le fichier Zip et décompressez le dans le dossier d’installation de Python, dans le sous dossier Lib: “
Lib” - Ouvrez une fenêtre de ligne de commande Windows (Démarrer > Exécuter > cmd.exe)
- cd
LibDataExtract-xxx (créé par unzip) - python setup.py install
3.2/ Le programme Python a également besoin d’un module appelé “requests”; son installation ne requiert pas de téléchargement préalable:
- Ouvrez une fenêtre de ligne de commande Windows (Démarrer > Exécuter > cmd.exe)
- cd
Scripts - pip install requests (cette commande va télécharger puis installer le module)
Etape 4: Le programme Python Le programme Python (fichier .py à extraire du fichier Zip joint à cet article) va:
- Se connecter au site Web Open Data Decaux
- Lire les informations sur les stations de location de vélo Velib en temps réel
- Créer un extrait de données Tableau appelé “velib.tde” qui sera ensuite exploitable dans Tableau Desktop
Modifiez le programme Python pour insérer votre clé API à l’endroit indiqué, en ligne 40, avant de l’utiliser.
Le programme contient des lignes de commentaire en expliquant le fonctionnement.
Pour exécuter le programme Python, exécutez la ligne de commande suivante:
Ceci va créer l’extrait de données Tableau dans le dossier où se trouve le programme; pour créer cet extrait dans un autre dossier, modifiez la ligne 12 du programme.
Attention: ce programme supprime puis recrée l’extrait, ce qui impose que cet extrait ne soit pas utilisé par Tableau. Pensez à fermer votre rapport Tableau avant d’actualiser l’extrait.
Utilisez ce lien pour télécharger les fichiers de cet exemple
Etape 5: Tableau Desktop
L’exemple de rapport Tableau fourni va utiliser et afficher les données de l’extrait; assurez-vous que l’extrait et le rapport Tableau se trouvent bien dans le même dossier ou modifiez la source de données du rapport Tableau pour “pointer” vers l’extrait.
Ce rapport permet de visualiser, sur une carte de Paris, les vélos disponibles ou les emplacements libres pour restituer un vélo; un code couleur indique le niveau de disponibilité.
Positionnez le pointeur de souris sur une station fera apparaitre, dans une infobulle, l’adresse de la station et le nombre de vélos/emplacements. Cliquer sur une station va afficher une vue Google Street View de l’environnement de la station.
L’intégration de Google Street View dans Tableau fera l’objet d’un futur article dans ce blog…