0

我在全国部署了一个数据采集系统网络。每个系统都在测量不同建筑物的性能。每个系统都进行温度、流量、速度、能量和其他类型的测量。采样率因系统而异;它可以低至 5 秒,高至 15 分钟。

我的目标是将所有数据存储在 SSAS 数据库中以进行分析。但是,我正在努力确定适当的粒度和相关的事实表以及 SSAS 度量/度量组设计。

我的第一个问题是,以下是否有相同的纹理?:

  • 具有不同单位的数据值,例如温度和能量值
  • 不同采样率的数据值,例如每分钟采样一次的温度值和每15分钟采样一次的温度值
  • 从不同建筑物记录的数据值,例如1号楼的室内温度和2号楼记录的室内温度
  • 加法数据值(例如能量)和非加法数据值(例如温度)
  • 在特定建筑物中使用相同单位进行两次不同的测量,例如一楼温度和二楼温度。

如果这些示例中的大多数或全部没有相同的粒度,这是否意味着每个建筑物的度量都应该在关系数据仓库中有一个单独的事实表,而在 SSAS 数据库中应该有一个单独的度量?如果是,那么如果我们假设我正在研究 10 个建筑物,每个建筑物都有 100 个测量值,那么我会查看 1000 个测量值。这似乎不对,但似乎我正在处理一个具有许多不同度量粒度的数据模型。

我发现的几乎所有示例都与金融或零售有关,它们由明显可加或可数的度量组成,例如美元金额或项目。因此,这些示例并没有太大帮助。

4

1 回答 1

1
  • 如果使用所有维度(时间、建筑物等)的相同交集收集具有不同单位的数据值,则它们可以具有相同的粒度。在该示例中,温度和能量值将是事实表中的单独列。不建议使用单个事实列来表示具有不同单位的测量值。

  • 如果您需要能够同时报告两个间隔,则具有不同采样率的数据值不会处于相同的粒度。但是,如果您可以在更细粒度的间隔上标准化您的报告,您可以简单地将更粗粒度的值复制到更细粒度的行中。例如,您可以有一个 TemperaturePerMinute 列和一个 TemperaturePer15Minute 列,其中 15 分钟间隔值在该间隔内的所有分钟值中重复。但是,在粗粒度列上报告时使用聚合(计数等)时需要小心。此外,如果您需要深入到样本级别,您可能需要为每个间隔类型使用单独的事实表。

  • 来自不同建筑物的数据值当然可以以相同的粒度记录在单个事实表中。您只需有一个建筑维度,您可以将其链接到每个测量样本的事实表。

  • 在 OLAP 模型中,度量通常是相互独立的,因此加法和非加法值可以在同一粒度上简单地表示为单独的列。

  • 在这种情况下,您将扩展您的 Building 维度以包含 Floor 层次结构并在 Floor 粒度链接您的事实表记录。但是,如果您需要能够将一些样本链接到建筑物,而将一些样本链接到楼层,那么您可能需要使用父子维度(可能是抽象建筑物和楼层的位置维度),您可以将您的事实表到建筑物或楼层。

我发现,当星型模式的组织不明确时,查看您希望如何报告数据会有所帮助。这应该有助于减少您必须创建的多维数据集的数量。不过,一般来说,最好不要尝试规范化 OLAP 模型或使其过于通用(即使用单个列来表示温度和能量)。

于 2013-02-25T16:08:58.553 回答