本文主要是介绍3.14、BI之SSIS之数据流转换(查找),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
BI之SSIS之数据库转换(查找)
1 新建一个SSIS包,命名为“6-查找与重定向”-》打开
2 控制流-》拖入“数据流任务”-》双击打开
3 连接管理器-》右键“新建OLEDB连接”-》选择“LocalHost.AdventureWorks2008.sa”
4 数据流-》拖入“OLEDB源”-》双击打开
4.1 OLEDB连接管理器“LocalHost.AdventureWorks2008.sa”
4.2 数据访问模式“SQL命令”
4.3 SQL命令文本“selecttop 10 addressId from Person.Address where addressId<500”
4.4 点击列,查看要输出的列
4.5 确定
5 数据流-》拖入“查找”
5.1 将“OLEDB源”的数据流指向“查找”-》双击打开
5.2 常规
5.2.1 缓存模式“完全缓存”
5.2.1.1 完全缓存:缓存连接表的所有数据
5.2.1.2 部分缓存:缓存查找到是所有数据
5.2.1.3 无缓存:不缓存连接表的数据
5.2.2 连接类型“OLEDB连接器”
5.3 连接
5.3.1 OLEDB连接管理器“LocalHost.AdventureWorks2008.sa”
5.3.2 选择使用SQL查询结果“select top 10 * from Person.Address where addressId<500”
5.4 列
5.4.1 查找控件就相当于JOIN,列中可对要关联的字段进行关联,相当于ON
5.4.2 拖动AddressID连向另一边的AddressID
5.4.3 并勾选addressID、city列,作为输出列
5.5 确定
6 数据流-》拖入平面文件目标
6.1 将“查找”的数据流指向“平面文件目标”-》双击打开
6.2 输出“查找匹配输出”,这样查找到的匹配数据就会走这条数据流,不匹配的就不会走这条
6.3 平面文件连接管理器“新建”,在此新建一个平面文件连接
6.3.1 选择“带分隔符”
6.3.2 常规-》连接管理器名称“匹配的查找数据文件连接”-》文件名“浏览”-》选择保存路径-》文件名“匹配的查找数据文件”-》打开-》勾选“在第一个数据行中显示列名”
6.3.3 列-》列分隔符“制表符 {t}”
6.3.4 高级,可以设置各个列的属性
6.3.5 确定
6.4 映射,可对输入列和目标列间进行映射-》选择好映射关系
6.5 确定
7 执行包-》全绿成功-》查看相应的文件是否有数据
8 双击“OLEDB源”-》连接管理器-》SQL命令文本改为“select top 10 addressId from Person.Address where addressId>500”-》确定
9 再次执行包-》查找变成红色,表示查找出现了错误-》点击底部的“输出”,查看错误输出为““组件“查找”(19)”失败,错误代码为 0xC020901E,而且针对“输出“查找匹配输出”(21)”的错误行处理设置指定一旦出错就失败。”
10 为什么会出错,因为数据源是大于500的AddressID,而查找的数据却是大于500的数据,这时匹配的查找数据条数为0,所以报错。我们如何解决无法查找到数据的情况呢?这时就要用到“无匹配输出流重定向”
11 双击查找-》常规-》指定如何处理无匹配的行“将行重定向到无匹配输出”-》确定
12 数据流-》拖入平面文件目标
12.1 将“查找”的数据流指向“平面文件目标1”-》双击打开
12.2 输出“查找无匹配输出”,这样查找不到的数据就会走这条数据流
12.3 平面文件连接管理器“新建”,在此新建一个平面文件连接
12.3.1 选择“带分隔符”
12.3.2 常规-》连接管理器名称“不匹配的查找数据文件连接”-》文件名“浏览”-》选择保存路径-》文件名“不匹配的查找数据文件”-》打开-》勾选“在第一个数据行中显示列名”
12.3.3 高级,可以设置各个列的属性
12.3.4 确定
12.4 映射,可对输入列和目标列间进行映射-》选择好映射关系
12.5 确定
13 再次执行包-》全绿,则成功-》查看“不匹配的查找数据文件”是否有数据
这篇关于3.14、BI之SSIS之数据流转换(查找)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!