对于搞数据仓库的人来说,面试的时候总会问及到lookup表的概念,这个概念一开始对我而言也是很莫名其妙的;明明基础表和事实表的一个关联就可以完成的事情需要什么lookup表。
|
通常的做法 SELECT A.ID,SUM(Measure1) as Measure1,SUM(Measure2) as Measure2 FROM table_original A,table_dimension B 为了严谨起见,我们的处理最多是加以NULL值或者未匹配键值的处理 SELECT -- A.ID,B.ID, -- the transformed field names ID |
但是对于老外来说,为了严谨起见,把维度做为历史处理的轨迹进行保存,主要是全记录处理方式其中包括版本号方式、时戳方式、标志方式(具体处理方式参看数据仓库系列文章);所以必须增加一个代理主键,以记录和替代原来不断变化的内容,从而保存原主键信息的变化轨迹。主键的变化导致与原事实表关联过程中的脱节,必须使用新的外键代理原来的外键值。同时主键的变化导致在与事实表关联过程的变化,当然我们也可以使用复杂的视图和函数方式寻找到相应的外键值;但是对于老外来说宁愿用最简单的方式,图形化的操作和最直观的方式进行处理,毕竟数据库、数据仓库、ETL图形工具全部都是由老外发明的。实现的原理其实很简单:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/6517/viewspace-145499/ ,如需转载,请注明出处,否则将追究法律责任。