Informatica lookup 组件的用法

本文介绍Informatica中的lookup transformation,一种常见的ETL操作。可用于产品键到代理键转换、ID到名称转换等。还介绍了lookup的功能、类型(如连接与非连接lookup)、缓存机制及使用技巧。

Informatica中的lookup transformation

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 9.6 实战课程,将从数据仓库体系架构介绍,服务器搭建配置,实例组件操作,丰富的案例,及项目实战开发过程 来讲述ETL工具Informatica的实际应用,真正完成数据仓库全流程开发应用,ODS层,EDW层,DM层,学完该课程具备ETL软件开发工程师能力水平,能独立完成项目开发工作,从入门到高级项目开发应用,每个实例都载图,课件,教程,数据等,能达到中高级ETL开发能力,本课程的学习要求,一定跟着实例动手实战,操作才能掌握实例的开发步骤,及开发注意事项。每个组件都用具体案例讲解,保证学以致用。掌握ETL的开发技能,搭建数据仓库体系架构。应对各环境操作。具体数据实操与应用。 你将收获:ETL软件开发工程师能力与水平数据仓库体系架构案例综合应用实战ETL实战项目开发数据采集与数据处理数据清洗与数据仓库指标统计学会使用Informatica完成项目开发掌握ETL开发流程掌握数据质量管理 适用人群 数据仓库初学者 数据仓库开发工程师 数据库开发工程师 BI开发工程师 数据可视化工程师大数据开发与应用 数据仓库管理 数据管理 数据分析师 业务数据分析 零基础入门ETL ETL大数据处理 数据仓库体系架构图: 课程大纲:01_Informatica9.6课程导学02_数据仓库体系介绍03_Oracle_安装04_Oracle_配置.wmv05_PLSQL工具汉化破解06_Informatica9.6安装.wmv07_Informatica9.6服务器配置.wmv08_客户端的安装配置连接.wmv09_客户端工具介绍10_源数据介绍11_入门实例EMP_0112_入门实例EMP_0213_入门实例DEPT表14_表达式Fx组件实例115_表达式Fx组件实例216_聚合组件实例17_查找Lookup组件实例18_过滤Filter组件实例19_Informatica9.6 排序sort组件实例详解20_Informatica9.6 分发器Router组件实例21_Informatica9.6 sql连接查询复习22_Informatica9.6 连接查询同构SQ23_Informatica9.6 连接查询异构JOIN24_Informatica9.6 等级函数Rank实例25_Informatica9.6 数据合并Union组件实例26_Informatica9.6 存储过程Px组件实例27_1行转列案例sql28_2行转列案例ETL过程29_工资大于该职位下平均工资案例30_增量抽取案例31_缓慢变化维案例32_对文件数据的读取写入33_项目1薪酬统计项目介绍34_Informatica 项目1薪酬统计项目接口入库ODS35_Informatica 项目1薪酬统计项目EDW层明细表临时表1sql36_Informatica 项目1薪酬统计项目EDW层明细表临时表2ETL37_Informatica 项目1薪酬统计EDW层明细表138_Informatica 项目1薪酬统计EDW层明细表239_Informatica 项目1薪酬统计EDW层明细表340_Informatica 项目1薪酬统计DM层月考勤统计报表41_Informatica 项目1开发DM层统计报表142_Informatica 项目1开发DM层统计报表243_Informatica 项目1开发DM层统计报表344_Informatica 项目1开发DM层薪资报表145_Informatica 项目1开发DM层薪资报表246_Informatica 项目1开发DM层薪资报表347_Informatica 项目2计费系统项目介绍48_Informatica 项目2计算系统项目ODS层49_Informatica 项目2计费系统EDW层150_Informatica 项目2计费系统EDW层251_Informatica 项目2计费系统EDW层352_Informatica 项目2计费系统DM层 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值