SSIS之数据流任务
数据流任务主要用于运行数据流以提取、转换、加载源数据。一个包中可以有多个数据流任务,也可以包含零个数据流任务。下面关系图显示含有一个数据流任务的包:
了解数据流任务后,我们就简要的学习一下如何创建数据流任务。
- 在工具箱中双击数据流任务控件或则将其拖放到控制流页面中。如图:
你可以根据需求来修改数据流任务的属性。
2. 单击数据流选项卡,从工具箱中拖放一个OLE DB Source.命名为Products。右击选择编辑进行配置。如图所示。
其中sql语句的问号表示通过变量传递的参数值。单击参数按钮将问号映射到创建的变量。如图:
你也可以通过变量属性的下拉框中选择新建变量选项创建新的变量。然后单击确定按钮回到父选项框,再然后单击确定按钮
3. 在工具箱将Lookup 查找控件拖放到数据流中,通过从数据源拖动绿色箭头到该转换,将Products源和Lookup转换相连接。将Lookup转换命名为Find Model name。然后双击该控件,做如下配置:
3.1 常规选项卡配置如下:
3.2 连接配置如下
3.3 列配置如下
3.4 高级配置如下
如果在常规选项卡中选择完全缓存模式,则该选项卡不能使用。
3.5 错误输出配置如下
这样一个完整的Lookup转换就配置结束。这个已完成的配置的转换现在的做法是,试图根据数据源中的ProductModelID匹配表ProductModel。如果无匹配的行,就会发生错误,不过,因为已经配置该转换忽略这一错误,因此如果没有找到匹配的。ModelName列将包含Null值。
4. 将一个派生列和行计数控件拖放到数据流中,分别命名为 Assign Default Values And Prie、No Mapping Count,并将Lookup转换的输出连接到该派生列行计数控件。如下图:
打开派生列的编辑框。配置如下信息
配置行计数信息如下
5.经过对源数据的转换后,将这些数据加载到目标数据中。可以将行计数拖放到设计窗格。连接派生列到行计数,将行计数命名为Mapping Count。双击它并配置如下信息:
将组建选项卡中的VariableName属性设为IntCount,当然这个变量事先要在变量工具箱中设计好。
- 在工具箱中的数据流目标卡中,托动一个平面文件目标。命名为Partner Extract。右击单击编辑,选择新建按钮,弹出对话框
然后单击确定按钮,弹出下面的对话框
剩下的配置,按连接管理器配置方式进行配置。在这我们是将转换后的数据输出到:
E:\BI资料\SSISETLDemo\partnerextract.txt 中
到此一个完整的数据流任务就建立完成。整体流程如下
运行该包。得到如下信息