当前位置:
文档之家› Informatica _组件使用介绍及优化
Informatica _组件使用介绍及优化
CURRVAL 是 NEXTVAL 加上“增量”值。当 NEXTVAL 端口已连接下游转换时,您通 常只需要连接 CURRVAL 端口。当行输入连接到 CURRVAL 端口的转换时, PowerCenterServer 会传递最后创建的 NEXTVAL 值加 1。
16
常用属性介绍: Start Value 属性:已生成序列的开始值。如果勾选“Cycle”,当序列达到结束值时循环 回此值。 Increment By 属性:增量值。默认值为 1。 End Value 属性:结束值。如果序列值达到此值,但未勾选“Cycle”, 则Session 将失 败。 Current Value 属性:序列的当前值。 Cycle 属性:是否循环。(勾选后会按顺序生成序列,重新执行序列不会重复,未勾选 时,重新执行序列会产生重复值) Number of Cached Values 属性:一次高速缓存的序列值数。当多个会话使用相同的可 再 用序列生成器时,使用此选项可以确保每个会话收到唯一的值。 Reset 属性:如果勾选,则每个Session 会初始当前值。
10
Union组件
11
作用: 合并多个数据源到一个结果集。与执行“UNION ALL”SQL 语句结果相似,联合转换不会 删除重复行。
使用规则:
可以创建多个输入组,但只能创建一个输出组。所有输入组和输出组均必须具有匹配的 端口。所有组中的精度、数据类型和标度必须相同。 联合转换不会删除重复行。要删除重复行,您必须添加另一个转换,例如Router 或 Filter转换。 不能使用以Union 组件作为上游的序列生成器或更新策略转换。 联合转换不会生成事务 。选项卡设置: “Groups”选项卡。您可以创建和删除输入组。在“Ports”选项卡上能显示创建了的组。
本组件一次只能连接两个源,如果有多个源就使用多个该种组件,直 Generator组件
15
作用:生成序列数值。可以使用它创建唯一的主键值、替代缺失的主键或在一定有序数字 范围内循环。 Sequence Generator 控件提供两个输出端口:NEXTVAL 和 CURRVAL: NEXTVAL 连接 NEXTVAL 至多个转换,从而为每个转换中的每行生成唯一的值。通过将 NEXTVAL端口连接至转换或目标以生成序列号。连接 NEXTVAL 端口至下游转换,从 而生成基于当前值和增量属性的序列。 CURRVAL
23
常用属性: Lookup SQL Override: 只能在cache enable 的情况下才能用,另外不要输入ORDER BY 子句,即使输入INFORMATICA 也会产生ORDER BY 子句 Lookup Caching Enabled:如果选中,查询一次表,以后的记录都从缓冲中去查询; 如果不选,每条记录都从数据库中查询一次
“Group Ports”选项卡。您可以创建和删除输入组的端口。在“Ports”选项卡上能显示
创建了的端口。
12
Joiner组件
13
作用:连接查询 指定非重复值少的表作为Master表可以提升性能,默认情况下,第一个加入的数据源是 Detail; 只支持相等连接,当使用多个连接端口时,连接的顺序对性能有影响; 连接端口如果含有NULL值,连接不会成功; Joiner一次只能连接两个数据源,如果有多个数据源要进行连接,使用多个Joiner; Joiner可以连接来自同一个Source的数据流(自连),有两个方法:如果Joiner选择了 Sorted Input属性,可以用一个Source Instance来实现,否则就需要Source的两个 Instance; 注意:在Join Type中选择好你需要的类型。 如果你选择Normal Join 将会严格匹配记录。 如果你选择Master Outer Join 会把Detail Source表中的记录全部选出来。 如果你选择Detail Outer Join 会把Master Source表中的记录全部选出来
Passive组件流入流出组件的行数不发生变化 例如:Expression、Lookup组件
Active组件流入流出组件的行数会发生变化
例如:Aggregator、Router、Filter组件
3
Source Qualifier组件
流入组件的数 据项 在日志中显示 详细级别
Source Qualifier组件中的过 滤条件设置
7
Aggregator组件
8
作用:对多组记录执行聚合计算。 用法:将需要聚合运行的字段拖曳到Aggregator 组件,双击组件,在 Port 选项卡中,勾选要分组的列,新增输出端口,编辑聚合运算表达 式。与sort 组件联合使用可提高性能。 对于聚合组件来讲,肯定是要有至少一个分组的字段,对此字段勾选【 GroupBy】选项,对于要进行聚合计算的数值型表达式,选中【 Expression】,点击向下的箭头,会出现标记表达式的对话框,在这 个对话框中可以进行sum、avg、max、min等聚合运算。 可以使用该组件可以进行汇总计算,如平均值和求和等。Aggregator transformation和Expression transformation不一样,在 Aggregator transformation中执行计算是要分组的。Expression transformation只允许你执行计算在row-by-row的基础上的。当你使 用transformation建立汇总表达式的时候,使用条件语句来过滤行, 比SQL语句要灵活的多。
4
作用: 如果添加了关系数据库中的表或平文件作为Source,需要连接Source Qualifier 组件,才 能从源表中读取出数据(非XML)。Source Qualifier代表了PowerCenter Server在运行会 话时读取的数据行。 常用属性: Sql Query 属性:编辑SQL 脚本,该属性将会覆盖默认查询,即会覆盖以下几个属性。 User Defined Join 属性:定义内连接或外连接 Source Filter 属性:即添加WHERE 条件子句至默认的SQL 查询,实现过滤数据。 Number Of Sorted Ports 属性:排序的字段个数,大于0 时即添加order by 子句至默认 的SQL 查询。 Tracing Level 属性:共有四级,表示log 的复杂程度。 Select Distinct 属性:选中表示去除重复记录,即添加SELECT DISTINCT 语句至默认的 SQL 查询。 Pre SQL 属性:读取源之前在源数据库上运行的会话前SQL 命令。 Post SQL 属性:写入目标之后在源数据库上运行的会话后SQL 命令。
24
在实际的开发过程中,对于Lookup transformation中Cache属性的设置,可以 总结出这么几条经验: 对于表记录较少的表,总是推荐使用Cache.对于记录条数达到数百万条的大表 而言,使用Cache并不总是正确的方式,因为创建Cache文件所付出
的代价可能要超过你从Cache文件中快速返回结果所获 得的收益。只有在大表不能建立索引的情况下我们才对 大表使用Cache.一对于大表而言,如果你能够使用索引,就不必建 立Cache
21
Lookup组件
22
作用:从关系型的表、视图或者同义词中根据lookup 条件查询lookup port,返 回查询结果,供mapping 中的其他控件使用或者插入到目标表。
包括已连接和未连接查找两种方式。从数据库表中,按条件查找相关的值并 且传送给其他的对象。
Connected:直接从其他控件获得输入信息;可以使用静态或者动态的Cache;只缓 冲mapping 中用到的port;每条记录可以返回多个column,并且能够插入到动态Cache 中;查询条件无匹配时,返回所有输出port 的默认值,如果使用动态Cache, Informatica Server把记录毫无改变的保留在Cache 中;支持用户定义的默认值;返 回多个输出值到另一个控件中 Unconnected:间接的从其他控件的:LKP 表达式的结果来获得输入信息;只能使用 静态Cache;缓冲所有的port;每条记录只能返回一列;查询条件无匹配时,返回NULL; 不支持用户定义的默认值;将返回值输出到定义:LKP 表达式的控件中
1
Informatica_组件使用及优化
2
PowerCenter Designer组件研究
组件分为Passive组件和Active组件,Passive组件流入流出组 件的行数不会发生变化,expression组件就属于Passive组件; Active组件流入流出组件的行数会发生变化,例如aggre组件 。
9
例如:你使用如下的表达式来计算出所有commissions大于QUOTA的 员工总的commissions:
SUM( COMMISSION, COMMISSION > QUOTA ) 你也可以使用非汇总函数在汇总表达式中。例如下面的表达式: IIF( MAX( QUANTITY ) > 0, MAX( QUANTITY ), 0)) 您可以输入任何有效的转换表达式。例如,以下表达式将计算所有收入超过 50,000 美元 的员工的平均薪水: SUM(SALARY, SALARY > 50000 )
Lookup Policy on Multiple Match:确定在uncached 和static cache 的情况下如何处
理查询得到的多条记录,可以取得第一条、最后一条或者是报错;在dynamic cached 的情况下,如果查询得到多条记录,会报错 Dynamic Lookup Cache:当把经过的记录插入到目标表的同时,插入或者更新cache 里面的记录
17
Rank组件
18
作用:排序记录,只输出最顶层或最底层的一定记录数。 用法:在Port 选项卡中,在“R”列选择要排序的列。类似于 Aggregator 组件,Rank 组件允许您对信息分组