Data warehouse 当前余额属于事实表还是维度表?

Data warehouse 当前余额属于事实表还是维度表?,data-warehouse,business-intelligence,Data Warehouse,Business Intelligence,我刚开始构建一个数据仓库,我正努力在脑海中清楚地了解余额是事实还是维度 我有一个“客户”表,我认为这应该是一个维度。它具有客户名称等属性 对我来说,创建一个名为“Customer Account”的事实表似乎是有意义的,它包含帐户余额等信息,并将“Customer”维度链接到该维度 然而,“客户”将是一个一致的维度,因为几乎每个事实表都将链接到它。我知道,人们想要对数据进行切分和切分的一种常见方式是按当前余额(例如,显示客户欠款超过500英镑时有多少个X)。这表明天平应该存储在维度中。但我觉得这

我刚开始构建一个数据仓库,我正努力在脑海中清楚地了解余额是事实还是维度

我有一个“客户”表,我认为这应该是一个维度。它具有客户名称等属性

对我来说,创建一个名为“Customer Account”的事实表似乎是有意义的,它包含帐户余额等信息,并将“Customer”维度链接到该维度

然而,“客户”将是一个一致的维度,因为几乎每个事实表都将链接到它。我知道,人们想要对数据进行切分和切分的一种常见方式是按当前余额(例如,显示客户欠款超过500英镑时有多少个X)。这表明天平应该存储在维度中。但我觉得这是不对的

我想,如果任何人想要一份按余额过滤或分组的报告,那么他们可以钻取到“客户账户”事实表中——但这似乎不太方便用户

也许我需要创建一个“客户帐户”事实表,并且也将余额添加到“客户”维度


欢迎您的建议

你几乎回答了你自己的问题:两者都用

  • 维度中,允许根据当前余额进行过滤;必须为每笔交易或至少每天更新余额
  • 例如,作为快照事实表,使用半动态度量余额,允许对账户余额进行时间序列分析

好的,谢谢你的回答。大声思考。。。如果我采用这种方法,那么我是否需要在每次余额发生变化时向维度添加一个新行(以允许时间点报告),或者我是否最好每次都覆盖余额,只允许通过钻取到事实表中的时间点报告?如果我采用第一种方法,我想知道我是否从事实表中获益。如果我采用第二种方法,那么用户必须采用与当前报告完全不同的方法来生成时间点报告。我不建议将余额视为SCD II属性,因为这将导致您的客户维度在事实表中具有几乎相同的基数。我只是每次更新到最后一个已知的平衡,而不是跟踪历史。这就是Account balances snapshot事实表的作用,它为余额提供时间序列数据。