我一直在寻找有关如何在数据库中存储数据以进行历史数据挖掘的建议。如果我可以在给定时间获得实体的状态,那么存储它的最佳方式是什么,以便我可以历史地挖掘该数据,根据过去的情况预测状态可能是什么? / p>
对于一个更具体的例子,我可以获得服务器的up / down状态,以及该服务器的当前负载。我可以定期得到这个。我想存储这些数据,以便我可以轻松查询特定时间范围的上/下状态或负载,或获取该服务器的整个历史记录。我在数据库设计方面没有太多经验。
答案 0 :(得分:1)
这就是Ralph Kimball(及其他人)发明数据仓库的原因。
您有星型模式,其中包含服务器和时间等维度。您有一个记录状态更改的事实表(向上和向下)和一个在给定时间点记录Load的事实表。
步骤1.找到关于星型模式设计的好教程。如果有必要买一两本书。您花在学习如何进行星型模式数据建模的每一刻都值得。
步骤2.尽可能便宜且快速地构建原型模式。获取数据,以便您可以编写一些查询并查看工作原理。犯错误。修复它们。
步骤3.在你得到一些工作后,写下一个好的设计。
步骤4.构建“真实”数据集市。
步骤5.构建“生产”负载。
步骤6.查询。
答案 1 :(得分:0)
这就是为什么有一个新版本的标准SQL:2011。
只需将适当的开始日期和结束日期属性添加到您的实体和/或表格的相应列中,基本上就完成了。
如果你有一个支持新功能的引擎,那么新的SQL会为你做很多(但不是全部)非常麻烦的工作。