我有一个应用程序,可以从智能住宅中的十几个传感器收集数据。它以以下表格格式将其数据存储在MySQL数据库中:
CREATE TABLE IF NOT EXISTS `datapoints` (
`PointID` int(11) NOT NULL,
`System` varchar(50) NOT NULL,
`Sensor` varchar(50) NOT NULL,
`Value` varchar(50) NOT NULL,
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`PointID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;System场用于分组传感器,例如,“空气”系统有“温度”和“湿度”传感器,“太阳能电池板”系统有“发电(kW)”和“今日生产(kWh)”。所有字段都是varchar,因为有几种来自传感器的数据类型,而原始数据库设计人员则采用了简单的方法。(我知道这种数据结构效率不高,但改变它为时已晚。)
传感器包括空气温度、湿度、太阳能电池板输出、太阳能热水器温度等.
我们现在有了这个数据库,每天收集数万个数据点。到目前为止,我们已经使用了一个查询数据库的应用程序来构建传感器数据随时间变化的图表。然而,我们现在有许多千兆字节的数据,最终将耗尽日志硬件上的存储空间。
我正在寻找一种方法收集统计数据,然后删除它。我想到了很多类似于谷歌分析,Piwik,Awstats的数据。问题是我真的不知道从哪里开始。我希望能够查看最近几次的更详细的数据,例如:
但是,我不想过多地平滑数据。最终,我将不得不平滑数据,但我想保持它的详细尽可能长。例如,如果我的发电量大幅上升,如果它被平滑(低)成小时数据,然后再(低)在每日数据中,然后再(低)在每周数据中,本周的数据将不会反映出有一个高峰,因为平均值并不是所有点的平均值相同的。
有什么软件已经这样做了吗?如果不是,什么是好的开始方式?我可以使用任何语言,但首选是.NET、PHP或C(适用于Windows),因为这些语言是其他项目成员已经知道的语言,并且日志硬件已经设置好了。
发布于 2018-07-03 15:43:54
发布于 2013-08-18 03:43:11
您的数据问题是如此之大和潜在的开放式,我不认为有任何单一的工具可以解决您的问题。你可能需要为你的具体问题发明你自己的工具。
我认为您应该看看科学和工程社区使用的基于Python的工具。这包括用于交互式数据分析和可视化的IPython和Matplotlib。使用Numpy和西皮处理和处理大型数据数组。最后,当您需要进行一些严肃的数字处理时,请考虑SciKit学习。
祝好运。
https://stackoverflow.com/questions/10437654
复制相似问题