IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Base de donnees statistiques


Sujet :

Schéma

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Points : 34
    Points
    34
    Par défaut Base de donnees statistiques
    Bonjour à tous, je sollicite votre aide pour un petit probleme de conception de base de données.

    Avant je vous précise un peu le contexte. Je viens de commencer un stage dans une grosse boite et je suis chargé de mettre en oeuvre un outil qui permet de suivre les statistiques de fonctionnement des serveurs UNIX. Pour ça j'ai à ma disposition un outil qui me permet de collecter des indicateurs techniques (% CPU utilisé, memoire, etc, ...) toutes les 5 minutes.

    Le but c'est de creer des tableaux de bords pour les equipes techniques qui leur permet de suivre le fonctionnement des serveurs en temps réel mais aussi sur plusieurs mois.

    Mon problème, c'est de creer une base de données qui permet d'avoir des donnees precises sur les derniers jours en cours (toutes les 5 minutes) mais plus generales sur les semaines ou mois qui precedent (toutes les heures voir tous les jours).

    Pour ça, je pensais faire 3 tables, une contenant les données en temps réel (stats toute les 5 minutes), une contenant une moyenne par heure que je remplirai toutes les heures à partir de la premiere table, et une derniere contenant une moyenne par jour que je remplirai à partir de la seconde table.

    Il y a 36 serveurs à surveiller et à peu près 10 indicateurs à surveiller, la base grossit donc vite. Avec cette methode, je peux ainsi garder la table contenant les données toutes les 5 minutes quelques jours, celle contenant les données toutes le heures quelques semaines, et la derniere quelques mois.

    Que pensez vous de cette solution ?, ya t'il d'apres vous et d'après votre experience (la mienne etant plutôt maigre) un moyen plus intelligent de resoudre mon probleme ?

    edit : je suis sous sql server

    Je vous remercie par avance pour l'aide que vous pourrez m'apporter

  2. #2
    Membre habitué
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Septembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 103
    Points : 151
    Points
    151
    Par défaut
    Vu que tu ne précises pas le schéma de table, pour l'instant ça a l'air correct(en même temps ta question ne concerner ce point). Car un enregistrement toute les 5 minutes ça ne fait que 288 enregistrements par jour ce n'est pas si énorme que ça sachant que cette table sera régulièrement effacé d'après ce que tu dis.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Deja merci pour ta reponse RV80. Par contre ça ne fait pas seulement 288 enregistrements par jour mais bien 36 * 10 * 12 *24 = 100 000

    Il y a 36 serveurs et pour chaque serveur 10 indicateurs techniques à stocker (cosommation CPU, memoire, etc, ...).

    Mais oui cette table n'aura un historique de quelques jours donc ça devrait aller.
    Sinon justement j'avoue avoir quelques problemes pour la modelisation. Est t'il bien rigoureux d'avoir 3 tables differentes qui ont exactement les mêmes données ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    voila un schema simplifié de la base. Un type de metrique est en fait un indicateur (%CPU consommé, activite disque dur,..).

    Dans la table temps réel je stockerai les donnees toutes les 5 minutes.
    Dans la table horaire, je stockerai une moyenne sur l'heure à partir de la premiere table.
    Dans la table journaliere, je ferai une moyenne sur un jour pour pouvoir réaliser des graphes sur plusieurs mois.

    Ma modelisation vous parait t'ellle bonne ? j'ai des doutes sur l'heritage.


  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 399
    Points : 15 761
    Points
    15 761
    Par défaut
    déjà on ne parle pas trop d'héritage dans les basse de données mais surtout de relations entre les données
    ensuite les tables avec les moyennes horaires et journalières contiennent des données redondantes avec la table des données en temps réel donc elles ne font pas partie de ta structure de données. par contre tu peux garder ces 2 tables pour accélérer la lecture des données

    pour aller plus loin dans ton application, tu peux supprimer de la table "temps réel" les données que tu as utilisé pour les statistiques horaires si tu n'en a plus besoin ensuite

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Merci mathieu. J'ai tenu compte de tes remarques pour la modelisation. Effectivement, mon probleme, c'etait la redondance des données mais je crois que je n'ai pas le choix puisque je ne garde les donnees temps reel que quelques jours. J'ai besoin de données precises en temps reel mais moins precises a l'echelle du mois.

    Une question à ce propos, je travaille sous sql server, sans aller dans les details technique evidemment, comment peut t'on supprimer automatiquement des données vieilles d'un mois par exemple ?

  7. #7
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 399
    Points : 15 761
    Points
    15 761
    Par défaut
    Citation Envoyé par bouliz
    Une question à ce propos, je travaille sous sql server, sans aller dans les details technique evidemment, comment peut t'on supprimer automatiquement des données vieilles d'un mois par exemple ?
    tu peux par exemple lancer une requête SQL "DELETE"
    oui je sais que ce n'est pas très automatique de ton point de vue mais si tu as besoin de plus de détails je t'invite à aller sur le forum MS SQL-Server

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    je n'utilise pas de SGBD tout fait, mais dans mon domaine les bases sont très grosses et temps réel (250 000 lignes / heure) à conserver pendant des années.

    Le moyen le plus rapide et efficace que nous ayons trouvé est tout simplement un "flat file", dont le nom contient (en fonction du volume des données et de leur fréquence) soit l'année, le mois, ou le jour.

    Tout est stocké chronologiquement dans ce fichier. Du coup, une recherche dychotomique temporelle se fait en moins d'une 1/2 seconde pour 2 gigs.

    La maintenance est simple, les sauvegardes aussi, les corrections, si erreur il y a , aussi.

    Et , mais là cela dépend de la demande du point de vue des données archivées, je ne réduirais pas la fréquence temporelle (exemple : reproduire une situaton qui s'est produite... (contestation, erreur, etc..) Beaucoup mieux de pouvoir la reproduire à l'identique.

    Donc pour moi, si les données arrivent aux 5 minutes, eh bien que ce soit 1 jour, un mois, un an, ça comptient toujours toutes les données....

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 897
    Points : 53 133
    Points
    53 133
    Billets dans le blog
    6
    Par défaut
    Contrairement a ce aue dit mathieu l'heritage des donnees existe bien dans la modelisation et cela il y a fort longtemps...
    Lisez l'article aue j'ai ecrit a ce sujet :
    http://sqlpro.developpez.com/cours/m...tion/heritage/

    Mais il est vrai aue le formation en France est assez nulle en matiere de SGBDR !

    A +

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 390
    Points : 465
    Points
    465
    Par défaut
    je te conseillerais d'utiliser cacti.

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Si tu connais le C, voici l'exemple dont je parlais plus haut

    http://www.developpez.net/forums/sho...d.php?t=297408

    Fichier d'environ 1 à 6 Gigs d'enregistrements par an...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. taille maximale d'une base de donnée paradox
    Par Anonymous dans le forum Paradox
    Réponses: 5
    Dernier message: 14/02/2004, 17h39
  2. Proprietes du fichier de base de donnees
    Par Mouse dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/03/2003, 15h14
  3. [sgbd] Accès au base de données en Perl
    Par totox17 dans le forum SGBD
    Réponses: 3
    Dernier message: 24/02/2003, 16h05
  4. [VB6] [Access] Compacter une base de donnée
    Par mdoyer dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 24/09/2002, 11h33
  5. [VB6] [ODBC] Référencer une base de données avec vb
    Par af.balog dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/09/2002, 09h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo