AccueilBlogBI self-service : Metabase, Streamlit, Redash
Guide recrutement data

Test technique BI self-service : Metabase, Streamlit, Redash

Metabase, Streamlit et Redash repondent a un besoin croissant : des dashboards rapides a deployer, sans passer par un Data Analyst pour chaque requete. Savoir positionner ces outils — et en assurer la gouvernance — est un vrai differenciateur en entretien.

Data Builder·Juin 2025·7 min de lecture·Data Analyst · Analytics Engineer
Sommaire
  1. Metabase : self-service SQL
  2. Streamlit : dashboards Python
  3. Redash : SQL collaboratif
  4. Comparaison des outils
  5. Quel outil selon le contexte ?
  6. Gouvernance et pieges
  7. Grille par niveau

Les outils BI self-service permettent aux equipes metier d'explorer les donnees sans solliciter un Data Analyst a chaque requete. En entretien, on evalue la capacite a choisir le bon outil selon le contexte — et a mettre en place la gouvernance qui evite le chaos.

1Metabase : le self-service SQL le plus accessible

Question discriminante

Quelle est la difference entre les questions visuelles et les questions SQL natives dans Metabase ? Pourquoi ne pas donner l acces SQL natif a tous les utilisateurs ?

  • Question Builder (visuel) — interface sans SQL : l'utilisateur choisit une table, des filtres, des groupements. Adapte aux profils non techniques
  • Questions SQL natives — SQL direct dans Metabase. Puissant mais a restreindre : les requetes non optimisees peuvent saturer la base
  • Modeles — requetes SQL preecrites par l'equipe data, exposees comme des tables virtuelles pour les utilisateurs metier
  • Connexions supportees — PostgreSQL, MySQL, BigQuery, Snowflake, Redshift, MongoDB, DuckDB, SQLite et plus
  • Exploration automatique — Metabase genere des explorations automatiques pour chaque table (distributions, tendances, valeurs nulles)

Bonne pratique : ne pas donner l'acces SQL natif a tout le monde. Creer des Modeles pour exposer des vues preoptimisees. Pointer vers un replica de lecture, jamais la base de production transactionnelle.

2Streamlit : dashboards Python interactifs

Question discriminante

Dans quel cas choisissez-vous Streamlit plutot que Metabase ? Quelle est la fonction st.cache_data et pourquoi est-elle critique ?

import streamlit as st import pandas as pd import plotly.express as px from sqlalchemy import create_engine # Cache critique : evite de recharger les donnees a chaque interaction @st.cache_data(ttl=3600) def load_data(start_date, end_date): engine = create_engine("postgresql://...") query = f""" SELECT region, month, SUM(revenue) as revenue FROM sales WHERE date BETWEEN '{start_date}' AND '{end_date}' GROUP BY region, month """ return pd.read_sql(query, engine) st.title("Dashboard Ventes") # Filtres interactifs dans la sidebar with st.sidebar: regions = st.multiselect("Regions", ['FR','DE','UK','ES']) date_range = st.date_input("Periode", value=(start, end)) df = load_data(*date_range) if regions: df = df[df['region'].isin(regions)] # KPIs en colonnes c1, c2, c3 = st.columns(3) c1.metric("CA Total", f"{df.revenue.sum():,.0f} EUR", delta="+8.3%") c2.metric("Regions actives", df.region.nunique()) c3.metric("Meilleur mois", df.groupby('month').revenue.sum().idxmax()) # Graphique interactif fig = px.bar(df.groupby('region').revenue.sum().reset_index(), x='region', y='revenue') st.plotly_chart(fig, use_container_width=True)
  • st.cache_data — met en cache le resultat de la fonction. Sans ca, la requete SQL se re-execute a chaque interaction utilisateur
  • Avantages — full Python, logique custom (ML, calculs complexes), controle total sur l'UX
  • Ideal pour — dashboards ML (predictions temps reel), outils internes avec logique metier specifique, prototypes rapides
  • Deploiement — Streamlit Cloud, Docker sur GKE/ECS, ou sur VM avec nginx

3Redash : SQL collaboratif vers dashboard

Question discriminante

Quelle est la valeur de Redash par rapport a des exports SQL manuels sur Excel ?

  • Requetes partagees — les requetes ecrites par l'equipe data sont reutilisables et decouvertes par toute l'organisation
  • Scheduling — actualisation automatique des dashboards a une frequence definie (toutes les heures, chaque nuit)
  • Alertes — notification automatique quand une metrique depasse un seuil defini
  • Parametres — les utilisateurs peuvent filtrer les dashboards via des parametres sans toucher au SQL
  • Ideal pour — equipes techniques qui veulent explorer avec SQL sans deployer un outil lourd

4Comparaison des outils

MetabaseStreamlitRedashPower BI / Tableau
CibleUtilisateurs metierData Engineers/ScientistsEquipes tech SQLData Analysts / BI
CourbeTres faibleMoyenne (Python)Faible (SQL)Moyenne a elevee
CustomLimiteeMaximaleModereeElevee
CoutGratuit (OSS)Gratuit (OSS)Gratuit (OSS)Licences par user
Self-serviceExcellentNon (code requis)Bon (SQL requis)Bon
ML integreNonOui (Python natif)NonPartiel

5Quel outil choisir selon le contexte ?

  • Equipes metier non techniques qui veulent explorer les donnees → Metabase. Interface visuelle, pas de SQL requis
  • Dashboard ML avec predictions temps reel ou logique custom → Streamlit. Python natif, logique metier complexe possible
  • Equipe technique qui veut partager des requetes SQL → Redash. SQL collaboratif, scheduling simple
  • Reporting corporate avec gouvernance, RLS, deployment pipeline → Power BI ou Tableau
  • Prototype ou POC rapide → Metabase ou Streamlit selon si l'equipe est SQL ou Python

6Gouvernance et pieges a eviter

Question discriminante

Quels sont les risques d'un deploiement Metabase sans gouvernance ? Comment les evitez-vous ?

  • Requetes non optimisees sur la prod — des utilisateurs peuvent lancer des SQL qui saturent la base de production. Toujours pointer vers un read replica ou un data warehouse
  • Proliferation de dashboards obsoletes — sans naming convention et archivage, Metabase devient rapidement un cimetiere. Definir un process de deprecation
  • Metrique non alignee — si deux dashboards calculent le chiffre d'affaires differemment, la confiance dans les donnees s'effondre. Centraliser les definitions dans des Modeles
  • Ruptures silencieuses — si les tables sources changent, les dashboards Metabase peuvent casser sans alerte. Mettre en place des tests de qualite (dbt tests)

7Grille par niveau

NiveauMaitrise attendueSignal GONO-GO
JuniorUtilisation de Metabase ou Streamlit, connexion a une baseA cree un dashboard Metabase, sait connecter une source de donneesNe connait aucun outil self-service, ne sait pas quand utiliser Metabase vs Power BI
ConfirmeGouvernance Metabase, Streamlit avec cache, positionnement des outilsA deploye Metabase en prod avec read replica et modeles, utilise st.cache_dataA deploye Metabase sans read replica, donne l'acces SQL natif a tous
SeniorArchitecture self-service complete, choix d'outil justifie, monitoringA architecture un stack self-service (Metabase + dbt + warehouse), justifie ses choixNe peut pas expliquer quand utiliser Metabase plutot que Power BI

Vous recrutez un Analytics Engineer ou Data Analyst ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.