Lookup 组件用法全解

简介:

Lookup是查找的意思,Lookup组件实现两个数据源的连接,和Join语句实现的功能类似,使用Lookup 组件需要配置:

  • 两个输入:一个是上游数据流的输入Source Table,一个是要查找的数据集 Lookup Table;
  • 两个输出:一个是输出匹配成功的数据,一个是输出匹配不成功的数据。上游数据流的一行数据跟整个查找集进行匹配,如果匹配成功,那么输出匹配成功的数据,否则,输出匹配不成功的数据;
  • 比较逻辑:Lookup 组件等值比较,类似于join的on子句,on子句使用 “=” 进行条件判断;
  • 比较列:从两个输入中设置等值比较的字段;

一,Lookup组件用法示例

创建测试数据:

View Code

 1,Lookup 组件需要频繁访问Lookup Table,因此,缓存LookupTable有利于提高查找效率,Lookup组件支持三种缓存模式:FullCache,Partial Cache 和No Cache,这三种Cache Mode是针对lookup dataset的,由于上游数据流的每一行都要和lookup dataset的所有行进行匹配,对lookup dataset的访问是非常频繁的,为了提高性能,必须提高对lookup dataset的访问速度。如果内存允许,选择full cache,将lookup dataset的数据驻留在cache中,访问速度是最高的。

2,cache Connection manager是内存链接管理器,数据驻留在cache中。手动输入column,并选择type,length,codepage,index position。index position标识column是否是index column。index用于标识比较列,为1标识columnindex column,用于比较,为0标识该列不是index column,虽然不能用于比较列,但是可以用于replace 输入列。

 

3,cache Connection manager仅仅是标识内存的schema,但是数据源在哪里?需要使用 cache conversion将数据源中的数据导入到cache中。Codex前面有一个放大镜,标识该列是查找列,用于比较。

4,Lookup component 设置比较列mapping

在Lookup component的Columns选项卡中设置比较列mapping,Code和Codex进行比较,即on子句的比较条件。

如果需要使用查找集来代替上游数据流输入,可以勾选Available Lookup Columns的非查找列(index 列没有放大镜的列),然后在Lookup operations中选择Replace。如果要将lookup columns增加到输出流中,在Lookup operations中选择add as new column。

5,lookup component的输出有两个,匹配成功始终有输出,但是需要配置匹配不成功的输出,如图

Redirect rows to no match output :将没有匹配的行输出到匹配不成功的输出流中。

二,Lookup组件异常 

Lookup组件有两个输入数据源,一个是上流组件的输出,一个是组件Lookup的数据源,这个数据源是在Connection选项卡中进行配置。在开发package的过程中,我发现一个异常,当Lookup数据源没有返回数据时,会产生异常。异常信息如下:

[Lookup [2]] Error: Row yielded no match during lookup.
[Lookup [2]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The "Lookup" failed because error code 0xC020901E occurred, and the error row disposition on "Lookup.Outputs[Lookup Match Output]" specifies failure on error. An error occurred on the specified object of the specified component.  There may be error messages posted before this with more information about the failure.

异常发生的原因是no match entries的输出,默认情况下Specify how to handle rows with no matching entries选项为Fail component。

Workaround:将没有匹配上的数据行重定向到no macth output。

在General选项卡中,将Specify how to handle rows with no matching entries 指定为 Redirect rows to no match ouput.

作者悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。
分类: SSIS 组件
标签: SSIS, Lookup






本文转自悦光阴博客园博客,原文链接:http://www.cnblogs.com/ljhdo/p/4779315.html,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
缓存 安全 Java
|
6月前
|
算法 编译器 C++
【C++ 函数 基本教程 第二篇 】深度剖析C++:作用域与函数查找机制
【C++ 函数 基本教程 第二篇 】深度剖析C++:作用域与函数查找机制
64 0
|
JavaScript
热点面试题:JS 中 call, apply, bind 概念、用法、区别及实现?
热点面试题:JS 中 call, apply, bind 概念、用法、区别及实现?
|
存储 JSON 数据建模
白话Elasticsearch58-数据建模实战_基于nested object实现博客与评论嵌套关系
白话Elasticsearch58-数据建模实战_基于nested object实现博客与评论嵌套关系
76 0
|
前端开发
前端学习案例-ref的基本用法
前端学习案例-ref的基本用法
91 0
前端学习案例-ref的基本用法
|
数据挖掘 Perl
Mummer 用法简析
Mummer 用法简析
134 0
|
JavaScript 前端开发 Unix
webpack原理篇(五十九):loader 的链式调用与执行顺序
webpack原理篇(五十九):loader 的链式调用与执行顺序
273 0
webpack原理篇(五十九):loader 的链式调用与执行顺序
|
Java 索引 Spring
连接器链调用---Spring源码从入门到精通(二十三)
连接器链调用---Spring源码从入门到精通(二十三)
连接器链调用---Spring源码从入门到精通(二十三)
|
XML API Android开发
Preference组件探究之源码解读
Preference组件探究之源码解读
|
安全 Java 数据安全/隐私保护
【SpringBoot 基础系列】SpEL 语法扫盲与查询手册
Spring 表达式语言简称为 SpEL,一种类似 Ognl 的对象图导航语言(对于 ognl 不熟悉的同学可以参考一下: Ognl 系列博文) SeEL 为 Spring 提供了丰富的想象空间,除了一些基本的表达式操作之外,还支持
541 0
【SpringBoot 基础系列】SpEL 语法扫盲与查询手册