Metabase : Les concepts de question, visualisation et dashboard

Voyage dans le merveilleux monde des plateformes Data

Dans les billets précédents, nous nous sommes intéressés aux étapes de transformation et de préparation de la donnée à l’aide de l’outil DBT au sein de la plateforme DataTask. Une fois la donnée mise en forme, vient ensuite l’heure de la visualisation et de la mise à disposition à des fins d’exploitation par les utilisateurs métiers. Cette partie va être assurée par l’outil Metabase intégré à DataTask.

Aujourd’hui, je vais vous présenter rapidement les principales fonctionnalités de Metabase pour ensuite aborder le cas concret de la publication d’un dashboard reposant sur les données que nous avons préparées précédemment.

Metabase : concepts et fonctionnalités

Metabase est un outil de BI très accessible aux utilisateurs métiers qui peuvent construire facilement des dashboards. Il peut également être utilisé par les data analystes / scientistes pour faire de l’exploiration autour de la donnée.

Metabase permet de se connecter à de nombreuses sources de données avec des connecteurs disponibles en standard (MySQL, Postgres, BigQuery, MongoDB, Google Analytics, Snowflake, etc.) mais cette liste est encore plus importante grace aux drivers additionnels mis à disposition par la communauté (CSV, Firebird, Impala, Neo4J…).

Questions et visualisations

Les questions représentent l’un des éléments principaux de Metabase. Une question permet de requêter la donnée pour ensuite l’afficher sous forme de table ou de graphique. Les questions peuvent être posées de 3 manières différentes selon les besoins ou les compétences de l’utilisateur :

  • Simple question : c’est la manière la plus simple et la plus rapide pour accéder à la donnée. Il suffit d’indiquer la table à prendre en compte et cette dernière est immédiatement visualisée. Il est ensuite possible de préciser la question en utilisant les boutons “Filter” (pour filtrer) et “Summarize” pour aggréger la donnée.

simple question

  • Custom question : ce mode est basé sur le même principe que “simple question” mais permet de définir l’ensemble des filtres et aggrégations que l’on souhaite appliquer avant de visualiser le résultat. Il permet également de créer des jointures entre tables, de définir le tri et de prévisualiser le résultat à chaque étape. L’exemple ci-après permet de récupérer les sessions filtrées sur le pays “France” et d’aggréger sur la colonne “os” de manière à compter le nombre de session pour chaque OS.

custom question

  • Native query : c’est le mode le plus avancé. Il permet d’écrire directement des requêtes SQL. Il peut être utilisé lorsque les limites des 2 modes précédents sont atteintes (par exemple pour faire un calcul complexe sur une colonne). Pour écrire les requêtes, Metabase dispose d’un éditeur avancé (coloration syntaxique, complétion automatique, variables, snippets, prévisualisation des données).

Un fois la question posée, il est possible de choisir le type de visualisation que l’on souhaite parmi un panel assez fourni :

visualisation types

Chaque type de visualisation est également customisable (affichage, axes, labels).

Pour nous aider dans la création des questions et visualisations associées, Metabase dispose d’options très intéressantes notamment :

  • Information et édition des métadata sur les bases / tables disponibles (colonnes, types de données…)
  • Fonction “X-ray” : permet d’afficher un rapport complet automatique sur une table
  • Fonction “Compare” : permet de générer un rapport complet pour mettre en évidence une catégorie par rapport au reste (par exemple comparer les sessions en France par rapport à l’ensemble du monde).

Dashboards

Les dashboards permettent de rassembler des visualisations de plusieurs questions au sein d’un même rapport qui va permettre de répondre à une problématique métier. Ces dashboards seront ensuite publiés afin de les rendre accessibles aux utilisateurs concernés.

Les dashboards sont composés de 3 types d’éléments :

  • Les visualisations,
  • Les blocs markdown (Blocs de texte formaté/images),
  • Les filtres.

dashboard example

Metabase dispose de nombreuses autres fonctionnalités, je vous invite à consulter la documentation qui est assez bien faite.

Création, édition et plublication d’un dashboard

Pour illustrer l’utilisation de Metabase au sein de la plateforme DataTask, nous allons construire un dashboard à partir de nos données raffinées des sessions.

Pour générer rapidement un rapport sur la table sessions_final, nous allons utiliser la fonction “x-ray” ce qui permet d’obtenir immédiatement un premier draft que nous allons éditer par la suite :

dashboard draft x-ray

Il est ensuite possible de sauvegarder ce rapport et de l’éditer pour l’adapter au besoin.

On peut par exemple :

  • Editer le titre du rapport pour le retrouver facilement,
  • Modifier les titres markdown pour une meilleure description,
  • Editer les paramètres du filtre countryname pour mettre une valeur par défaut à “France”,
  • Supprimer certains graphiques inutiles (ici les parties géographiques),
  • Ajouter une nouvelle visualisation sous forme de table pour étudier les clics par région.

dashboard final sessions

A noter qu’il est également possible de configurer la fréquence de rafraichissement automatique du rapport.

Le rapport final est maintenant directement accessible aux utilisateurs de DataTask dans l’application Metabase. Néanmoins, l’accès à ces informations peut être sécurisé et/ou facilité à l’aide de différentes options :

  • La publication directe de ce dashboard en tant qu’application dans DataTask afin de le rendre plus facilement accessible et/ou d’en restreindre l’accès,
  • La définition des accès directement dans Metabase à travers la gestion des droits,
  • L’insertion du dashboard au sein d’une autre application dans DataTask (embedding),
  • Le partage automatisé du dashboard via mail ou slack.

Le dashboard peut également servir de base pour une exploration plus poussée. En effet, les graphiques le consistituant étant intéractifs, il est possible de “poser” une nouvelle question en utilisant un graphique existant. Par exemple, en utilisant le graphique “Sessions_final per devicetype” je peux en un clic, afficher la répartition des OS pour le devicetype=Desktop :

desktop sessions by os

Conclusion

Nous avons maintenant un aperçu global de l’utilisation de la plateforme DataTask pour mettre en place très simplement un workflow complet de traitement et d’analyse de la donnée grâce à l’intégration des outils DBT pour les transormations et Metabase pour l’exploration et le reporting.

Dans le prochain billet, nous nous intéresserons à des aspects de gouvernance autour de la donnée : la validation des données par l’ajout de tests à nos modèles dbt et l’enrichissement de la documentation pour faire le lien entre les rapports/dashboards et les sources/données transformées.

Ce billet fait partie d’une série :

  1. DataTask pour construire une self-service BI
  2. Une revue des principaux concepts de dbt et création d’un premier modèle dans DataTask (ce billet)
  3. L’étude du workflow de transformation complet via DBT ainsi que la présentation de la documentation automatique associée
  4. Une revue rapide des principales fonctionnalités de Metabase, et plus particulièrement la création d’un dashboard d’analyse automatique, son édition et sa sauvegarde pour publication
  5. L’utilisation de fonctionnalités supplémentaires de DBT pour améliorer la gouvernance autour de la donnée : la création de tests sur la donnée et documentation de lineage à travers les exposures
  6. La mise en place d’un pipeline DataTask de manière à assurer la mise à jour automatique des données au cours du temps

Laurent Couarraze


metabase, dashboard, question, visualisation, exploration, concept