Informatica组件应用详解.docx
- 文档编号:26583770
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:17
- 大小:328.78KB
Informatica组件应用详解.docx
《Informatica组件应用详解.docx》由会员分享,可在线阅读,更多相关《Informatica组件应用详解.docx(17页珍藏版)》请在冰豆网上搜索。
Informatica组件应用详解
Informatica组件介绍
一、
update的功能
Update主要是与lookup相组合的搭档。
根据lookup来与源表数据相对比,来跟新数据数据抽取。
它起到一个插入和拒绝的作用。
1.Powercenter的更新策略包括两个方面:
A.在Mapping中:
用UpdateStrategyTransformation标识行为Insert,Update,Delete或者Reject;
B.在Session中:
配置Treatsourcerowas属性(Insert,Update,Delete或者Datadriven),配置Target的属性(Insert,Update[asUpdate](只是更新)|[asInsert](把更新视为新增)|[elseInsert](先更新,更新不到则新增),Delete,Truncatetargettableoption);
2.在UpdateStrategyExpression中可以输入常量(DD_INSERT,DD_UPDATE,DD_DELETE,DD_REJECT)或者数字值(0,1,2,3),其它数字值被解析为0,可以用IIF或者DECODE函数构建逻辑表达式来区别每一行的更新策略;
3.ForwardRejectedRows:
勾选时被Rejected的行会存入对应Target配置的Reject文件中去,不选时,可能会写入SessionLog中去,根椐当前Transformation的TracingLevel的属性来决定;如果在会话属性中配置了出错行日志属性,则不会生成Reject文件;
二、
Expression的功能
表达式编辑器可以使用不同的颜色来标记表达式的语法,以便很好的阅读。
如果你有最新的RichEdit,riched20.dll,安装到了系统,表达式显示表达式函数为兰色,注释式灰色,引用的字符串式绿色。
你可以调整编辑器的大小。
用拖拽边的方法来扩大对话框。
Designer保存这个新的大小像客户机设置一样。
1.用来执行单行计算,在计算表达式中,可以使用输入端口,输入/输出端口,可以使用函数以及非连接的Lookup,也可以使用变量端口;
2.数据来源只能一个
三、
Filter的功能
功能:
根据条件过滤到不符合条件的行。
你可以使用SALARY>30000来过滤掉SALARY小于等于3000的行。
过滤条件:
过滤条件就是可以返回真或假的表达式。
可以是一表达式,也可以是几个表达式,但表达式之间是与关系。
如果你在条件中输入的是SALARY>30000和SALARY<100000,他们就等于SALARY>30000ANDSALARY<100000。
1.Filter用来过滤数据,被过滤掉的数据不会写入SessionLog,也不会写入RejectFile;
2.将Filter尽可能地靠近Source可以提升性能;
3.Filter只能接受来自单个Transformation的数据流;
4.Filter只有一种输入/输出端口,默认值无效;
5.只有FilterCondition评估为真(或者非零数值)的记录才能通过;
6.如果有可能,用SourceQualifier代替Filter可以取得更好的性能。
四、
Aggregator的功能
聚合转换:
可用于聚合统计,如求和、取平均值、返回特定行等等。
可以使用聚合转换对多组执行计算,而表达式转换只允许逐行进行转换。
聚合转换组件:
聚合表达式、分组依据端口、排序输入、聚合高速缓存
1.Aggregator可用于聚合统计,和SQL语句不同的是,可以针对不同的计算指定不同的条件,并可输出非GroupBy的栏位;
2.用于GroupBy的端口可以是输入的,输入输出的,输出的或者变量端口,用到的输出及变量端口中不能含有统计函数;
3.统计端口可以包含统计函数(共有15个),可以进行两层嵌套,但要求所有的统计端口都进行嵌套;
4.对于那些即非GroupBy又非统计的端口,返回最后一次收到的那一行;
5.SortedInput属性表示输入的数据已经按GroupBy端口的要求排好了顺,这样能提高性能,输入部分数据就能有部分结果,源和目标的组件能同时工作,在没有选这个属性的情况下,需要等到所有数据输入完成才能开始有统计结果;注意:
当选择SortedInput属性,但是输入数据未排序时。
Session将failed。
当aggregateexpression包含嵌套aggregatefunctions或者采用incrementalaggregation或者Treatsourcerowsas是datadriven时,不能用SortedInput属性。
6.在上面属性未选的情况下,需要用到索引CACHE和数据CACHE
五、
lookup的功能
获得一个关联的值。
例如:
源里包含employeeID,但你还需要employeename。
用于计算的植。
例如:
只是汇率或者个人所得税之类的固定数值,不是计算得出来的数据。
Updateslowlychangingdimensiontables。
主要是根据条件查出原表,若查出了,就把自己添加的标志位设为真,否则就设置为假。
1.Lookup根椐输入值从数据库或者平面文件中查找数据;
2.Lookup分为连接型和非连接型的:
A.连接型的可以传送多个返回值给其它的Transformation,非连接型的只能有一个返回端口,在表达式中用Lookup函数(:
LKP())来调用;
B.连接型的可以利用到默认值,当没有匹配记录时,非连接型的总是返回空;
3.Lookup可以配置成使用CACHE,对平面文件这项必选,InformaticaServer在条件栏位上建立索引CACHE,在其它栏位上建立数据CACHE,如果分配的CACHE空间不够就存放在CACHE文件中;
4.CACHE文件可以是临时的,也可以是固定化的;
5.当Lookup配置成动态时,对应的表是Target,如果输入行连接栏位在CACHE中没有找到匹配记录,就在CACHE中插入一行,如果找到了就更新CACHE或者不更新CACHE,取决于比较栏位是否匹配,给标志栏位NewLookupRow赋值0(Unchange),1(Insert),2(Update);
6.Lookup的端口除了I,O之外,还有L和R;
7.多匹配行处理策略:
返回第一行,返回最一行,报错;
8.在数据库Lookup使用CACHE的前提下可以使用OverrideSQL,下面情形下适于使用OverrideSQL:
A.增加一个Where子句;
B.指定不同于默认SQL的OrderBy子句,在带有OrderBy子句的OverrideSQL后加上--,目的是屏蔽掉系统自动产生的OrderBy子句;
(PowerCenter服务器是默认是按lookup的栏位来OrderBy的,如果你在Override里面想要覆盖它的OrderBy方式,一定必须在结尾输入’--‘注释符来覆盖,否则lookup会失败,而且在新的Orderby里面要有LookUpCondition包含的栏位,而且顺序需要一致)
C.Lookup表名或者栏位中包含保留字或者栏位名中含/时,用引号将保留字引起来;
(如果lookup栏位里面包含了db的保留字,那么需要在pm目录下建立一个含有那些保留字的reswords.txt的文件,pm会在保留字周围放置一些引用,来解决和服务器冲突的问题.)
D.需要在Lookup查询中使用参数或者变量时;
E.其它情况,比如从一个连接中返回结果或者要对返回作函数处理后的结果作为CACHE;
9.关于Lookup的条件匹配:
A.条件两边的端口必须匹配;
B.输入端口允许在条件中出现多次;
C.多个条件间的关系是AND;
D.相等条件可以匹配空值(NULL=NULL);
E.如果条件中有等于和不等于,将所有等于放在前面;
10.如果允许,可以在Lookup表的连接条件栏位上建立索引,以改进性能;
11.LookUp一定要有输入port,SQLOverrid不能覆盖condition的作用
12.DynamicLookUp一般用于查找目标表是否已经有Source传过来的记录,然后根据更新标志(flag)做处理.也就是把目标表的所有数据先用文件作为缓存存放起来,然后Source传过来的记录与缓存文件的数据比较并且由属性(insertelseupdate,updateelseinsert)决定是否更新缓存文件.
13.理解AssociatedPort的意义;
关联端口,当DynamicLookUpCache时,PM如何把inport的资料和cache里面的资料来对比和关联,然后产生新的cache和NewLookUpRow
就是需要用AssociatedPort来关联inport端口的资料或者Sequrence了。
Condition相关的Fields端口会被自动关联.只有有连线出去的port的比较才有意义.也就是说如果没有连线出去,两个值尽管不相等,NewLookUpRow还是为0.而且Null=Null
14.IgnoreinComparison
可以不去比较的栏位(但是至少要有一个,要不LookUp会失败),如果适当使用可以提高性能。
忽略比较,当这个值之外所有比较值都相同则不更新Cache,,NewLookUpRow=0
当其它比较值还有不相同时则更新Cache.NewLookUpRow=,1or2
15.OutputOldValueOnUpdate:
当更新的时候不会更新新值到Cache,全部以Cache里面的值输出,
16.更多LKP属性可见
六、
Sequence的功能
1.Sequence用来产生序列号用以作为主键栏位,可以重用;
2.只有两个输出端口:
Nextval和Currval;
3.通过配置StartValue,EndValue,CurrentValue和Cycle属性,可以让产生的Nextval在一个指定的范围内循环;
4.可以将Nextval端口连到多个Target上,这时是阻塞式的产生序列号的,可以保证多个Target得到不同的序列号,如果想要得到相同的序列号,可以将Nextval端口连到Target之前的一个共有的Transformation上;
5.如果只连出Currval,得到的是一个常量,并且一次阻塞只能获得一个值,所以为性能考量,一般都不连出这个端口,如果Nextval同时有连出,这时Currval=Nextval+IncrementBy;
6.在没有配置Cycle属性时,如果序列号达到了EndValue,会话会失败;
7.不重用的Sequence有Reset属性,启用以后,在每个会话结束时会将CurrentValue置为会话开始时的值,这个值是它产生的第一个值;
8.当Sequence配置成重用时,应该给NumberofCachedValues一个大于零的缓存值,这个值是主要为保证不出现重复数据而设置的.比如当设置为100,那么一个线程在从1开始在跑,则另外一个线程会从101开始.每次跑完都要补足100整数.
七、
Joiner的功能
你可以使用本组件连接两个不同源的关系表或者file系统。
当然你也可以连接来自同一个源的数据(一般使用SourceQualifierTransformation,在下面会介绍使用本组件连接来自同一个源的数据的情况)。
本组件一次只能连接两个源,如果有多个源就使用多个该种组件,直到你把所有你想连接的源都连接了为止。
影响连接结果的有,连接的条件,连接的类型和输入的源。
1.Joiner可以用来连接两个相关的不同来源的数据集;
2.至少需要指定一个匹配端口;
3.对两个来源有如下限制:
A.两个数据源要求是来自两个Pipeline或者一个Pipeline的两个分支;
B.任何一个Pipeline中都不能含有UpdateStragegy;
C.Sequence不能直接连到Joiner;
4.Joiner的主要属性如下:
A.比较时大小写敏感;
B.缓存目录,数据缓存的大小,索引缓存的大小;
C.连接类型(Normal,MasterOuter,DetailOuter,FullOuter);
D.输入已排序:
输入数据已按连接端口的顺序排好序,这可以减少磁盘输入及输出,提高了Joiner的性能;
5.指定非重复值少的表作为Master表可以提升性能,默认情况下,第一个加入的数据源是Detail;
6.只支持相等连接,当使用多个连接端口时,连接的顺序对性能有影响;
7.连接端口如果含有NULL值,连接不会成功;
8.Joiner一次只能连接两个数据源,如果有多个数据源要进行连接,使用多个Joiner;
9.Joiner可以连接来自同一个Source的数据流(自连),有两个方法:
如果Joiner选择了SortedInput属性,可以用一个SourceInstance来实现,否则就需要Source的两个Instance;
10.Joiner的IndexCache(连接端口)以及DataCache(其它端口)是针对Master表建立的;
11.在不同的配置条件下,Joiner有不同的阻塞策略,这样可以用更少的Cache,对性能有不同的影响;
12.在有可能的情况下,尽可能在数据库完成连接处理;
八、
Rank的功能
1.Rank可以用来返回根椐某个端口排序的最大或者最小的N条记录,并且可以指定分组;可以用于得到去除的重复资料(比如5条相同数据,只取了一条,那么另外四条可以由这个加上Sqerence组合得到其它四条.).
2.Rank中可以使用分组,但并不能使用分组函数,可以指定多个分组端口,但用于排序的Rank端口不可用于分组;
3.Rank端口有五种属性:
I(输入),O(输出),V(变量),R(排序),G(分组),至少需要有一个输入端口和一个输出端口,排序端口有且只有一个,而且必须输出,排序端口和变量端口不能用于分组;
4.输入端口的数据只能来自一个Transformation;
5.有一个默认的Rankindex端口,表示输出行在排序中的位置;
6.如果是字符排序,可以选择大小敏感或者大小写不敏感;
7.TopX中的X数量表示前几条数据(Rankindex的值就是顺序),当Rankindex一样时,取其中部分,比如Top1,有两条记录的Rankindex为1,则取其中一条.其受cache限制,可按需调整cache.
九、
Sorter的功能
你可以使用该组件对数据进行排序。
1.Sorter用来排序数据,可以指定多个排序端口,每个端口可以指定升降序,字符串比较时可以忽略大小写,还可以用Distinct选项来消除重复(所有端口,包括没有指定排序的端口);
2.排序时会用到输入数据两倍大小或者更大的空间,默认的排序Cache是8M,可选的排序Cache范围是1M到4G,排序Cache不够时,服务器会将数据临时存储在排序目录,如果指定的排序Cache无法满足,会话会失败,可以用文档中提到公式计算Cache;
3.当配置使用 Distinct属性时,所有的端口都会用于排序;
4.默认情况下,NULL大于任何值,可以配置NULL值小于任何值;
十、
Union的功能
功能:
把不同种类或者同种类的源合并到一起。
相当于SQL语句的UNIONALL语句。
不会去除重复的行
1.Union可以将多个数据流合并成一个数据流,功能类似于SQL中的UNIONALL;
2.Union可以有多个输入组,只有一个输出组,输入组和输出组有一一对应的端口;
3.Ports页不可编辑,只能编辑Groups和GroupTabs页;
十一、Lookupdate的应用
十二、本期同期值的应用
十三、Union的应用
十四、Aggregator的应用
十五、Joiner的应用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Informatica 组件 应用 详解