IntegrationService学习--数据流转换组件3
2008-11-24 10:10:54 来源:WEB开发网核心提示:接下来我们今天要用ssis解决一个ETL里面经常会碰到的维度问题,就是在导入事实表的时候,IntegrationService学习--数据流转换组件3,查找事实表中的某个维度的代理键的时候(比如我前几篇文章中的时间维度),假如维度表中不存在该键值,设置派生列的属性在表达式里面加上判断"ISNULL(Trade
接下来我们今天要用ssis解决一个ETL里面经常会碰到的维度问题。就是在导入事实表的时候,查找事实表中的某个维度的代理键的时候(比如我前几篇文章中的时间维度),假如维度表中不存在该键值,那么就会出错。现在我们的要求是假如发现维度表没有该记录,我们要不出错,先往维度表里面把该记录插入进去,然后再查找该维度的代理建,这样就肯定可以找到了。
以下是数据流的图片
首先我们把日期传过来到达“查找TradeDatekey”这个组件,如果发现日期维度表没有该记录,就把错误重定向到转换日期字段组件上,在这个脚本组件里面,会把日期分解成日期维度表里面的每个字段,比如年,月,日,周等,然后用渐变维度插入到日期维度表中。(这个步骤需要配置“查找TradeDatekey”这个组件的错误重定向)
接下来在"查找TradeDatekey1"组件里面重新查找一遍这个组件,那么肯定可以查到了。
另外维度处理还有另外一种常见的处理,在导入事实表的时候发现该维度不存在,那么就把事实表中该维度的键值设置-1,那么下面我也给出设置的办法。
在查找维度键的组件中要把错误配置为忽略,然后进入下面的设置,这样如果维度查找不到,查找的维度代理键将会是NULL
加入一个派生列,设置派生列的属性
在表达式里面加上判断"ISNULL(TradeDateKey) == TRUE ? -1 : TradeDateKey"然后覆盖你要查找的维度的键就可以了。
好了,今天查找维度的两种基本方式已经介绍完了。
Tags:IntegrationService 学习 数据流
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接