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

C# Discussion :

historique 24 h


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut historique 24 h
    Bonjour,

    je suis entrain de faire un historique sur des données (10 données ) que je récolte tout les 10 s pour les enregistre a une passe de base de données (avant de les enregistre au BD je fait une traitement) de tel sort que j'ai 24h de données c'est à dire ;si ma première donnée est daté de 4/11/2010 10:47:00 demain de doit écrase cette données avec une autre.

    mais le traitement des données prend de différents temps,ce qui fait que le nbre d'enregistrement dans une 1h sont différents d'une heure à une autre (au max j'ai (60*60)*10/10 = 3600données )

    je envoi au DB les données que j'ai récolté chaque 1h.

    NB : que cette opération faite par plusieurs machines qui envoient leurs données à cette BD.

    alors si j'ai 600 machines.

    alors j'ai au max
    3600*24*600 = 51840000 données par jours

    vu le nbre de données que j'ai a les enregistre je me suis dit que je doit faire en sort de les données de chaque machine sur une seule ligne .
    et de faire de chaque champ de ma table de DB un buffer circulaire.
    mais la taille de données de mes champs sont aussi différents.
    seuls deux champs qui sont de taille fixe.

    voila je cherche un solution qui peut m'aide non seulement de résoudre le problème de historique (je dispose a ma BD seulement de 24 h de données ) mais résoudre le problème des nbr de ligne de ma table de BD.

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Bonjour,

    Peux-tu réexpliquer ce que tu souhaites faire car utiliser une BDD et notamment une table comme une pile c'est un peu bizarre ?

    Que ta table contienne plus de données que 24H c'est pas bien grave, pour le consulter il suffit de filtrer les plus anciennes.

    Après étant donné le potentiel volume de données, il faudrait prévoir une purge.
    C'est vrai 51 millions de ligne par jour c'est beaucoup, donc la purge est à prévoir, donc en gros ta table avec une purge toutes les 24H devraient contenir au max 102 millions de ligne.

    Remarque avec un tel volume de changement les index vont vite faire la gueule !

    Précise un peu avant d'aller plus loin !

  3. #3
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2002
    Messages : 264
    Par défaut
    Si j'ai bien compris, tu veut enregistrer dans un seul enregistrement de ta DB plusieurs récoltes d'une donnée, le nombre étant variable.
    Ca ne me parrait pas être 1 bonne idée : il vaudrait mieux avoir 1 enreg.par récolte.
    Tu peut toutefois le faire en serialisant tes données dans un fichier XML que tu enregistres dans ta DB...mais bon...

    pour le coté circulaire, il suffirait de ne pas mémoriser la date dans la clé mais seulement l'heure et du modifierais donc à chaque passage la donnée du jour précédant à la même heure...
    Il te faut aussi gerrer cette heure pour qu'elle soit toujours la même en arrondissant au 10 s. le plus proche
    Ex. 8:30:00 puis 8:30:10 puis 8:30:20...
    si tu as le lendemain 8:30:01 ça n'écrase plus 8:30:00
    ...tu pourrais mémoriser l'heure du dernier passage & supprimer les données comprise entre celui-ci et le nouveau...

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    alors j'ai au max 3600*24*600 = 51840000 données par jours
    On peut associer à chaque enregistrement les 2 champs "Time" et "IdMachine".

    A chaque intervalle de 10 secondes:
    • on determinera la valeur "hhmms0" du champ Time,
    • on supprimera systématiquement tous les enregistrements tels Time="hhmms0"
    • on ajoutera autant d'enregistrements que de machines ayant envoyé des données.
    Pour plus de sécurité, on gérera un champs Date qui combiné avec Time permettra d'ignorer les enregistrements datant de plus de 24H.

  5. #5
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Bonjour.

    J'ai rien compris à ton énoncé... C'est normal...

  6. #6
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    Bonjour,

    ma solution consiste a réduire le nbr de lignes des informations sur les machines.
    comme ça j'aurai 1 ligne par machine qui regroupe tous les informations sur une journée.

    j'ai pense a utilise le temps comme un paramétré pour mettre a jour ces données et faire un sort de buffer circulaire mais le faite que mon temps n'est pas périodique (le datetime d'une échantillon ne correspond pas au datetime de l’échantillon de le lendemain.
    j'ai dit que comme l'information a presque la même taille. je peut la code en 3 octects et faire un QUEUE qui va avoir le size = max des nbres échantillons que peut y'avoir dans une journée.
    ce QUEUE va être stocke sous forme d'un tableau de byte dans ma base de donnée.

    et si mon QUEUE atteins son MAX je peut faire Dequeue de l’ancienne informations et Queue de la nouvelle.

    ma solution consiste de tell sorte de faire comme c'est j'ai une rectangle que je le déplace dans un axe de temps ,la distance que la tété de rectangle a déplace est égale au distance de déplacement de le queue de rectangle

    et pour la solution de sérialisation je pense que n'est pas convenable dans mon cas ,car la sérialisation augmente la taille des données et ça n'est pas acceptable dans mon problème.

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

Discussions similaires

  1. [historique IExplorer]ou est il stoqué?
    Par annecyrond dans le forum IE
    Réponses: 2
    Dernier message: 21/08/2003, 16h11
  2. historique via trigger
    Par rgz dans le forum SQL
    Réponses: 6
    Dernier message: 25/06/2003, 19h12
  3. Historique de la méthode Merise
    Par Demetan dans le forum Merise
    Réponses: 4
    Dernier message: 06/06/2003, 16h46
  4. [TWebBrowser] ... et l'historique de I.E.
    Par Frederic dans le forum Composants VCL
    Réponses: 6
    Dernier message: 21/10/2002, 18h53
  5. historique d'une disquette
    Par bashou dans le forum MFC
    Réponses: 2
    Dernier message: 24/06/2002, 11h35

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