Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1751 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MSSQL et historisation de données temps réel

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

MSSQL et historisation de données temps réel

n°1844209
simaril
Posté le 28-01-2009 à 14:06:00  profilanswer
 

Hello.
 
Je vous explique ma problématique.
Je dispose d'un système qui se sert de MSSQL pour fournir des données temps réel.
Je dispose donc d'une table dont les données sont rafraichies toutes les 15 secondes. Je m'intéresse à une de ces données dont je veux suivre l'évolution.
 
Le besoin exprimé est de disposer d'un graphe mis à jour au fil de l'eau qui représente l'évolution de cette donnée sur les 10 dernieres minutes.
 
Voici la solution que j'ai imaginée:
- un process qui toute les 15 secondes récupère la donnée dans la table temps réel et la copie dans une nouvelle table. Pour ca, j'imaginais une procédure stockées, mais il faut disposer d'un moyen de la déclencher toutes les 15 secondes. Sous oracle, cela se fait grace à un JOB, mais existe-t-il un équivalent en MSSQL?  
- création d'une "vue" qui me présente les 40 derniers enregistrements de cette nouvelle table (15 sec=4 enregistrements /min, sur 10 minutes)
- purge régulière de la table (jamais besoin de plus de 40 enregistrements)
- un système externe accède aux 40 données de la vue et les présente sous forme  de barre-graphe (une barre par donnée), et répète l'opération toutes les 15 secondes (voire moins)
 
question 1: est-ce que ca vous parrait faisable?
questions 2: comment évaluer la charge "serveur" (CPU...) d'une telle solution, sachant qu'elle sera multipliée par 20 voire 30 (j'aurai facilement 20 à 30 flux de ce type à traiter sur le même serveur)? En fait, pour que je puisse effectuer tout cela sur le serveur existant, il faut que la charge ajoutée soit négligeable par rapports aux performances normales de la machine (un bon serveur "normal" d'aujourd'hui, probablement un 2x2 cores ou 2x4 cores).. car le serveur héberge à la fois la base de données et l'application temps réel métier (assez lourde). Est-ce qu'il faut mettre en palce tout ca sur une seconde base hébergée sur un serveur indépendant?
 
merci de votre aide

mood
Publicité
Posté le 28-01-2009 à 14:06:00  profilanswer
 

n°1845147
MagicBuzz
Posté le 30-01-2009 à 11:47:26  profilanswer
 

J'imagine plutôt cette architecture :

 

Création d'un trigger sur la table source, qui :
1/ efface dans la table historique les lignes ayant plus de 10 minutes (sauf la ligne la plus récente, au cas où il n'y ait pas de modifications pendant plus de 10 minutes)
2/ ajoute la ligne qui vient d'être inserrée

 

Avantages :
1/ pas besoin de passer par un job
2/ si la donnée change 5 fois en 15 secondes seconde, tu as les 5 valeurs dans ton historique, ce qui est intéressant pour lisser les valeurs
3/ si la donnée ne change pas en 10 minutes, alors tu n'as pas de lignes superflues dans ta table, juste une

 

Ensuite, c'est à ton programme qui va lire la table de partitionner en 10zaines de secondes afin de faire un joli graphique, et déduire les données vides à partir de la valeur précédente.

 

Pour ce qui est de la charge, elle est absolument négligeable avec cette solution si tu n'as pas des dizaines de mise à jour par seconde dans la table source.


Message édité par MagicBuzz le 30-01-2009 à 11:48:29
n°1845150
casimimir
Posté le 30-01-2009 à 12:01:07  profilanswer
 

question peut-etre con mais pourquoi tu passes par une table temporaire? au lieu que ton graphe passe direct sur la prod

n°1845206
MagicBuzz
Posté le 30-01-2009 à 13:48:32  profilanswer
 

parce que la table source n'historise pas d'après ce que je comprends.
 
l'ancienne donnée est remplacée à chaque fois et perdue.

n°1845388
simaril
Posté le 30-01-2009 à 21:54:21  profilanswer
 

c'est bien ca.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  MSSQL et historisation de données temps réel

 

Sujets relatifs
[JAVA/EE] Export de données MySQL5 vers formulaire WordProblème prévention données, visual Studio 2008 + .net + vista SP1
Coupure au 1er mot lors de l'affichage des donnéesComment synchroniser Hibernate avec base de données???
Savoir si une base de données est mono ou multi utilisateur ?Détecter les doublons sur une base de données MYSQL
[VBA] Remplissage de cellules très long en tempsRetrouver dans la ram certaines données.
Importation des données depuis SQL vers EXCELInserer de la gestion de donnees via SQL dans du code C
Plus de sujets relatifs à : MSSQL et historisation de données temps réel


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR