Gambas France BETA


Pas de compte ? Incription

Isoler des donnees en sqlite...

1
AuteurMessages
spheris#1 Posté le 26/11/2011 à 20:46:11
Bonjour,
J'ai une application en GB2 qui enregistre une valeur dans une bdd sqlite toutes les minutes.
Je souhaite afficher sous forme de courbe à l'aide de Gb.Chart un résumé de mes valeurs:
-Au jour : 1 valeur toutes les heures
-A la semaine : 4 valeur par jour
-Au mois : 1 valeur par jour
-A l'année : 1 valeur tous les 10 jours.

quel serait à votre avis la requete sql pour traiter mes données de cette façon ?
Merci pour votre réponse.
Spheris

PS: Excellent forum, félicitations les gars ! ;)
lapenduledargent#2 Posté le 27/11/2011 à 10:41:29
Bonjour Sphéris,

Donc dans ta courbe jour, tu as 24 enregistrement, pourquoi pas faire une requête sur le champs jours avec l'affichage des résultats.
Une autre requête sur semaine,... bref chaque fois des requêtes séparées avec un traitement séparé des résultats.

Pierre
manu#3 Posté le 27/11/2011 à 14:14:16
Avec Gambas ca roule !Pour t'aider, il faudrait savoir comment tu choisis ces valeurs : est ce une moyenne d'une periode (qui change en fonction de la courbe, est-ce une valeur a un moment donnée ( celle de 7 heure, 8 heure, 9 heure etc). Quoique que tu fasses, je vois deux manières de procéder :

Soit tu gères ca uniquement à travers SQL en faisant une (ou plusieurs) requete (complexe ! ? )

Soit tu créé une fonction dans gambas, qui balaye ta base et qui "marque" certains enregistrements dans un champ supplémentaire.
Tu récupères ensuite les enregistrements du jour, de la semaine, du mois etc avec une requête beaucoup plus simple. Autre solutions, plutôt que de les marquer, tu peux aussi les isoler dans une autre table ce qui permettrais ainsi d'épurer régulièrement la table dans laquelle tu stock tes enregistrements chaque minute. Car bonjour le nombre d’enregistrements : 1 année = 365*24*60 soit 525.600 !

Dans tous les cas, il faut que tu nous en dise plus pour que l'on puisse t'aider .
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
linuxos#4 Posté le 27/11/2011 à 14:29:17
Un peu de sel, de poivre et la crevette sera... Sphéris,

Il existe un outils merveilleux pour faire exactement ce que tu souhaites faire et sur ça je peux t'aider. Il s'appeler RRDTOOL et il te fera ça
les doigts dans le nez.

Il se trouve que j'ai développé une application en gb2 pendant 5 ans pour utiliser cet outil ... il travaille vite et bien.

Si cela t'interesse fais moi le savoir.

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
spheris#5 Posté le 27/11/2011 à 14:30:24
Bonjour manu,Lapenduledargent,

Avant toute chose merci pour votre aide. J'ai réfléchi à la question et voici ce que je peux dire :

Je pense créer plusieurs tables : Une table jour, semaine, mois, année.

Pour la table jour,je souhaite 24 données.

pour la semaine, je veux 3 données par jour (1 à 10h00, 1 à 15hoo, 1 à 20hoo par exemple) soit 21 données
pour le mois je veux 30 données (soit 1 par jour à 10hoo par exemple)
Pour l'année, je veux 1 donnée tous les 10 jours soit 36 données.

Dans tous les cas, il ne me semble pas judicieux d'afficher plus de 40 données dans gb.chart car cela devient vite fouilli. (5 courbes)
A bientôt
Spheris
manu#6 Posté le 27/11/2011 à 14:33:41
Avec Gambas ca roule !effectivement, ca semble etre exactement ce qu'il te faut :

http://rosset.org/linux/temperature/howto4.html
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
linuxos#7 Posté le 27/11/2011 à 14:49:14
Un peu de sel, de poivre et la crevette sera... Juste pour donner une idée.

Je gère environs 2000 graphiques avec cet outil... il existe depuis 14 ans maintenant.

Si tu décides d'utiliser rrdtool, grace a mon application les choses seront bien simplifiées.

Exemple:

1 Base de données rrdtool avec toutes les données: fréquence de mise a jour: Toutes les 6 heures
1 Graphique pour afficher tout cela

Il te restera juste a définir la plage de temps que tu veux visualiser avec le même graphique: sur la journée, le mois, l'année, etc...

En fait, dans mon application, le fait de créer un graphique, génère en fait un script unix que tu peux invoquer a souhait en changeant les parametres comme la période de temps a afficher, la taille du graphique, etc...

Pour ce qui est de remplir la base de données rrdtool toutes les 6 heures, juste un petit CRON sur ta machine par exemple.

Je peux meme tout te fournir sur un plateau si tu le souhaites.

Voila
Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
1