Lookup在ETL中是一种常见的操作,比如产品键到代理键的转换,ID到name的转换等,都可以通过lookup来实现。Informatica中的lookup transformation组件除了能实现这种普通的转换,还可以用来更新缓慢变化维等,功能可谓强大。本文根据Informatcia8.1的联机文档,简单介绍一下informatica的lookup transformation。
中英文名词对应:
-
transformation:转换
-
connected:连接的
-
unconnected:未连接的
-
cache:缓存
一、lookup的功能
-
获得相关值:例如根据ID查找name
-
执行计算:例如得到计算公式得到一个结果
-
更新缓慢变化维:根据lookup的条件决定是插入还是更新记录等
二、rational lookups vs flat file lookups
lookup的源可以是关系数据库中的表,也可以是平文件。对于关系表,可以从source或者target中选择,也可以和平文件一样,通过import向导完成。
三、connected lookups vs unconnected lookups
informatica的转换可以分为连接的和非连接的两种。
所谓连接的转换,就是该转换是处于整个ETL的数据流中的,其输入ort是直接从另外一个转换,而非连接的,则独立于主数据流之外,通过其他转换中的表达式得到输入数据。
连接的lookup转换将处理数据流中的每一条数据,对于不符合lookup条件的,则输出预先指定的默认值,并且可以更新动态缓存。输出值是所有的output/lookup port。可以使用静态或者动态的缓存。
未连接的lookup转换只处理符合lookup条件的数据,并且只返回一个值。对于不符合条件的,输出NULL。未连接的lookup转换可以被多次调用。输出值在唯一的return port。只能使用静态缓存。
四、cache
informatica对于lookup使用了cache机制。服务器对于cache的处理流程大致如下:
开始处理第一条数据的时候,服务器会在内存中建立缓存,缓存的大小有lookup转换的一些属性决定。对于lookup条件,建立一个index cache,而对于输出值,则放在data cache中。
如果内存缓存大小不够,则会将溢出的缓存放到文件中。会话结束后,缓存会被清除,除非lookup缓存被设置为永久性的。
对于静态的cache,是不允许lookup转换对其进行更新的。而动态的cache,在lookup中如果发现不符合条件的值,可以对cache进行插入或者更新处理。
当然也可以选择不使用任何cache。
五、lookup transmation组件
lookup共有5个组件,也就是在lookup转换上点右键,选编辑后看到的5个标签页。实际上,基本上informatica所有的transformation都差不多是5个组件。
其中第一个transformation页签,第二个ports页签和第五个metadata extensions页签基本都差不多。只是lookup的port除了通常的I(input),O(output)外,还有L(lookup),R(return)。其中return port只能有一个,并且不能和其他转换直接连接,只能通过LKP:表达式获得。
第四个condition页签指定lookup的条件,实际上就是设置两个表的关联条件。
第三个properties是最重要的,可以在这里重写SQL来自定义lookup,设置符合条件返回多条记录时的处理方式,设置是否使用动态cache,以及cache的大小等等。
六、lookup tips
-
在lookup条件列上创建index
-
尽量使用=条件。如果有多个条件,尽量将=条件放到最前面
-
对于小表,尽量使用cache,并且设置cache大小,使得整个table可以cache到内存中
-
如果lookup的表和源表在同一个数据库中,并且cache不够大,那么尽量使用join而不是lookup
-
对于静态的lookup,尽量使用永久cache(persistent cache),这样多个session可以重用。
分享到:
相关推荐
Informatica Lookup Transformation组件 详解
Informatica Union Transformation组件 详解
Using Informatica Stored Procedure Transformation
Informatica Update Strategy Transformation组件 详解
informatica lookup 组件使用案例
Informatica Joiner Transformation组件 详解
Informatica Source Qualifier Transformation组件 详解
Informatica Dynamic Lookup Cache A LookUp cache does not change once built. But what if the underlying lookup table changes the data after the lookup cache is created? Is there a way so that the cache...
Informatica B2B Data Transformation 提供了一种全面的企业级解决方案来应对您的转换挑战。它可以从任何文件、文档或消息中提取任何格式、复杂度或大小的数据,并将这些数据转换成实用格式,在这方面,它拥有最出色...
Informatica Filter Transformation 组件 详解
Informatica Sorter Transformation组件 详解
Informatica Java Transformation
Informatica Router Transformation组件 详解
Informatica中的lookup transformation组件除了能实现这种普通的转换,还可以用来更新缓慢变化维等,功能可谓强大。本文根据Informatcia8.1的联机文档,简单介绍一下informatica的lookup transformation。中英文名词...
INFA技术超群_中文KB_00018_PWC_如何在Lookup组件中使用含子查询和Hint的SQL
Informatica Transformation Guide
超级详细的informatca power center的中文官方教程,包括: 安装和配置指南 数据归档指南 designer指南 powercenter connect for JMS 资料库指南 转换指南 转换语言参考 故障排除智囊 XML用户指南 ...
简单介绍了如何在Informatica中使用FTP创建数据源和目标。
Informatica中文帮助文档 Informatica中文帮助文档 Informatica中文帮助文档
包含了informatica 大多数transformation 的实例 可以通过xml 文件倒入到自己的folder 中