加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

关于数据仓库 —lookup表的一点看法

发布时间:2020-12-12 15:32:40 所属栏目:MsSql教程 来源:网络整理
导读:?原创于2007年03月21日,2009年10月15日迁移至此。 对于搞数据仓库的人来说,面试的时候总会问及到lookup表的概念。。。。。。 对于搞数据仓库的人来说,面试的时候总会问及到 lookup 表的概念,这个概念一开始对我而言也是很莫名其妙的;明明基础表和事实表

通常的做法

SELECT A.ID,SUM(Measure1) as Measure1,SUM(Measure2) as Measure2 FROM table_original A,table_dimension B
WHERE A.ID = B.ID

为了严谨起见,我们的处理最多是加以 NULL 值或者未匹配键值的处理

SELECT -- A.ID,B.ID,-- the transformed field names ID
DECODE(NVL(A.ID,-2),-2,DECODE(NVL(B.ID,-1),-1,B.ID)) AS ID,
SUM(CASE A.Measure1>0 AND A.Measure1<100 THEN Measure1 ELSE 0 END
) Measure1,
SUM(CASE A.Measure2>0 AND A.Measure2<100 THEN Measure2 ELSE 0 END
) Measure2,
FROM table_original A,table_dimension B
WHERE A.ID = B.ID(+)
GROUP BY DECODE(NVL(B.ID,B.ID))


Slowly change dimenstion

但 是对于老外来说,为了严谨起见,把维度做为历史处理的轨迹进行保存,主要是全记录处理方式其中包括版本号方式、时戳方式、标志方式(具体处理方式参看数据 仓库系列文章);所以必须增加一个代理主键,以记录和替代原来不断变化的内容,从而保存原主键信息的变化轨迹。主键的变化导致与原事实表关联过程中的脱 节,必须使用新的外键代理原来的外键值。同时主键的变化导致在与事实表关联过程的变化,当然我们也可以使用复杂的视图和函数方式寻找到相应的外键值;但是 对于老外来说宁愿用最简单的方式,图形化的操作和最直观的方式进行处理,毕竟数据库、数据仓库、 ETL 图形工具全部都是由老外发明的。实现的原理其实很简单:

Slowly change dimenstion



原理


SQLServer2005 SSIS实现的一个实例

Slowly change dimenstion

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

?原创于2007年03月21日,2009年10月15日迁移至此。


对于搞数据仓库的人来说,面试的时候总会问及到lookup表的概念。。。。。。

对于搞数据仓库的人来说,面试的时候总会问及到 lookup 表的概念,这个概念一开始对我而言也是很莫名其妙的;明明基础表和事实表的一个关联就可以完成的事情需要什么 lookup 表。

    推荐文章
      热点阅读