Aller au contenu
TAAF-OPS --:-- UTC

SQL - Scripts et Données Simulées

Le projet SQL contient l’ensemble des scripts et jeux de données simulées pour la base PostgreSQL des bases polaires TAAF.

Ces données sont utilisées dans les TPs de monitoring pour créer des dashboards de visualisation et surveiller les performances.

Les scripts SQL permettent de :

  • Créer le schéma de la base opérationnelle base_af
  • Insérer des données réalistes simulant l’activité des bases polaires
  • Fournir des cas d’usage concrets pour le monitoring
  • Simuler différents scénarios opérationnels

Objectif : Gestion du personnel sur les bases polaires

Tables principales :

  • personnel : Informations sur le personnel déployé
  • rotations : Planning des rotations d’équipes
  • conges : Gestion des congés et permissions
  • communications : Logs de communications entre équipes

Cas d’usage :

  • Monitoring du nombre de personnes présentes par base
  • Suivi des rotations d’équipes
  • Analyse des communications

Objectif : Suivi des conditions météorologiques

Tables principales :

  • mesures_meteo : Relevés météorologiques (température, pression, vent)
  • alertes_meteo : Alertes climatiques critiques
  • historique_climat : Historique des conditions

Cas d’usage :

  • Monitoring des conditions extrêmes
  • Alertes sur tempêtes ou conditions dangereuses
  • Analyse des tendances climatiques

Objectif : Gestion des équipements critiques

Tables principales :

  • inventaire : Liste des équipements par base
  • maintenance : Planning et historique de maintenance
  • pannes : Incidents et réparations
  • alertes_techniques : Alertes sur l’état des équipements

Cas d’usage :

  • Monitoring de l’état des équipements
  • Suivi de la maintenance préventive
  • Détection de pannes récurrentes

Objectif : Suivi des communications par satellite

Tables principales :

  • communications_satellite : Historique complet des communications

Cas d’usage :

  • Monitoring de la qualité des communications
  • Analyse des volumes de données
  • Détection d’anomalies réseau

Schéma Détaillé - Table communications_satellite

Section intitulée « Schéma Détaillé - Table communications_satellite »

Cette table est utilisée dans le TP2 Monitoring pour créer des dashboards de visualisation.

ColonneTypeContrainteDescription
idSERIALPRIMARY KEYIdentifiant unique auto-incrémenté
timestamp_commTIMESTAMPNOT NULLDate et heure de la communication
station_receptriceVARCHAR(50)NOT NULLStation réceptrice (Toulouse / La Réunion)
type_communicationVARCHAR(50)NOT NULLType de communication (Email / Voix / Données)
qualite_signalNUMERIC(5,2)CHECK (qualite_signal BETWEEN 0 AND 100)Qualité du signal en pourcentage (0-100)
volume_donnees_mbNUMERIC(10,2)CHECK (volume_donnees_mb >= 0)Volume de données transmis en MB
statutVARCHAR(20)NOT NULLStatut de la communication (Réussie / Partielle / Échec)
base_nameVARCHAR(50)NOT NULLNom de la base TAAF (Port-aux-Français / Alfred Faure / Dumont d’Urville)
CREATE INDEX idx_timestamp ON communications_satellite(timestamp_comm);
CREATE INDEX idx_base ON communications_satellite(base_name);
CREATE INDEX idx_station ON communications_satellite(station_receptrice);
CREATE INDEX idx_statut ON communications_satellite(statut);

station_receptrice :

  • Toulouse : Station principale en France métropolitaine
  • La Réunion : Station secondaire dans l’océan Indien

type_communication :

  • Email : Communications électroniques
  • Voix : Appels téléphoniques
  • Données : Transferts de données scientifiques

statut :

  • Réussie : Communication complète et réussie
  • Partielle : Communication incomplète mais exploitable
  • Échec : Communication échouée

base_name :

  • Port-aux-Français : Base principale aux îles Kerguelen
  • Alfred Faure : Base aux îles Crozet
  • Dumont d'Urville : Base en Antarctique
-- Exemple d'enregistrement
INSERT INTO communications_satellite VALUES (
DEFAULT, -- id (auto-incrémenté)
'2024-01-15 14:30:00', -- timestamp_comm
'Toulouse', -- station_receptrice
'Données', -- type_communication
87.50, -- qualite_signal
125.75, -- volume_donnees_mb
'Réussie', -- statut
'Port-aux-Français' -- base_name
);
sql/
├── schema/
│ ├── create_database.sql # Création des bases
│ ├── create_tables_rh.sql # Tables RH
│ ├── create_tables_meteo.sql # Tables météo
│ ├── create_tables_equip.sql # Tables équipements
│ └── create_tables_comm.sql # Tables communications
├── data/
│ ├── insert_personnel.sql # Données RH
│ ├── insert_meteo.sql # Données météo
│ ├── insert_equipements.sql # Données équipements
│ └── insert_communications.sql # Données communications
└── queries/
├── monitoring_queries.sql # Requêtes pour dashboards
└── example_queries.sql # Exemples d'analyse

Les bases SQL sont utilisées pour :

  • Créer des dashboards de visualisation des données métier
  • Afficher des métriques opérationnelles (personnel, équipements, communications)
  • Créer des requêtes SQL pour extraire des indicateurs

Exemples de dashboards :

  • Nombre de personnes par base
  • État des équipements critiques
  • Qualité des communications satellite
  • Conditions météo actuelles
  • Corréler les logs PostgreSQL avec les métriques
  • Analyser les requêtes lentes
  • Détecter les erreurs de base de données

Les bases SQL peuvent être surveillées pour :

  • Détecter des accès non autorisés
  • Monitorer les opérations sensibles (DELETE, DROP, ALTER)
  • Auditer les modifications de données critiques

Les bases PostgreSQL sont déployées automatiquement avec le docker-compose du monitoring :

Fenêtre de terminal
# Démarrer PostgreSQL avec données
cd monitoring/
docker-compose up -d postgres-af postgres-alfred
# Vérifier les bases créées
docker exec -it postgres-af psql -U taaf_admin -l
Fenêtre de terminal
docker exec -it postgres-af psql -U taaf_admin -d base_af
Fenêtre de terminal
docker exec -it postgres-alfred psql -U taaf_admin -d base_alfred
-- Nombre de personnes par base
SELECT base, COUNT(*) as effectif
FROM personnel
WHERE statut = 'present'
GROUP BY base;
-- Équipements critiques en panne
SELECT base, nom_equipement, date_panne
FROM equipements_critiques
WHERE statut = 'en_panne'
AND criticite = 'haute';
-- Qualité moyenne du signal par base
SELECT base, AVG(qualite_signal) as qualite_moy
FROM communications_satellite
WHERE date > NOW() - INTERVAL '24 hours'
GROUP BY base;
  • sql - Scripts SQL et données simulées
  • Scripts de création dans le repository
  • Dictionnaire de données (README du repo SQL)
  • Exemples de requêtes