【问题标题】:How to store the plant data and where to store?如何存储工厂数据以及存储在哪里?
【发布时间】:2011-02-10 02:18:55
【问题描述】:

工厂数据是来自工厂过程的实时数据,例如压力、温度、气体流量等。这些数据的数据模型一般是这样的:
(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 数据库?

谢谢!

【问题讨论】:

    标签: database nosql


    【解决方案1】:

    这种数据和查询模式实际上非常适合 SQL 数据库中的平面表,这意味着使用 NoSQL 实现它比在 SQL 中修复查询性能要多得多。

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

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

    【讨论】:

    • 感谢您的回答。很有帮助。