Accueil / Blog / Métier / 2018 / Superset, l'outil de DataViz de AirBnB

Superset, l'outil de DataViz de AirBnB

Par Bérengère Mathieu — publié 01/03/2018
Superset est un outil développé par AirBnB. Son objectif consiste à faciliter la prise de décision au sein d'une entreprise, en simplifiant l'accès à ses données. Superset permet notamment de regrouper les informations fournies par différentes sources, de créer des graphiques interactifs et de les partager sous forme de tableaux de bord.
Superset, l'outil de DataViz de AirBnB

Mise en place

La procédure d'installation de Superset n'est pas très complexe. Afin de pouvoir tester rapidement l'application, j'ai :

  1. installé Superset avec pip ;
  2. créé un compte administrateur ;
  3. initialisé la base de donnée où Superset regroupera l'ensemble des informations ;
  4. créé les roles par défauts ;
  5. lancé le serveur

Le tout, en cinq petites instructions :

# installation
pip install superset
# compte administrateur
fabmanager create-admin --app superset
# base de donnée
superset db upgrade
# initialisation
superset init
# c'est parti !
superset runserver

Ajouter ses propres données

Superset permet de charger quelques données de démo, mais j'ai trouvé plus intéressant de travailler sur mes propres données, stockée dans des fichiers csv. La première étape consiste à créer une base de donnée. Je me suis contentée d'une base de donnée Sqlite3, que je suis venue enrichir avec les données fournies par le National Center for Environnmental Information (NOAA de son petit nom). NOAA met ses données à disposition au format csv. C'est la bibliothèque Pandas qui va me permettre de créer une table à partir de chaque fichier csv.

import sqlite3
import pandas as pd
# créer la base de donnée
conn = sqlite3.connect('superset.db')
# charger les données météorologique pour l'année 2016, au Texas
texas_2016 = pd.read_csv('noaa _Texas_2016.csv')
# créer la table correspondante
texas_2016.to_sql('texas_2016', conn)
# se déconnecter
conn.close()

Ensuite il suffit d'aller dans l'onglet Sources, de sélectionner Bases de données, de cliquer sur le bouton vert permettant d'ajouter une nouvelle base de données et de renseigner les champs : :

  • Base de données : le nom de votre base
  • URI SQLAlchemy : le chemin vers votre base (dans mon cas il s'agit du chemin absolu vers ma base sqlite3 devant lequel j'ajoute le prefixe sqlite:///)

Ajouter une base de donnée

Vous pouvez tester la connexion pour vérifier que votre base est correctement détectée et appuyer sur le bouton Save en bas de la page. Remarquer que ma table texas_2016 a bien été retrouvée.

Sauvegarde une base de donnée

Récupérer les données de ma table

Il me reste ensuite à venir ajouter les tables qui m'intéressent. Dans l'onglet Sources, je sélectionne Table. Pour le moment Superset n'a aucun enregistrement. Je dois en créer un, à partir de la table texas_2016.

Sauvegarder une table

Un premier graphique très simple

Une fois votre table enregistrée, il va vous falloir l'éditer et aller dans Lister les colonnes. Pour chaque colonne, vous allez devoir préciser comment l'utiliser dans les graphiques générés par Superset. Par exemple, est-il possible de grouper les données en fonction de cette colonne ? Doit-on conserver les valeurs distinctes ? Doit-on calculer la somme de ces données ? etc.

Un exemple de configuration possible

Une fois validée, Superset vous permet alors de créer un graphique. L'un des graphiques les plus simples est la vue tabulaire, vous permettant d'afficher un ou plusieurs attributs de vos données.

Un exemple de vue tabulaire

Utiliser des fonds de carte avec MapBox

Mes données météorologiques pour le Texas correspondent à la moyenne annuelle de relevés de températures par différentes stations. Je vais donc souhaiter pouvoir afficher les différentes stations sur une carte.

Superset utilise les fonds de carte de MapBox. Il va donc vous falloir créer un compte Mapbox et récupérer un jeton (token) associé à ce dernier, puis le fournir à Superset via un fichier de configuration.

Je peux ensuite produire une visualisation plus parlante des températures enregistrées par chaque station, en plaçant ces dernières sur une carte et en les représentant par un point dont la taille varie en fonction de la température.

Attention, pour que votre affichage soit correct, il faut que vos données soient groupées au moins selon la latitude, la longitude et la température. Selon le niveau de zoom plusieurs stations peuvent être regroupées. Dans ce cas, elles apparaissent sous la forme d'un point légèrement transparent. La température affichée (en degrés Farenheit) pour cet ensemble de station est la température médiane. Nous aurions pu choisir d'afficher la moyenne ou la somme des températures des stations regroupées.

Le résultat, avec un fond de cart Mapbox

Les tâches pour lesquelles Superset est très bon

Conçu pour mutualiser différentes sources de données, Superset gère un très grand nombre de bases de données. Une fois les différentes bases connectées, l'ensemble des tables qu'elles contiennent devient accessible. Pour créer un graphique il suffit de sélectionner une table, de choisir un type de graphique, de définir les données de la table qui vont venir l'alimenter et de générer la visualisation.

Je peux par exemple afficher le nombre de naissance par département en France soit sous la forme d'un diagramme en camembert :

Soit sous la forme d'une carte (ce qui est quand même plus lisible) :

Une quarantaine de graphiques est disponible. Une fois vos graphiques créés, vous pouvez en combiner plusieurs dans un tableau de bord, ce qui permet d'avoir une vue d'ensemble sur une thématique particulière.

Les graphiques proposés par Superset sont classes, l'interface web est très confortable à utiliser, la création de tableaux de bord intuitive et rapide. Superset va en plus gérer tout seul la cohérence d'un graphique à l'autre, en attribuant la même couleur pour deux mesures identiques.

Là où ça coince

Superset est génial ... tant que vous restez dans ce qu'il sait bien faire. Dès qu'il s'agit de croiser les données de différentes tables, ça commence à coincer. Autre souci, même si Superset propose une grande variété de graphiques, il est difficile de s'en servir pour proposer une visualisation personnalisée. Par exemple, lorsque j'affiche le nombre de naissance par département sous forme de carte, les palettes de couleurs sont extrêmement limitées. Et ce n'est pas qu'une question d'esthétique : la couleur apporte elle aussi de l'information. En utilisant une palette de bleu comme sur la seconde figure, il n'est pas évident que le bleu foncé corresponde à des départements ayant un taux de naissance important. Et pourtant, il s'agit de la palette adaptée. Les autres auraient plutôt tendance à induire en erreur, comme ce dégradé du jaune vers le rouge, où les départements à forte natalité ressemblent à des zones critiques.

Alors Superset qu'est ce que j'en fais ?

Superset est un outil plein de qualités : facile à installer, léger, intuitif il permet de créer rapidement des infographies qui claquent et ce, même lorsque les données proviennent de différentes sources. Il est parfait pour un usage interne afin d'aiguiller les décisions des employés d'une entreprise. Pour le DataScientist qui souhaite explorer des données, le fait de devoir ajouter celle-ci dans une base et ensuite de la charger avec Superset est un petit peu complexe, mais l'utilisation de Pandas permet de faciliter grandement cette étape. Là où Superset montre ses limites, c'est dans la création de visualisations précises (on regrettera qu'aussi peu de palettes de couleur soient disponibles) ou pour croiser les données de différentes tables. En ce qui me concerne, pour ces deux tâches, je préfère me tourner vers d'autres solutions.

Aller plus loin

Si cet article vous a intéressé, pourquoi ne pas venir parler de visualisation de données lors de l'une de nos deux formations : en Python Scientifique ou en Machine Learning.

ABONNEZ-VOUS À LA NEWSLETTER !
Voir aussi
Faire des calculs géographiques en Python sans PostGIS Faire des calculs géographiques en Python sans PostGIS 07/05/2018

PostGIS est souvent indispensable dans les applications géographiques. Mais ce n'est pas toujours ...

Formation Machine Learning du 23 au 25 mai à Paris Formation Machine Learning du 23 au 25 mai à Paris 20/04/2018

Profitez de cette session parisienne pour vous familiariser avec le Machine Learning !

Lancement d'une formation au Machine Learning Lancement d'une formation au Machine Learning 21/11/2017

Cette formation présente le domaine du Machine Learning, au travers de l'écosystème scientifique ...

Machine Learning : classer automatiquement vos données à l'import Machine Learning : classer automatiquement vos données à l'import 20/03/2018

Comment utiliser des algorithmes de machine learning pour importer correctement des données dans ...

Hackaviz 2018, recette d'une visualisation de données 01/04/2018

Retour sur notre participation à un concours toulousain.