Arrêtez d’ouvrir 2000 fichiers à la main : découvrez enfin les bases de données SQL
Dans l’article précédent, nous avons vu comment créer de manière automatique un rapport PDF à partir de 3 rapports d’essai.
Le process fonctionne à merveille, vous générez automatiquement :
Tout semble parfait.
Mais quelques mois plus tard, une nouvelle difficulté apparaît. Vous avez à gérer :
- des centaines de rapports
- des milliers de fichiers CSV
- plusieurs versions
- des dossiers impossibles à explorer
Et une question simple devient un cauchemar; imaginez que votre manager vous demande :
“Retrouve tous les essais où la température a dépassé 850°C”
👉 Sans base de données vous devriez ouvrir les fichiers de manière manuelle, appliquer des filtres, utiliser des scripts complexes (macro Excel, Script Google ?) !
Même en étant un pro de la programmation, combien de temps cela vous prendrait-il ?
Et la structure de vos dossiers, de vos fichiers, vous permettrait-il d’avoir le même process/programme à chaque fois ?
Le problème caché des fichiers
Les fichiers sont parfaits :
✔ pour archiver
✔ pour partager
✔ pour livrer
Mais ils deviennent rapidement problématiques pour :
- rechercher
- comparer
- croiser
- analyser dans le temps
La solution ? Passer aux bases de données SQL !
SQL : le passage au stockage vivant
Une base de données SQL permet de transformer :
❌ des fichiers isolés
en
✅ une mémoire technique interrogeable instantanément
Une base SQL est simplement une manière structurée d’organiser les données pour pouvoir les retrouver instantanément. On pourrait la comparer à une bibliothèque intelligente capable de retrouver une information en quelques millisecondes.
Les concepts essentiels
Une base de données SQL est basée sur 2 concepts:
1. Une table
Une table contient des données organisées :
| Date | Moteur | Température Max |
2. Une requête
Une requête permet de poser des questions à votre base de données.
Par exemple:
SELECT *
FROM essais
WHERE temperature_max > 850;
👉 Traduction :
“Montre-moi tous les essais où la température dépasse 850°C.”
SQL + Python = énorme levier
Tout ceci a un énorme avantage; une fois les données structurées dans SQL :
- Python peut les exploiter automatiquement
- les dashboards deviennent plus fiables
- les analyses deviennent reproductibles
👉 Et c’est souvent là que les gains de temps deviennent importants.
Alors comment faire concrètement ?
Création d’une base SQLite
Il faut d’abord créer une base de données SQLite :
import sqlite3
# Création / connexion à la base
connexion = sqlite3.connect("essais.db")
print("Base connectée")
Si la base de données n’existe pas, Python la crée automatiquement.
Créer une table
Il faut ensuite créer la table :
curseur = connexion.cursor()
curseur.execute("""
CREATE TABLE IF NOT EXISTS essais (
id INTEGER PRIMARY KEY AUTOINCREMENT,
moteur TEXT,
temperature_max REAL,
pression_max REAL
)
""")
connexion.commit()
Vous créez simplement une structure organisée pour stocker vos essais.
Insérer automatiquement les résultats
Et c’est là que cela devient vraiment intéressant !
Imaginez maintenant que votre script calcule automatiquement :
- la température max
- la pression max
- la RMS
- des indicateurs de vibration
👉 Vous pouvez tout enregistrer immédiatement.
Exemple :
curseur.execute("""
INSERT INTO essais (moteur, temperature_max, pression_max)
VALUES (?, ?, ?)
""", ("Moteur_A", 845.2, 12.5))
connexion.commit()
🔥 Vous commencez à construire une vraie mémoire technique.
Interroger la base instantanément
Au lieu d’ouvrir des milliers de fichiers manuellement, il est possible d’interroger la base de données :
resultats = curseur.execute("""
SELECT *
FROM essais
WHERE temperature_max > 800
""")
for ligne in resultats:
print(ligne)
« Montre-moi tous les essais où la température dépasse 800°C”
Et le temps de réponse n’est que de quelques millisecondes.
Cas concret
Reprenons les 3 essais des articles précédents.
Nous avions une structure de données suivante:
data/
essai_01.csv
essai_02.csv
essai_03.csv
Nous allons chercher les fichiers .csv, les fusionner et les enregistrer dans une seule base de données interrogeable instantanément :
connexion = sqlite3.connect("essais_moteurs.db")
fichiers = Path("~/data/").glob("*.csv")
for fichier in fichiers:
df = pd.read_csv(fichier)
# Récupération du nom du fichier
nom_essai = fichier.stem
# Ajout d'une colonne
df["ESSAI"] = nom_essai
print(df)
# Export SQL
df.to_sql(
"essais",
connexion,
if_exists="append",
index=False
)
print("Import terminé")
Interrogeons la base de données avec de « simples » requêtes SQL afin de chercher la puissance maximale et la puissance moyenne de tous les les essais :
-- Voir les 10 premières lignes
SELECT *
FROM essais
LIMIT 10;
-- Puissance maximale
SELECT MAX(Puissance), ESSAI
FROM essais;
-- Moyenne de puissance
SELECT AVG(PUISSANCE)
FROM essais;

Nous pouvons aussi chercher la puissance maximale par essai, la ranger par ordre décroissant et savoir quand cela s’est produit :
-- Puissance maximale par essai
SELECT ESSAI, MAX(PUISSANCE), Temps
FROM essais
GROUP BY ESSAI
ORDER BY MAX(PUISSANCE) DESC;

Comme vous pouvez le constater, cet outil est assez puissant et les résultats sont quasi-instantanés.
En résumé
Avant nous avions :
- des données dispersées
- passives
- archivées
Avec l’utilisation de SQL nos données sont maintenant :
- centralisées
- interrogeables
- comparables
- exploitables
Conclusion : le changement de paradigme
Stocker des données tout le monde sait le faire.
Mais le vrai challenge est de pouvoir retrouver des données clés des semaines, des mois voire des années plus tard.
Et c’est précisément là que SQL change complètement la manière de travailler.
Avec une base de données :
- vous ne parcourez plus des dossiers,
- vous ne cherchez plus manuellement dans des centaines de rapports,
- vous ne comparez plus des fichiers un par un.
Vous posez une question et la base de données vous répond !
Ainsi vos données deviennent :
- centralisées,
- historisées,
- comparables,
- exploitables à grande échelle.
Mais surtout, vous commencez à construire quelque chose de beaucoup plus puissant qu’un simple système de reporting : une mémoire technique vivante.
Et c’est là le véritable changement de paradigme.
Car une fois les données centralisées, une nouvelle porte s’ouvre.
Avec un système SQL + Plotly Dash ou Streamlit, vous pourriez avoir :
- des tableaux de bord en temps réel,
- une détection automatique d’anomalies,
- des analyses prédictives,
- et pourquoi pas une intelligence artificielle appliquée aux essais industriels.

Laisser un commentaire