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 :

DateMoteurTempé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;
requête SQL montrant les moyennes et valeurs max

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;
requête SQL montrant les moyennes et valeurs max

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