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

 SGBD Discussion :

Choix d'une base de données pour un flux continu de données


Sujet :

SGBD

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut Choix d'une base de données pour un flux continu de données
    bonjour a tous ,

    je travaille sur un projet de real time monitoring , je cherche à afficher les données envoyées par des capteurs qui sont placés sur des poutres pour mesurer la contrainte en MPa sur une interface web en utilisant une chart en javascript .
    N'étant pas informaticien de formation j'ai opté pour la solution php +javascript vu la disponibilité de formation et de tutoriaux.

    Côté base de données et vu que mes données seront générées en continu (je n'ai pas encore décidé si ça sera en continu ou à intervalles réguliers) je me demande si je doit utiliser mysql pour mes données statiques comme le numéro de la poutre et son emplacement, et utiliser une autre base de données comme une base xml native pour mes données dynamiques ou je dois coupler les 2 ?!

    si mes données sont générées avec un intervalle de moins d'une seconde et que mysql ne prend pas en charge les millisecondes y a-t-il une solution pour contourner ça ou je dois choisir une autre base que mysql ?

    merci d'avance pour votre aide !

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Un SGBD est capable de traiter de nombreuses requêtes par seconde.

    Tu dis que les données arrivent en continu mais le continu réel n'existe pas. Tu vas avoir un programme qui va lire les données envoyées par les capteurs puis les envoyer au SGBD pour le stockage. Le temps de cycle de cette opération sera le temps mini entre deux relevés de mesures.

    Tu as deux processus possibles.

    1) Lecture de tous les capteurs et stockage dans un tableau puis envoi en masse en une seule requête vers le SGBD.

    2) Lecture d'un capteur, envoi au SGBD puis capteur suivant.

    La première solution est à mon avis meilleure car cela limite le nombre de transactions vers le SGBD et il y a de fortes chances que la durée des opération de lecture et de stockage dans un tableau puis de construction de la requête soit plus rapide que le transfert vers le SGBD et le traitement de la requête par le SGBD, surtout avec l'augmentation du volume de données.

    Pour que ce soit le plus rapide possible, porte une grande attention à la modélisation des données.

    Bon courage.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    Merci Cinephil pour vos suggestions

    je suis dans la phase de modélisation je cherche maintenant d'investiguer sur tous les points qui peuvent me rencontrer pour ne pas avoir de mauvaises surprise
    quand je commence la réalisation de mon projet ,comme début je vais me contenter d'un seul capteur mais je dois préparer l'infrastructure complète pour ajouter d'autres capteurs après .

    -Vous avez mentionné que un sgbd peut faire plusieurs requêtes par seconde ,mais d’après ce que j'ai lu dans le forum mysql ne prend pas en charge les millisecondes ,
    par exemple est-il possible de demander plusieurs valeurs d'une contrainte dans 1 seconde (t1=0.23 s ,t2=0.5s ....).

    -Concernant le format des données qui sera envoyé à la base de données elle sera en quoi ?
    est-il possible que la chart que je vais utiliser aura accès directement au données sans passer par la base de données ?


    Merci infiniment

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par achraf.b.a Voir le message
    -Vous avez mentionnes que un sgbs peut faire plusieurs requêtes par seconde ,mais d’après ce que j'ai lu dans le forum mysql ne prend pas en charge les millisecondes ,
    par exemple est il possible de demander plusieurs valeur d'une contrainte dans 1 seconde (t1=0.23 s ,t2=0.5s ....).
    Effectivement, il semble que MySQL tronque les fractions de secondes (vraiment pas bon ce SGBD !).
    Il faudra probablement stocker ces fractions de seconde dans une colonne séparée.
    mesure (msr_id, msr_id_capteur, msr_date_heure, msr_fraction_de_seconde, msr_valeur)
    Pourtant, dans la doc de MySQL sur les fonctions de date et heure, on y voit la notion de MICROSECOND !
    -Concernant la format des données qui sera envoyer a la base de données elle sera en quoi ?
    Tu enregistreras les données grâce à une requête SQL de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INSERT INTO mesure (msr_id_capteur, msr_date_heure, msr_fraction_de_seconde, msr_valeur)
    VALUES 
    	(1, '2011-11-19 09:04:00', 0, 825.12),
    	(2, '2011-11-19 09:04:00', 0, 512.20),
    	(3, '2011-11-19 09:04:00', 0, 748.35),
    	(1, '2011-11-19 09:04:00', 25, 825.20),
    	(2, '2011-11-19 09:04:00', 25, 512.08),
    	(3, '2011-11-19 09:04:00', 25, 748.30)
    Au programme qui génère la requête de préparer la requête avec le bon format de données.

    est il possible que la chart que je vais utiliser aura accès directement au donnes sans passer par la base de données ?
    Euh... la "chart" ? Je ne comprends pas la question.
    Puisque les données seront enregistrées dans la BDD, il faudra un programme pour extraire les données de la BDD. Ce programme préparera des requêtes SELECT et les enverra au SGBD puis récupérera un jeu de résultats et le traitera.

    Par exemple, quelles sont les valeurs mesurées de la poutre 1 entre 9h et 10h le 19 novembre 2011 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT CONCAT(EXTRACT(HOUR_SECOND FROM msr_date_heure)) AS date_heure, msr_valeur
    FROM mesure
    WHERE msr_id_poutre = 1
            AND msr_date_heure BETWEEN '2011-11-19 09:00:00' AND '2011-11-19 09:59:59'
    	AND msr_fraction_de_seconde BETWEEN 0 AND 999
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    Merci Cinephil encore une fois ,

    vous m'avez donné une grande idée ,mais je suis loin de comprendre tout pour le moment .
    je voulais dire par la chart , la bibliothèque graphique en javascript qui affichera mes données sous formes d'un graphe dynamique Highchart

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 737
    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 737
    Points : 52 448
    Points
    52 448
    Billets dans le blog
    5
    Par défaut
    Si vos données doivent être insérées en continu et que vous n'avez pas de moyen de rétention des données à insérer il faut penser à utiliser un mécanisme de haute disponibilité du serveur afin d'assurer un service continu des données, même en cas de panne. Il faut donc un système fonctionnant 24h/24 7j/7 avec un temps de dispo de 99.999% soit au plus 5 minutes par an d'indisponibilité...
    Pour cela il faut disposer de fonction de clusterisation physique ou bien de mirroring avec basculement automatique.
    Il faut en sus que toutes les opérations de maintenance puissent être fait à chaud et sans blocage.
    Ceci exclu donc MySQL qui ne sait même pas faire des sauvegarde consistantes à chaud et même PostGreSQL dans lequel certains opérations de maintenance (notamment celle concernant les index) sont bloquantes.

    Reste donc MS SQL Server, IBM DB2, Sybase ASE et Oracle. Le moins cher étant de loin MS SQL Server.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Si vos données doivent être insérées en continu et que vous n'avez pas de moyen de rétention des données à insérer
    Merci SQLpro

    si ce n'est pas le cas et que j'ai un moyen de rétention de données est ce que ça me facilitera la tache ? en stockant les données sous forme xml par exemple et la base mysql se mettra a jour via ce fichier xml .

    merci

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 737
    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 737
    Points : 52 448
    Points
    52 448
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par achraf.b.a Voir le message
    si ce n'est pas le cas et que j'ai un moyen de rétention de données est ce que ça me facilitera la tache ?
    Soyez sur que votre moyen soit fiable... C'est rarement le cas des fichiers (corruption aisées). Alors que l'avantage des SGBDR est d'être beaucoup plus fiable du fait de la journalisation des transactions et des outils de reconstruction des données corrompues, donc des moyens de récupérer vos données même en cas de panne sévères...
    Bien entendu ceci n'existe quasiement pas sous MySQL qui est un ersatz de SGBDR. A lire sur le sujet : http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    Merci bien pour vos suggestions

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

Discussions similaires

  1. Conseil pour le choix d'une base de données
    Par gta126 dans le forum VB.NET
    Réponses: 3
    Dernier message: 20/06/2008, 10h40
  2. choix d'une base de données simple
    Par semenzato dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 12/07/2005, 15h18
  3. choix d'une base de donnée
    Par frisouille dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 17/06/2005, 16h52
  4. Choix d'une base de données
    Par AlexB59 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/06/2005, 18h02
  5. Choix d'une base de données
    Par maurice66 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 15/07/2004, 11h14

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