元数据报告数据库 - 我应该使用哪种类型的数据库模式?

时间:2014-02-17 09:21:26

标签: sql database database-design data-warehouse

我的任务是从Windows服务器收集服务器配置元数据并将其存储在数据库中以进行报告。我将为每个服务器收集超过100个配置字段的数据。

客户端希望能够执行的任务之一是比较不同时间点的同一服务器的配置数据,或者具有相同功能的两个不同服务器(即Exchange服务器)。看看是否存在任何差异以及这些差异可能是什么。

对于数据库设计,我通常只是将所有数据规范化为OLTP类型模式,其中所有类似的配置项将被持久化到与其特定区域相关的表(例如硬件信息)。但我认为这可能是一个糟糕的举动,我应该将其保存到某种OLAP类型的数据仓库中。

我只是不确定数据库设计采用哪种方式,因此可以对此采取一些指导。我应该对数据进行规范化并创建大量表格,还是一个没有规范化和超过100个字段的大型表格,还是应该研究星形拓扑或完全不同的东西(EAV)?

我只能使用.Net和MSSQL server 2005。

编辑:收集和存储数据的工具将根据需要运行,而不是每天/每周抓取配置数据。希望至少将数据保存几年。

1 个答案:

答案 0 :(得分:1)

根据我的经验,Star Schema最适合报告目的。没有必要使用Star Schema进行存储,因为它可能是一组视图(为性能编制索引),您可以稍后为Star Schema设计视图。存储模型应该是一组事件表来记录配置更改。您可以从平面日志文件结构开始,并迭代地对其进行规范化,以找到存储和查询的良好结构。如果您可以定义模型约束,那么存储模型应该是好的,报告模型应该适用于快速的即席查询。您应该关注存储模型,因为报告模型是存储模型的非规范化,以后更容易进行非规范化。 EAV结构对于两种模型都是无用的,因为您无法定义任何约束,但查询仍然很复杂。