BI - 具有不相容颗粒的事实表设计
Posted
技术标签:
【中文标题】BI - 具有不相容颗粒的事实表设计【英文标题】:BI - fact table design with incompatible grains 【发布时间】:2019-05-17 22:17:40 【问题描述】:我对 BI 设计数据库很陌生,这里有些地方我不太理解。 我正在尝试导入法国人口普查数据,在那里我得到了每个城市的人口。对于每个城市,我都有不同年龄分类的人口,它们之间并没有真正的联系。
例如,假设一个分类是 00 到 20 岁、21 到 59 岁和 60+ 另一个更精确:00 到 02、03 到 05 等,但界限与第一个分类不同:例如,我没有 15 到 20,而是 18 到 22。
所以这两个分类是不兼容的。如何在我的事实表中使用它们?我应该使用 2 个事实表和 2 个立方体吗?我应该为 1 个立方体使用一个事实表和 2 个维度吗?但是在这种情况下,当我总结一个城市的总人口时,我会重复计算事实,不是吗?
这是国家人口普查数据和国家分类,因此更改这些数据或估计人口以混合这些分类不是一种选择。需要明确的是,一排与一个人无关,而是与一个城市有关。我的事实不是个人,而是城市人口。 所以这张表就像: 第 1 行:一个城市 - 一定数量的人口 - 该人口的模糊年龄(例如 00 至 19 岁)的一个代码 - 该人口的模糊性别的代码 (m/f) - 人口普查日期 第 2 行:同一城市 - 一定数量的人口 - 该人口的低年龄(例如 20 至 34 岁)的一个代码 - 低性别的代码 (m/f) - 人口普查日期 所以它适用于很多城市,无论是性别还是多年。 一样
我希望这个问题足够清楚,因为英语不是我的母语,而且我是 DB 和 BI 的新手!
感谢您帮助我。
【问题讨论】:
我建议你把问题一分为二,不兼容的范围保留这个,第二部分打开一个新的。 关于不兼容的范围,是否可以获取实际年龄?如果这是不可能的,有办法近似一个统一的范围,但它不会是准确的。 感谢您的 2 个回答,我已经充分编辑了我的 OP。 【参考方案1】:使用单个事实表和两个维度的年龄范围的一种可能解决方案:
1 - 基于最广泛人口普查的分类范围,例如:
年轻0-20 21-59 岁成人 60+老年人然后,您可以使用近似值将其他人口普查与该维度联系起来,例如 18-22 可能是 Young。
2 - 原始年龄范围。当您报告单个城市时,此维度可用于精确的年龄范围,它还可以帮助您评估重叠边界的影响(例如年轻 / 18-22 范围内有多少行?)
【讨论】:
【参考方案2】:您可以按以下方式创建一维
年轻 1-20 成人 21-59 60岁以上的老人
分类是 年轻的城市 1 : 1-20 年轻的城市 2 : 4-23
id field1 field2 field3 field4 .......
1 1 year young_city_1 other .......
2 2 year young_city_1 other .......
3 3 year young_city_1 other .......
4 4 year young_city_1 young_city_2 .......
现在您可以从任何项目和任何部门报告
希望对你有帮助
【讨论】:
以上是关于BI - 具有不相容颗粒的事实表设计的主要内容,如果未能解决你的问题,请参考以下文章