Dans le domaine de la Business Intelligence ou créations de dashboard métiers, il existe beaucoup d'outils payants et quelques uns open-source. Nous allons vous présenter Metabase qui à l'avantage de proposer leur outil avec les principales fonctionnalités en open source et gratuitement. Cette version est à héberger soi-même (exemple ci-dessous). Sinon ils proposent une version avec plus de sécurité et d'audit mais la marche est haute en terme de prix. Ils ont aussi des offres en mode SAAS.

Installation

Prérequis : base de donnée PostgreSQL

Cette base de donnée sera utilisée pour la configuration de Metabase. Voici un exemple de commandes et script :

# Ajout d'un utilisateur systeme postgres sur le host et creation du repertoire des données de la base
$ sudo useradd -r postgres
$ mkdir data
$ sudo chown postgres:postgres

# Ajout du reseaux docker dédié
$ docker network create MB_NET

# Execution du script start.sh ci-dessous
$ ./start.sh

avec le script start.sh suivant :

docker run -d --name metabaseDB \
	--restart unless-stopped \
	--network MB_NET \
	--user 999:998 \
	-v /etc/passwd:/etc/passwd:ro \
	-v $PWD/data:/var/lib/postgresql/data \
	-e POSTGRES_PASSWORD=metabasedemo \
	-e POSTGRES_USER=metabasedemo \
	-e POSTGRES_DB=metabase \
	-p 15432:5432 \
	postgres:12.4

Image docker de Metabase

Nous utilisons l'image Docker officielle avec le script suivant :

#!/bin/sh

docker run -d -p 3000:3000 \
	--network MB_NET \
	-e "MB_DB_TYPE=postgres" \
	-e "MB_DB_DBNAME=metabase" \
	-e "MB_SB_PORT=5432" \
	-e "MB_DB_USER=metabasedemo" \
	-e "MB_DB_PASS=metabasedemo" \
	-e "MB_DB_HOST=metabaseDB" \
	-e "JAVA_TIMEZONE=Europe/Paris" \
	--name metabase metabase/metabase:latest

et après éxecution de ces scripts vous pouvez aller sur localhost:3000 et vous obtenez l'assitant de première configuration :

Vous avez le choix de plusieurs sources de données :

Overview

La prise en main est plutôt intuitive et simple et orienté utilisateur (et non pas informaticien comme dans beaucoup d'outils BI).

Une base de donnée de démo est fournie ce qui permet de jouer avec l'outil sans ajouter de sources externes.

Metabase vous présente une radiographie de vos données : il a scanné les tables et construit pour vous des premiers tableaux de bords plus ou moins pertinents en fonction de votre modèle.

En plus de la radiographie, vous avez 3 notions essentielles :

  • les requetes que vous pouvez construire de 3 manière différentes, de la question simple à la requete SQL
  • les dashboards qui sera une composition de vos requetes
  • les pulses qui sont des rapports automatiques que vous pouvez envoyer sur Slack ou par mail.

Pour requeter les données, vous avez donc 3 niveaux en fonction de votre apétence technique :

  • La question simple va lire le contenu d'une table choisie. Metabase fonctionnera mieux si votre modèle de donnée source est déjà bien structuré. Il ne vous permet pas de transformation intermédiaires et de préparation de données comme d'autres outils de BI plus évolués.

  • La question personnalisée permetrra les jointures avec d'autres tables, l'ajout de colonnes calculées, le tout de façon graphique
  • La requete native permet de taper ses propres requetes SQL. Vous avez la possibilité d'ajouter des clauses where optionnelles (entre [[ et ]] ) et aussi des variables qui pourront etre utilisées dans les dashboards.

Notes et écueils

Alias et variables

Dans les requetes SQL, le système n'aime pas l'utilisation des alias avec les variables. Un exemple qui ne fonctionne pas :

select p.nom, p.race 
from pet as p
where 1=1
[[ and {{ color }} ]];

Explications :

  • nous utilisons ici une clause optionnelle délimitée entre crochet. Si celle-ci n'est pas présente, la clause where se retrouve vide et la requete n'est plus valide, d'ou l'ajout du 1=1.
  • la variable "color" rattachée à la colonne du meme nom ne passera pas ensuite dans la requete générée par Metabase et vous donnera une erreur.

Notre conseil est d'enlever les alias pour les tables sur lesquelles vous avez des variables.

Notes sur outils de BI

Nous ne ferons pas de comparaisons poussées avec les gros de la BI tels que Qlik ou Tableaux, mais le principal avantage de Metabase est sa prise main facile et rapide et son ergonomie orientée utilisateur final.