|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() |
Bonjour,
Je requiers votre aide concernant différents points d'un (gros) projet sur lequel je travaille, et qui me dépasse un peu, pauvre stagiaire que je suis. Pour résumer, il s'agit de stocker dans une base de données un nombre très grand de mesures prises plusieurs fois par secondes lors de sessions de test. La structure est simple : lors d'une session de test, plusieurs paramètres sont mesurés (à des fréquences différentes, entre 8 et 100 fois par seconde selon les paramètres). Pour l'instant ces données sont générées sous formes de fichier ASCII (exemple, un fichier avec la mesure de température, avec toutes les valeurs de la session) sur une machine. On récupèrera donc ces données pour les stocker ailleurs. Pour donner un ordre de grandeur, si nous devions stocker l'intégralité de ces données, il faudrait à peu prêt 300 Go par heure de session de test, cependant je suis en train de convaincre mon chef que ce sera très coûteux, on va donc essayer de réduire le nombre de paramètres à garder. De plus les données seront sauvegardées régulièrement sur bandes si le volume est trop important. Dans un premier temps j'avais fait un schéma simple : une table session (de test), une table paramètre mesuré (avec le nom et la description du paramètre), et une table valeurs (il peut y avoir différents types de valeurs : booleenne, entiere, chaine, etc). Le problème est que la table valeurs contiendra un nombre immense de lignes (toutes les valeurs de toutes les mesures de toutes les sessions...), j'ai donc peur du temps nécessaire pour effectuer une requête sur cette table. Je me vois mal créer une nouvelle table pour chaque paramètre (il y en a environ 4000)... * Y'aurait-il un moyen d'optimiser ce schéma ? Concernant le SGBD, dans un premier temps je vais utiliser Postgres (tests sur de "petites" quantités de données), mais la boite ou je bosse dispose d'une license Oracle 8, nous pourrons donc migrer dessus après. Cette base de données sera alimentée chaque nuit, il n'y aura AUCUNE modification (UPDATE). Les requêtes seront simples, du style chercher les valeurs de tel et tel paramètre sur une plage horaire, mais pourront renvoyer quelques centaines de milliers de lignes ! (afin de tracer des courbes). * Je n'ai jamais traité un nombre si grand de données, je ne sais pas si un SGBD peut avoir de bons temps de réponse avec un nombre si grand de lignes ? Au pire nous pouvons juste rapatrier les fichiers, et utiliser la base de données juste pour structurer les mesures ? Mais je ne connais pas la différence de temps d'accès entre des fichiers et une base de données. * Vu que les données ne seront pas modifiées, mais juste ajoutées la nuit, la réplication ne poserait pas trop de problème, mais je doute de son utilité (nombre restreint d'utilisateurs). J'espère avoir été assez explicite. Tous vos commentaires, infos, liens, suggestions, etc. sont les bienvenus ! Merci d'avance. |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2005 Messages : 2 320 ![]() |
Oracle avec l'option partitionement peut être une solution à ton probléme
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() |
Merci !
Je viens de voir oracle.developpez.com, je vais fouiner un peu. Apparement Oracle permet aussi de faire du backup/restore facilement... Ce serait la solution a tout ? :p |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2005 Messages : 2 320 ![]() |
dans ton cas oui
|
|
|
00
|
|
|
#5 | |
|
Invité régulier
![]() |
Citation:
Petite question, la version 10g d'Oracle apporte beaucoup de choses comparée à la 8 ? (ma boite dispose d'une license site pour la 8 ) Petite autre question : existe-t-il des sgbd avec des systèmes de sauvegarde, mais qui permettent de restaurer une petite partie d'une sauvegarde uniquement si besoin ? Re-Merci |
|
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() |
J'ai trouvé des cours de Datawarehouse, et je trouve que mon schéma s'en rapproche. Le fait serait une mesure, dimensionnée par les paramètres, la session et le temps.
Qu'en pensez-vous ? En fait nous ne savons pas ce qui optimisera le plus la consultations de valeurs en fonction d'une plage horaire et d'un paramètre. Les solutions sont : - on garde les fichiers (un fichier par session et par paramètre qui contient toutes les valeurs), mais cela nous pose quelques problèmes pour récupérer des parties de ces fichiers (ex lors d'un zoom sur la courbe, on doit rouvrir le fichier pour en récupérer une partie... sinon ou le stocker temporairement ?) - une BD "normale" mais une table de valeurs de plusieurs milliards de lignes... durée des requêtes ? - solution de mon chef : on fait une table par paramètre (environ 5000) pour faciliter la recherche... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com