工厂数据是来自工厂过程的实时数据,例如压力,温度,气流等。这些数据的数据模型通常如下:
(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 :(得分:0)
这种数据和查询模式实际上非常适合SQL数据库中的平面表,这意味着使用NoSQL实现它将比修复SQL中的查询性能要多得多。
如果您的数据是实时插入的,您可以删除order by子句,因为日期已经按时间戳排序,并且不需要浪费时间来使用它。点名称和时间戳的索引应该可以在查询的其余部分获得良好的性能。
如果你真的达到了SQL表所能容纳的限制(数百万条记录),你可以选择分片 - 每个数据点的表可以很好地工作。