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