Apache Superset est l’outil de tableaux de bord open source de la fondation Apache. PostgreSQL est l’une des bases qu’on lui connecte le plus souvent, en particulier quand elle sert d’entrepôt de données alimenté par un ETL comme Apache Hop. Voici le chemin complet, de la base au premier tableau de bord partagé.
1. Créer un compte PostgreSQL en lecture seule
Superset n’a besoin que de lire. Un compte dédié, limité au schéma exposé, évite bien des surprises :
CREATE ROLE superset_ro LOGIN PASSWORD 'mot-de-passe-robuste';
GRANT CONNECT ON DATABASE dwh TO superset_ro;
GRANT USAGE ON SCHEMA mart TO superset_ro;
GRANT SELECT ON ALL TABLES IN SCHEMA mart TO superset_ro;
ALTER DEFAULT PRIVILEGES IN SCHEMA mart
GRANT SELECT ON TABLES TO superset_ro;
La dernière ligne donne automatiquement accès aux tables créées plus tard dans le schéma (attention : elle s’applique aux tables créées par le rôle qui exécute la commande). Pensez aussi à autoriser l’adresse du serveur Superset dans pg_hba.conf si la base n’est pas sur la même machine.
2. Déclarer la base dans Superset
Dans Superset : Settings → Database Connections → + Database, choisissez PostgreSQL, puis renseignez hôte, port, base, utilisateur et mot de passe, ou directement l’URI SQLAlchemy :
postgresql://superset_ro:mot-de-passe@pg.exemple.local:5432/dwh
Le pilote psycopg2 est fourni avec les images Docker officielles de Superset ; sur une installation manuelle, ajoutez-le au besoin. Cliquez sur Test connection avant d’enregistrer.
Dans l’onglet Advanced, quelques réglages utiles :
- Expose database in SQL Lab : à activer pour les analystes qui écrivent du SQL.
- Allow DML : à laisser désactivé. Le compte est déjà en lecture seule, autant le dire deux fois.
- Chart cache timeout : quelques minutes à quelques heures selon la fraîcheur réelle des données, pour soulager PostgreSQL.
3. Créer les jeux de données
Superset ne dessine pas directement des tables : il passe par des datasets.
- Dataset physique : pointe sur une table ou une vue (Datasets → + Dataset). C’est le choix par défaut.
- Dataset virtuel : une requête SQL enregistrée depuis SQL Lab. Pratique pour prototyper, mais une vue PostgreSQL reste plus facile à maintenir et à tester.
Sur chaque dataset, définissez les métriques (par exemple SUM(montant_ht)) et marquez la colonne de date comme temporelle : tous les graphiques en profiteront.
4. Construire les graphiques et le tableau de bord
Depuis un dataset, créez quelques graphiques simples : un indicateur (Big Number), une série temporelle, un tableau. Ajoutez-les à un nouveau tableau de bord, puis ajoutez des filtres natifs (période, région, produit) qui s’appliquent à tous les graphiques issus du même dataset.
5. Partager sans tout ouvrir
Superset gère les droits par rôles : donnez aux lecteurs l’accès au tableau de bord et à ses datasets, sans accès à SQL Lab. Pour qu’une agence ou un service ne voie que ses lignes, la sécurité au niveau ligne (Row Level Security) ajoute un filtre automatique par rôle.
Les erreurs classiques
- Brancher Superset sur la base de production applicative plutôt que sur un entrepôt ou une réplique.
- Multiplier les datasets virtuels jamais documentés.
- Oublier les index sur les colonnes filtrées : le tableau de bord est lent, et c’est PostgreSQL qui est en cause.
Aller plus loin
La formation Apache Superset — Explorer ses données et construire des tableaux de bord reprend ce parcours de SQL Lab au tableau de bord interactif. Pour déployer et sécuriser Superset en production (Docker, Kubernetes, rôles, sécurité au niveau ligne), voir Apache Superset — Administration, sécurité et intégration. Toutes nos formations sont sur la page Formations Apache Superset, et côté base de données sur Formations PostgreSQL.