powercenter学习总结doc.docx

上传人:b****8 文档编号:11075489 上传时间:2023-02-24 格式:DOCX 页数:11 大小:28.40KB
下载 相关 举报
powercenter学习总结doc.docx_第1页
第1页 / 共11页
powercenter学习总结doc.docx_第2页
第2页 / 共11页
powercenter学习总结doc.docx_第3页
第3页 / 共11页
powercenter学习总结doc.docx_第4页
第4页 / 共11页
powercenter学习总结doc.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

powercenter学习总结doc.docx

《powercenter学习总结doc.docx》由会员分享,可在线阅读,更多相关《powercenter学习总结doc.docx(11页珍藏版)》请在冰豆网上搜索。

powercenter学习总结doc.docx

powercenter学习总结doc

powercenter学习总结

各Transformation的功能说明1.SourceQualifier(数据源编辑,Relational)1.SourceQualifier有下列用途A.连接同源的数据集;B.过滤源数据;C.指定连接条件(等连,非等连,like)和类型(内连,外连);D.指定排序栏位(当Mapping中用到Aggregator或者Joiner时,排序可以改进性能);E.Distinct;F.OverrideSelect;2.SourceQualifier执行从数据库数据类型到Powercenter数据类型间的转换;3.当一个Mapping中有多个SourceQualifier连到多个Target时可用TargetLoadOrder指定装载顺序;4.在SourceQualifier中的多个地方可以使用参数或变量,传入SQL语句用的是字符串格式,所以大部分时候都需要用引号;5.SourceQualifier只为连出的Port产生SQL语句,需要注意的是,OverrideSQL是和连出线的Port顺序相关的,而且,其它属性如Join,Filter,SortedPorts,Distinct会失效;6.这些属性都可以在Session属性中被Override覆盖。

7.一切检索的内容都是以SQLQuery最高优先级,如果没有sqlquery就找UserJoinDefine和filter,如果有SQLQuery那么SQ拉出的端口必须与SQLQuery的Select个数一样多,sqlquery多表时,select到的field的table的Source是一定需带上的,当需要多个schema作为源的话,则一定需要sqlquerry8.PreSQL和PostSQL在seesion执行前或者结束时会触发。

比如可以把session执行的时间写入到某些地方,获取执行电脑的ip地址等用处.2.UpdateStrategy1.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文件;3.Expression1.用来执行单行计算,在计算表达式中,可以使用输入端口,输入/输出端口,可以使用函数以及非连接的Lookup,也可以使用变量端口;2.数据来源只能一个4.Lookup1.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,下面情形下适于使用OverrideSQLA.增加一个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.相等条件可以匹配空值NULLNULL;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.而且NullNull14.IgnoreinComparison可以不去比较的栏位但是至少要有一个,要不LookUp会失败,如果适当使用可以提高性能。

忽略比较,当这个值之外所有比较值都相同则不更新Cache,,NewLookUpRow0当其它比较值还有不相同时则更新Cache.NewLookUpRow,1or215.OutputOldValueOnUpdate当更新的时候不会更新新值到Cache,全部以Cache里面的值输出,16.更多LKP属性可见5.Aggregator1.Aggregator可用于聚合统计,和SQL语句不同的是,可以针对不同的计算指定不同的条件,并可输出非GroupBy的栏位;2.用于GroupBy的端口可以是输入的,输入输出的,输出的或者变量端口,用到的输出及变量端口中不能含有统计函数;3.统计端口可以包含统计函数(共有15个),可以进行两层嵌套,但要求所有的统计端口都进行嵌套;4.对于那些即非GroupBy又非统计的端口,返回最后一次收到的那一行;5.SortedInput属性表示输入的数据已经按GroupBy端口的要求排好了顺,这样能提高性能,输入部分数据就能有部分结果,源和目标的组件能同时工作,在没有选这个属性的情况下,需要等到所有数据输入完成才能开始有统计结果;注意当选择SortedInput属性,但是输入数据未排序时。

Session将failed。

当aggregateexpression包含嵌套aggregatefunctions或者采用incrementalaggregation或者Treatsourcerowsas是datadriven时,不能用SortedInput属性。

6.在上面属性未选的情况下,需要用到索引CACHE和数据CACHE6.Filter1.Filter用来过滤数据,被过滤掉的数据不会写入SessionLog,也不会写入RejectFile;2.将Filter尽可能地靠近Source可以提升性能;3.Filter只能接受来自单个Transformation的数据流;4.Filter只有一种输入/输出端口,默认值无效;5.只有FilterCondition评估为真(或者非零数值)的记录才能通过;6.如果有可能,用SourceQualifier代替Filter可以取得更好的性能。

7.Joiner1.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.在有可能的情况下,尽可能在数据库完成连接处理;8.Normalizer1.在关系型数据库处理中,Normalizer用来从一行变成多行;如f1f2f3一行三个字段处理后可变成f1f2,f1f3两行两字段,如下图2.GeneratedKey,自动产生不能删除的端口,命名为GK_XXX,由这个端口产生一个序列号值,在需要时可以作为主键,运行成功后会在知识库中保存下一个值,可以在Mapping中看到下一个值,可以修改这个值;3.GeneratedColumnID,自动产生不能删除的端口,命名为GCID_,这个端口产生一个序号指名当前输出来自多个输入中的哪一个;4.Reset和Restart属性会话结束时重置GK值到上次的值或者到1;9.Router1.Router和Filter很相似,Router可以用一或多个Filter来取代,不同的是用Router来生成多个组时输入数据只需处理一次,所以效率更高;2.Router由一个输入组,一到多个用户定义的输出组和一个默认组组成,每一个用户定义的输出组含一个测试条件,满足条件的输入数据会进入相应的用户定义组,不满足所有用户定义条件的数据会进入默认组;3.输入组和输出组的端口类型和名称相同;4.Powercenter根椐连接的用户定义输出组的顺序来进行评估,如果默认组没有连接,则不评估那些没有连接的用户定义输出组;5.如果某一行符合多个输出组的评估条件,则出现在多个组的输出数据流中;6.可以将一个输出组的端口连到多个Transformation或者Target上,但不能将多个输出组的端口连到一个Transformation或者Target上;10.Sequence1.Sequence用来产生序列号用以作为主键栏位,可以重用;2.只有两个输出端口Nextval和Currval;3.通过配置StartValue,EndValue,CurrentValue和Cycle属性,可以让产生的Nextval在一个指定的范围内循环;4.可以将Nextval端口连到多个Target上,这时是阻塞式的产生序列号的,可以保证多个Target得到不同的序列号,如果想要得到相同的序列号,可以将Nextval端口连到Target之前的一个共有的Transformation上;5.如果只连出Currval,得到的是一个常量,并且一次阻塞只能获得一个值,所以为性能考量,一般都不连出这个端口,如果Nextval同时有连出,这时CurrvalNextvalIncrementBy;6.在没有配置Cycle属性时,如果序列号达到了EndValue,会话会失败;7.不重用的Sequence有Reset属性,启用以后,在每个会话结束时会将CurrentValue置为会话开始时的值,这个值是它产生的第一个值;8.当Sequence配置成重用时,应该给NumberofCachedValues一个大于零的缓存值,这个值是主要为保证不出现重复数据而设置的.比如当设置为100,那么一个线程在从1开始在跑,则另外一个线程会从101开始.每次跑完都要补足100整数.11.Sorter1.Sorter用来排序数据,可以指定多个排序端口,每个端口可以指定升降序,字符串比较时可以忽略大小写,还可以用Distinct选项来消除重复所有端口,包括没有指定排序的端口;2.排序时会用到输入数据两倍大小或者更大的空间,默认的排序Cache是8M,可选的排序Cache范围是1M到4G,排序Cache不够时,服务器会将数据临时存储在排序目录,如果指定的排序Cache无法满足,会话会失败,可以用文档中提到公式计算Cache;3.当配置使用Distinct属性时,所有的端口都会用于排序;4.默认情况下,NULL大于任何值,可以配置NULL值小于任何值;12.Union1.Union可以将多个数据流合并成一个数据流,功能类似于SQL中的UNIONALL;2.Union可以有多个输入组,只有一个输出组,输入组和输出组有一一对应的端口;3.Ports页不可编辑,只能编辑Groups和GroupTabs页;13.Rank1.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.14.Procedure1.存取过程一般用于处理较为复杂的数据,分为连接型与非连接型,连接型一般用于取得返回值,非连接型一般用于在session执行前后执行一些动作,比如检查数据库空间之类的,但是可以完成所有连接型的功能,可用于OutputPort作为expression.2.如果是只有单个返回参数outparameter则使用方法类似sp.sp_xxxinID,proc_result,proc_result为PM保留变量.如果有多个返回参数则需要定义本地变量来接收,比如sp.sp_xxxinID,var1,proc_result,参数位置与类型必须与sp里面定义的一致.3.同个Procedure不得同时作为连接型与非连接型.4.可以使用多层嵌套存取过程.15.TransactionControl1.功能用于控制事务的Commit,Rollback,Continues.,比如一年的销售情况,可以按照月份分类,每个月作为一个Transaction来控制,这样就可以对单个月进行排序或者提交什么的.2.简介在PropertiesTab页,主要属性为TransacionControlCondition,在里面写控制事务的表达式,表达式的返回的值只能是以下值.TC_CONTINUE_TRANSACTIONNotransactionchangeswillbeperformedforthisrow.ThisisthedefaultTCexpression.TC_COMMIT_BEFORECommitandBeginanewtransactionbeforethisrowwrittentothetarget.TC_COMMIT_AFTERWritethisrowtothetargetandCOMMITthetransactionandbeginanewtransaction.TC_ROLLBACK_BEFORERollbackthecurrenttransaction.Beginanewtransactionandwriterowtotarget.TC_ROLLBACK_AFTERwritetherowtothetargetandrollbackthetransaction.Beginanewtransaction.注意当表达式的返回的值为TC_ROLLBACK_BEFORE或TC_ROLLBACK_AFTER时需要设置session的TreatsourcerowsasDatadriven,要不WorkFlow会为failed.16.SQL1.实现SQL语句功能.例如创建表,新增,修改,删除等.可以批量执行文件中的SQL以完成较复杂需求.一使用简介SQL分为两种模式1.ScriptModea该模式可以根据输入端口的内容一般为路径,找到相应的文件进行执行.b输入端口ScriptName.c输出端口ScriptResult,ScriptError.前者为脚本执行结果,一般为Passed和Failed.后者为Failed时,数据库返回的错误原因.dRun-Time时候没有接收参数的功能e当调用的代码再Call其它代码时候不能使用NestSQL功能2.QueryModeaSQL代码可以为传入端口或者在内部写好.b分静态SQL与动态的SQLc静态的绑定参数.方式为vard动态的可以有FullQuery与部分Query,前者相当于pl/sql中的Executexxx.后者相当于动态替换部分内容,比如Table之类的.方式为var.e可以返回dml作用的行数.NumRowsAffectedoutputport系统默认关闭这个端口,暂时不知如何开启,当没有insert,update,delete则返回0.f当output端口多于Selectclause时,多出的端口为Null或者默认值,少于则出现行错误写在log中,wf不会出现错误.g可以一个返回多行.hScript结尾不要加;3.相同之处a不能使用PL/SQL,T-SQL等DBMS专用语言.b无CodePage指定则使用服务器c不支持目标表有Triggerd支持输入输出功能,输出端口一般在输入端口自动加后缀_output4.不同之处aSM支持用分号分割多个语句,可以同行执行,QM的传入端口模式下则不支持.,如果是直接在TFQuery写语句就可以.bQM支持绑定变量,SM不支持。

cQM支持同行返回结果集,SM只能返回一行.5.关于数据库连接.两种模式静态连接与动态连接.静态连接,在WF里面指定Relational.动态连接分逻辑连接Logical与全连接FullConnectiona逻辑连接可以由输入端口LogicalConnectionObject调用Relationalb全连接所有连接参数有输入端口决定,安全性较差.二PropertiesTab属性1.RuntimeLocation相对路径存放DLL等链接库,空白则抓系统变量.2.IsPartitionable是否分割.aNoTF不能被分割,一般用于处理所有输入端口,比如清除.bLocally当TF不同的分区需要在内存中共享的时候使用,可以使用分区,只能在一个Node中执行.cAcrossGrid可以分区,服务器可以把不同的区分给不同的Node去执行.3.UpdateStrategyTransformationQuerymode下可以使用,用于更新策略.4.TransformationScope作用范围如果有用TranscationControl则选择Transact,如果使用ScriptMode则选择Row,如果使用QueryMode则选择AllInput.5.GenerateTransaction当QueryMode下做Commit时选用,用于产生TransactionRow.6.RequiresSingleThreadPerPartition是否让一个过程的每

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1