Dashboard interactif open source pour visualiser les résultats de la comparaison multi-sources (PostgreSQL vs MinIO).
- ✅ 100% Open Source - Aucune dépendance propriétaire
- 📈 Visualisations interactives - Charts.js pour graphiques dynamiques
- 📊 Export JSON - Données au format Open Data standard
- 🔓 ODbL License - Licence Open Data Commons
- 🌐 Responsive - Compatible mobile/desktop
- ⚡ Zero backend - Dashboard HTML statique
# 1. Générer les données Open Data
cd c:\projets\dremiodbt
c:\projets\dremiodbt\venv\Scripts\activate.ps1
python scripts/generate_opendata_dashboard.py
# 2. Ouvrir le dashboard dans le navigateur
start opendata/dashboard.html# PowerShell
cd opendata
python -m http.server 8000
# Ouvrir http://localhost:8000/dashboard.htmlopendata/
├── dashboard.html # Dashboard interactif
├── phase3_opendata.json # Dataset complet (Open Data)
├── phase3_metrics.json # Métriques uniquement
├── phase3_details.json # Détails uniquement
└── README.md # Cette documentation
{
"metadata": {
"title": "Phase 3 - Data Quality Comparison Report",
"description": "Multi-source data quality metrics",
"publisher": "Dremio Analytics Team",
"date_published": "2025-10-15T16:30:00",
"license": "Open Data Commons Open Database License (ODbL)",
"version": "1.0.0",
"tags": ["data-quality", "multi-source", "comparison"],
"sources": [
{"name": "PostgreSQL", "type": "RDBMS"},
{"name": "MinIO", "type": "Object Storage"}
]
},
"summary": {
"overview": {
"total_customers": 12,
"coverage_rate_pct": 66.67,
"email_quality_pct": 58.33,
"country_quality_pct": 58.33,
"overall_status": "WARNING"
}
},
"details": [
{
"customer_id": 1,
"name": "Jean Dupont",
"source_status": "both_sources",
"email_status": "match",
"country_status": "match"
}
]
}- Chart.js v4.4.0 - MIT License - Graphiques interactifs
- Tailwind CSS v3 - MIT License - Framework CSS
- Vanilla JavaScript - Pas de framework lourd
- Python 3.13 - PSF License - Génération données
- PostgreSQL - PostgreSQL License - Source de données
- dbt - Apache 2.0 - Transformation de données
- Total Customers - Nombre total de clients uniques
- Coverage Rate - % de clients dans les deux sources
- Email Quality - % d'emails identiques
- Country Quality - % de pays identiques
- 🌟 EXCELLENT - Coverage 100% + 0 mismatches
- ✅ GOOD - Coverage >= 95%
⚠️ WARNING - Coverage >= 80%- 🚨 CRITICAL - Coverage < 80%
# Re-générer les données après modifications
python scripts/generate_opendata_dashboard.py
# Rafraîchir le navigateur (F5)# Lancer Superset avec Docker
docker-compose -f docker-compose-superset.yml up -d
# Accéder: http://localhost:8088
# Credentials: admin / admin# Lancer Metabase
docker run -d -p 3000:3000 --name metabase metabase/metabase
# Accéder: http://localhost:3000# Lancer Grafana
docker run -d -p 3001:3000 --name grafana grafana/grafana
# Accéder: http://localhost:3001# Depuis Python
import pandas as pd
import json
with open('opendata/phase3_details.json') as f:
data = json.load(f)
df = pd.DataFrame(data)
df.to_csv('opendata/phase3_export.csv', index=False)# Servir les données via API Flask
from flask import Flask, jsonify
import json
app = Flask(__name__)
@app.route('/api/metrics')
def get_metrics():
with open('opendata/phase3_metrics.json') as f:
return jsonify(json.load(f))
if __name__ == '__main__':
app.run(port=5000)- MIT License - Dashboard HTML/JS/CSS
- ODbL (Open Database License) - phase3_opendata.json
- Vous êtes libre de:
- ✅ Partager les données
- ✅ Créer des œuvres dérivées
- ✅ Adapter les données
- Sous condition:
- 📝 Attribution de la source
- 🔓 Partager sous même licence
Questions? Créer un issue sur GitHub ou contacter l'équipe Dremio Analytics.
- Export PDF automatique
- Alertes email automatiques
- Intégration Slack/Teams
- Dashboard temps réel (WebSocket)
- Historique des métriques (timeseries)
- Comparaison multi-périodes
- API GraphQL
Créé avec ❤️ par l'équipe Dremio Analytics
Version: 1.0.0
Dernière mise à jour: 15 octobre 2025