177 lines
7.4 KiB
Markdown
177 lines
7.4 KiB
Markdown
---
|
|
title: Apache Superset
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, database, bi, analytics, visualization, python, typescript, sql, apache]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Database, https://github.com/apache/superset]
|
|
---
|
|
|
|
# 🗄️ Apache Superset
|
|
|
|
> **La plateforme de data visualisation et d'exploration** : dashboards interactifs, SQL Lab, 40+ types de graphiques, alternative open source à Tableau et Power BI.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [superset.apache.org](https://superset.apache.org/) |
|
|
| **GitHub** | [apache/superset](https://github.com/apache/superset) |
|
|
| **License** | Apache-2.0 |
|
|
| **Langage** | Python (backend) + TypeScript (frontend) |
|
|
| **Étoiles GitHub** | 73k ⭐ |
|
|
| **Dernière MAJ** | 2026-06-05 |
|
|
| **Catégorie** | [[cat-database\|Database]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Apache Superset** est une **plateforme de Business Intelligence et d'exploration de données** incubée à l'Apache Software Foundation et utilisée en production par Airbnb, Netflix, Twitter ou encore Lyft. Ce n'est **pas un SGBD** : Superset se connecte à vos bases existantes (PostgreSQL, MySQL, ClickHouse, BigQuery, Snowflake, etc.) pour interroger, visualiser et partager des dashboards.
|
|
|
|
L'outil brille par sa **profondeur d'analyse** : un **SQL Lab** intégré pour requêter directement les données brutes, un constructeur de graphiques drag-and-drop couvrant **plus de 40 visualisations** (cartes géographiques, sankey, heatmaps, time-series, funnel, gauge…), un système de **dashboards** composables, et un **RBAC** fin (rôles, permissions par dataset, row-level security).
|
|
|
|
À mettre en regard de **Metabase** (plus simple, idéal pour les non-techs) et de **Tableau / Power BI** (propriétaires, plus polished mais hors de prix). Superset vise le même public que Tableau avec une courbe d'apprentissage plus raide mais une flexibilité quasi illimitée.
|
|
|
|
- ✅ **SQL Lab** : éditeur SQL avec autocomplete, onglets multi-requêtes, résultats téléchargeables en CSV
|
|
- ✅ **40+ types de graphiques** : time-series, sankey, sunburst, word cloud, deck.gl, etc.
|
|
- ✅ **Dashboards personnalisables** : filtres cross-chart, auto-refresh, fullscreen
|
|
- ✅ **Connecteurs natifs** : PostgreSQL, MySQL, MariaDB, SQLite, ClickHouse, BigQuery, Snowflake, Druid, MSSQL, Oracle…
|
|
- ✅ **Alertes et scheduled reports** par email/Slack
|
|
- ✅ **Authentification** : DB, LDAP, OAuth, OIDC, REMOTE_USER
|
|
- ✅ **RBAC** granulaire + Row Level Security
|
|
- ✅ **API REST** complète
|
|
- ✅ **Jinja templating** dans les requêtes SQL pour des dashboards paramétrés
|
|
|
|
**Public cible** : entreprises, data analysts, équipes ops qui veulent explorer leurs données sans exporter vers Tableau/Looker. **Pas pour les débutants** absolus : la mise en place est plus lourde que Metabase.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Option 1 : Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
superset:
|
|
image: apache/superset:latest
|
|
container_name: superset
|
|
restart: unless-stopped
|
|
environment:
|
|
SUPERSET_SECRET_KEY: "CHANGEZ_CE_SECRET_LONG_ET_ALEATOIRE"
|
|
MAPBOX_API_KEY: ""
|
|
ports:
|
|
- "8088:8088"
|
|
volumes:
|
|
- superset-data:/app/superset_home
|
|
- ./config:/etc/superset
|
|
depends_on:
|
|
- superset-db
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.superset.rule=Host(`superset.example.com`)"
|
|
- "traefik.http.routers.superset.entrypoints=websecure"
|
|
- "traefik.http.routers.superset.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.superset.loadbalancer.server.port=8088"
|
|
|
|
superset-db:
|
|
image: postgres:16-alpine
|
|
container_name: superset-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: superset
|
|
POSTGRES_USER: superset
|
|
POSTGRES_PASSWORD: "changez_moi"
|
|
volumes:
|
|
- superset-db:/var/lib/postgresql/data
|
|
|
|
volumes:
|
|
superset-data:
|
|
superset-db:
|
|
```
|
|
|
|
```bash
|
|
# Initialisation
|
|
docker compose up -d superset-db
|
|
docker compose run --rm superset superset db upgrade
|
|
docker compose run --rm superset superset init
|
|
docker compose run --rm superset superset fab create-admin \
|
|
--username admin --firstname Admin --lastname User \
|
|
--email admin@example.com --password 'ChangeMe123!'
|
|
docker compose up -d superset
|
|
```
|
|
|
|
### Option 2 : Installation native (bare-metal)
|
|
|
|
```bash
|
|
# Nécessite Python 3.10+
|
|
pip install apache-superset
|
|
superset db upgrade
|
|
superset fab create-admin
|
|
superset init
|
|
superset run -p 8088 --with-threads --reload --debugger
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Accéder à l'UI** : `https://superset.example.com` et login avec le compte admin créé
|
|
2. **Ajouter une connexion DB** : Settings → Database Connections → + Database, saisir la SQLAlchemy URI (`postgresql://user:pwd@host:5432/db`)
|
|
3. **Créer un dataset** : Datasets → + Dataset, choisir la table et configurer les métriques
|
|
4. **Construire un chart** : Charts → + Chart, choisir le type, le dataset, écrire la requête
|
|
5. **Assembler un dashboard** : Dashboards → + Dashboard, glisser-déposer les charts, ajouter des filtres
|
|
6. **Configurer les alertes** : Charts → bell icon → seuil + canal (email/Slack)
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- [[app-metabase]] — Plus simple et plus accessible aux non-techs
|
|
- **Redash** — Historique des outils BI SQL, plus basique
|
|
- **Lightdash** — Orienté dbt, plus moderne
|
|
- **Grafana** — Quand la source principale est du time-series
|
|
- **Count** — (ex Hyperquery) notebook-style BI
|
|
|
|
### Propriétaires
|
|
- **Tableau** — Le leader, cher (~70 $/user/mois)
|
|
- **Microsoft Power BI** — Intégré à l'écosystème Microsoft
|
|
- **Looker** — Google Cloud, orienté BigQuery
|
|
- **Mode Analytics** — Notebooks + dashboards
|
|
- **Sisense** — BI d'entreprise on-prem ou cloud
|
|
|
|
### Comparaison
|
|
|
|
| Critère | Apache Superset | Metabase | Tableau |
|
|
| :--- | :--- | :--- | :--- |
|
|
| Licence | Apache-2.0 | AGPL-3.0 | Propriétaire |
|
|
| Prix | Gratuit | Gratuit / Pro 25$/user | ~70$/user/mois |
|
|
| Types de charts | 40+ | ~20 | 50+ |
|
|
| SQL Lab | ✅ Avancé | ✅ Basique | ❌ |
|
|
| Self-hosted | ✅ | ✅ | ❌ |
|
|
| Cloud | ✅ | ✅ | ✅ |
|
|
| Courbe d'apprentissage | Raide | Douce | Moyenne |
|
|
| Communauté | Très grande | Grande | Propriétaire |
|
|
|
|
**Verdict** : Superset est le choix **pro open source** quand on a besoin de la profondeur d'analyse de Tableau sans le prix. Pour un usage plus léger, **Metabase** est plus pragmatique.
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- **Authentification** : DB, LDAP, OAuth, OIDC, REMOTE_USER (SSO recommandé via Traefik)
|
|
- **HTTPS obligatoire** via [[app-traefik]] — la plateforme expose des credentials de BDD
|
|
- **Row Level Security** pour restreindre l'accès à certaines lignes par utilisateur/rôle
|
|
- **Secrets** : `SUPERSET_SECRET_KEY` doit être long et aléatoire, stocké hors de l'image
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Site officiel](https://superset.apache.org/)
|
|
- [GitHub apache/superset](https://github.com/apache/superset)
|
|
- [Documentation](https://superset.apache.org/docs/intro)
|
|
- [Tutoriels officiels](https://superset.apache.org/docs/creating-charts-dashboards/exploring-data)
|
|
|
|
## Pages Liées
|
|
- [[cat-database]] — Catégorie Database / BI
|
|
- [[app-postgres]] — Source de données privilégiée
|
|
- [[app-mysql]] — Source de données courante
|
|
- [[app-traefik]] — Reverse-proxy HTTPS
|
|
- [[recettes-docker-compose]] — Recettes Docker Compose
|
|
- [[securisation-home-lab]] — Bonnes pratiques
|
|
- [[glossaire-homelab]] — Glossaire
|