事实表关联非最低粒度的维度的情况

事实表关联非最低粒度的维度会造成数据混乱么?

做了点测试数据测试一下~


测试一



这批测试数据比较简单。

第一张是事实表数据,将会用Level2Code来关联维度表。

第二张是维度表,Level3是最低粒度,level2是爸爸,level1是爷爷。

这边一个level2只对应一个level1,level2是a的记录,虽然本身有两条,但他们的父亲都是AB。

如果撇开Level3不看,那level1和level2是很工整的,

AB-a

AB-b

CD-c


Cube维度中生成三级hierarchy。维度用法关联时候,会有警告:



无视警告,点确定,cube成功process。数据如下,前两级十分合理,没有错误。



点开第二级a,发现无法被第三级切,a1,a2皆为30. 这个在情理之中。







测试二

接下去,把维度测试数据变得更复杂一些。测试数据2 如下:



事实不变,不同点在于维度,一个level2能对应不同的level1了,例如,b的父亲即能是ABC,也能是BCD。看前两级,发现:

ABC-a

ABC-b

ABC-c

BCD-b

BCD-c

BCD-d


改完数据,process,失败。。。报错:



看来AS不允许这种重复的关系,下往上只能一对一?

于是用组合键克服这个层级关系错误。

对于level2,把他的key 设成lv1,lv2的组合。这样,因为保证了唯一性,但process维度是能process过:




然后再去维度用法里,一看,发现这没法对应了。。。




强制需要fact表同样提供两个键,否则不能点确定。


看来父子关系一乱就没法往下走了。

结论:如果要关联不是最低粒度的维度,则一定要求前几级规范。不能出现一个儿子多个爸爸,否则过不了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值