2011-02-10 7 views
0

Les données de l'installation sont des données en temps réel provenant du processus de l'installation, telles que la pression, la température, le débit de gaz, etc. Le modèle de données de ces données est typiquement comme ceci:
(Point Name, Time stamps, value(float or integer), state(int))Comment stocker les données de l'usine et où stocker?

Nous avons des milliers de points et de longue date à stocker. Et important, nous voulons les rechercher facilement et rapidement quand nous en avons besoin.

Une recherche généralement demande est comme:

get data order by time stamp 
    from database 
    where Point name is P001_Press 
    between 2010-01-01 and 2010-01-02

Une base de données similaire à MySql ne convient pas pour nous, parce que les dossiers sont trop nombreux et la requête est trop lentement. Donc, comment stocker les données (comme ci-dessus) et où les stocker? Toutes les bases de données NOSQL ??

Merci!

Répondre

0

Ce modèle de requête et de données s'intègre très bien dans une base de données SQL, ce qui signifie que l'implémenter avec NoSQL représentera beaucoup plus de travail que de corriger les performances de votre requête dans SQL.

Si vos données sont insérées en temps réel, vous pouvez supprimer la clause order by car la date sera déjà triée par horodatage et il n'est pas nécessaire de perdre du temps à la faire. Un index sur le nom du point et l'horodatage devrait vous donner de bonnes performances sur le reste de la requête.

Si vous parvenez vraiment aux limites de ce qu'une table SQL peut contenir (plusieurs millions d'enregistrements), vous avez la possibilité de partitionner - une table pour chaque point de données peut fonctionner assez bien.

+0

Merci pour votre réponse. C'est utile. –

Questions connexes