2011-02-10 101 views
0

工厂数据是来自工厂过程的实时数据,如压力,温度,气体流量等。这些数据的数据模型通常是这样的:
(Point Name, Time stamps, value(float or integer), state(int))如何存储工厂数据和存储位置?

我们有数千个点和长时间存储。而且重要的是,我们希望在需要时方便快捷地进行搜索。

一个典型的搜索请求是这样的:

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

类似MySql数据库是不适合我们,因为记录实在是太多了,查询是过于缓慢。

那么,如何存储数据(如上)以及在哪里存储它们呢?任何NOSQL数据库?

谢谢!

回答

0

这个数据和查询模式实际上非常适合SQL数据库中的平坦表,这意味着在NoSQL中实现它将比在SQL中修复查询性能的工作量大得多。

如果您的数据是实时插入的,您可以删除order by子句,因为日期已经按时间戳排序,并且不需要浪费时间对它进行排序。关于点名称和时间戳的索引应该可以让您在查询的其余部分获得良好的性能。

如果你真的想要了解SQL表格可以容纳的限制(数百万条记录),你可以选择分片 - 每个数据点的表格可能工作得很好。

+0

感谢您的回答。这很有帮助。 – 2011-02-11 08:52:53