【问题标题】:How do you design an OLAP Database?如何设计 OLAP 数据库?
【发布时间】:2011-04-03 06:34:48
【问题描述】:

我需要一个心理过程来设计一个 OLAP 数据库...

基本上对于标准关系来说它是(松散地):

Identify Entities
Identify Relationships
Identify Properties of Entities

对于每个属性:

Ensure property can be related to only one entity
Ensure property is directly related to entity

对于 OLAP 数据库,我了解术语、动机和结构;但是,我不知道如何将我的关系模型分解为 OLAP 模型。

【问题讨论】:

    标签: olap


    【解决方案1】:

    识别维度(或依据) 这些是您可能想要分析/分组报告的任何内容。源数据库中的每个表都是一个潜在的维度。如果可能,维度应该是分层的,例如您的日期维度应该具有年、月、日层次结构,类似地,位置应该具有例如国家、地区、城市层次结构。这将使您的 OLAP 工具能够更有效地计算聚合。

    确定措施 这些是 KPI 或您的客户想要查看的实际数字信息,这些通常能够被聚合,因此源数据库中的任何非标志、非关键数字字段都是潜在的衡量标准。

    按星型排列,度量在中心“事实”表中,FK 关系与适用的维度表。度量值应存储在最低维度层次结构级别。

    确定事实表的“粒度”,这本质上是所持有的“详细程度”。它通常由报告要求、源中可用的数据粒度和报告解决方案的性能要求决定。您可以随时确定粒度,也可以在确定所有重要数据后将其作为最后一步.我倾向于有最后一步来确保我的事实表之间的粒度是一致的。

    最后一步是确定缓慢变化的维度以及对这些维度的要求。例如,如果客户维度包含他们地址的一个元素并且他们移动,那么如何处理。

    【讨论】:

    • 非数字字段也可以用count函数聚合吧?
    • @dpp,同意,确实可以计算非数字字段,这对于具有多个选项(即状态字段)的文本字段可能很有用,数字字段提供了更多的聚合选项(平均、百分比、标准.dev 等)请注意,还有不应该聚合的数字数据(平均值的平均值!!)或者只有某些类型的聚合才有意义。
    • 什么是解释上述概念的好书@stevenrcfox
    【解决方案2】:

    确定维度和度量的一个重要点是您为模型选择的最终基数。 假设您的关系数据库数据输入是全天的。 也许您不需要按小时(甚至按天)可视化或汇总度量。您可以选择周粒度或每月等。

    【讨论】:

    • 谢谢,这是一个有用的观点,我没有包含在我的回答中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2011-05-13
    • 1970-01-01
    相关资源
    最近更新 更多