informatica 学习日记整理(转)

这篇博客详细介绍了Informatica客户端工具的使用,包括Repository Manager、Designer,以及各种转换如Source Qualifier、Update Strategy、Expression、Filter等的操作方法。通过实例展示了如何设计Mapping,包括数据抽取过程、参数和变量的使用,以及Mapping调试。此外,还讨论了Informatica在实际使用中遇到的问题,如连接问题、增量抽取和多行记录合并的解决方案,提供了问题解答和最佳实践。
摘要由CSDN通过智能技术生成

1. INFORMATICA CLIENT的使用

1.1 Repository Manager 的使用

1.1.1 创建Repository。

前提:

a. 在ODBC数据源管理器中新建一个数据源连接至你要创建Repository的数据库(例:jzjxdev)

b. 要在你要连接的数据库中新建一个用户(例:name: ETL password: ETL)

现在你可以创建一个Repository了。选择Repository – Create Repository,输入Repository Name(例:JZJX),Database Username(例:etl),Database Password(例:etl),ODBC Data Source(例:jzjxdev),Native Connect String(数据库所在ip例:141.20.52.108)

 

1.1.2 添加Repository。

通过这一步你可以添加别人已经建好的Repository。

选择Repository – Add Repository,输入Repository Name(例:JZJX),Username(例:etl),点击ok就可以看到名为JZJX的Repository在左边的浏览器中,但是此时还看不到它的内容,要看到它的内容或者对它进行操作必须先连接它。

 

1.1.3 添加Folder

选择Folder – Create,输入文件夹名称即可。

 

1.2 Designer 的使用

首先连接Repository,可以看到该Repository在Repository Manager中创建的文件夹。

 

1.2.1 Sources 

    Sources文件夹下的表是抽取的来源表。

    导入方法:

    选择Tools菜单下的Source Analyzer,然后选择Sources菜单下的Import from database,连接想要连接的数据库,连接上后选择你要抽取的表点击ok你所选择的表就会出现在Sources文件夹下。

    说明:上面的导入过程导入的只是表结构,你也可以自己创建来源表,只要你创建的表的结构跟真实存在的那张表的表结构一致就行。

 

1.2.2 Targets 

     Targets文件夹下的表是抽取的目标表,也就是抽取结果的存放表.

     导入方法: 选择Tools菜单下的Warehouse Designer,然后选择Targets菜单下的Import from database,连接想要连接的数据库,连接上后选择你要抽取的表点击ok你所选择的表就会出现在Targets文件夹下。

    说明:上面的导入过程导入的只是表结构,你也可以自己创建目标表,只要你创建的表的结构跟真实存在的那张表的表结构一致就行。

 

1.2.3 Mappings 的设计

        选择Tools菜单下的Mapping Designer才能进行Mapping的设计。

        每个Mapping都由来源表,transformation和目标表组成,描述数据抽取的过程。来源表和目标表可以从Sources和Targets文件夹拖拽到工作区,但是transformation一般来说是需要自己创建的。Mapping的设计关键是transformation的使用,它的使用关系到数据抽取的正确性和效率。下面说明各个transformation的作用和用法。

(Active:表示该transformation可以改变通过它的数据的行数;

Passive:表示该transformation不改变通过它的数据的行数;

Connected:表示该transformation要连接到数据流;

Unconnected:表示该transformation可以不连接到数据流)

 

1.2.3.1 Source Qualifier

作用:根据查询SQL文从关系表或平坦文件查出所要记录

用法:创建好Source Qualifier(下简称SQ) 后,将需要的用的字段从来源表拖拽到SQ ,双击SQ,对SQ的属性进行设置。

Select Distinct 属性:选中的话表明结果记录将去除重复值;

Tracing Level属性: 共有四级,表示log的复杂程度;

Number Of Sorted Ports属性: 排序的字段个数,值大于0时Sql Query中的sql 文将出现order by 从句;

Sql Filter属性: 属性值将出现在Sql Query属性值的where表达式中;

User Defined Join属性: 用户如果要定义外部连接可在此写(例: {REG_CUSTOMER LEFT OUTER JOIN PURCHASES on

(REG_CUSTOMER.CUST_ID = PURCHASES.CUST_ID AND PURCHASES.AMOUNT > 100.00) })

Sql Query属性:值是一条sql 文,session运行时会执行这条sql 文进行查询。

命名方式:SQ_Name

类型:Active/Connected

注意:SQ的输入只能来自来源表; User Defined Join属性值必须用{}括起来;在更改了SQ的属性值之后一定要点击Sql Query属性的

generate sql按钮重新生成sql文。

 

1.2.3.2 Update Strategy

作用:决定该行进行插入,删除,更新,忽略中的哪一种操作

用法:创建好Update Strategy(下简称US)后,将需要的用的字段从transformation拖拽到US ,双击US,对US的属性进行设置。US的设

置关键是Update Strategy Expression属性的设置,这个表达式使用IIF 或DECODE 函数对记录的每一行进行判断,为每一行赋予

DD_INSERT,DD_UPDATE,DD_DELETE,DD_REJECT(这四个是常量,值分别为0,1,2,3)中任意一个值,表明该行在数据库中将进行

何种操作。

命名方式:UPD_Name

类型:Active/Connected

注意:mapping中有US时,mapping对应的session的在配置属性时必须把Treat rows属性设置为Data Driven,否则US将不起作用。

 

1.2.3.3 Expression

作用:计算一个值

用法:创建好expression_r(下简称EXP)后,将需要的用的字段从来源表拖拽到EXP,双击EXP,

     新增输出端口,编辑该端口的表达式。

命名方式:EXP_Name

类型:Passive/Connected

注意:要进行列运算一般用这个transformation; 此种transformation可以使用本地变量

 

1.2.3.4 Stored Procedure

作用:调用一个存储过程

用法:创建Stored Procedure(下简称SP)的时候连接数据库选择必要的存储过程。SP有连接和不连接到数据流两种用法。

连接到数据流方式跟一般的transformation类似,通过拖拽端口来实现数据流。

不连接到数据流分表达式调用和Pre-/Post Session两种方式。表达式调用方式中SP被Mapping中另一个transformation 中的表达式

调用。Pre-/Post Session方式就是在Session的属性中配置SP的运行时间,Source Pre-load(Session从源表查询数据之前),Source

Post-load(Session从源表查询数据之后),Target Pre-load(Session将数据插入目标表之前),Target Post-load(Session将

数据插入目标表之后)

命名方式:SP_Name

类型:Passive/Connected or Unconnected

注意:

 

1.2.3.5 Sequence Generator

作用:产生主键

用法:创建好Sequence Generator(下简称SEQ)后,双击SEQ,对SEQ的属性进行设置。Start Value属性是开始值,此属性只在选择了

Cycle选项才有效;Increment By 属性值是每次增加的值;End Value属性值是结束值;Current Value属性值是当前开始值;Cycle选

项被选择的话NEXTVAL的值达到End Value值之后会重新从Start Value开始;Reset选项被选择的话,服务器会为每个使用了该SEQ的

session的NEXTVAL值都从Current Value开始。

命名方式:SEQ_Name

类型:Passive/Connected

注意:这是一个只有两个输出端口没有输入端口的transformation.;

      如果该SEQ时可重复使用的话,不能选择Reset选项。

 

1.2.3.6 Aggregator

作用:执行分组聚合运算

用法:创建好Aggregator(下简称AGG)后,将需要的用的字段从其他transformation拖拽到AGG ,双击AGG,在端口tab中每个端口有

group by 选项。钩上想要分组的列,新增端口,编写聚合表达式实现分组聚合运算。

命名方式:AGG_Name

类型:Active/Connected

注意:可使用本地变量

 

1.2.3.7 Filter

作用:过滤记录

用法:创建好Filter(下简称FIL)后,将需要的用的字段从transformation拖拽到FIL ,双击FIL,对FIL的属性进行设置。FIL的配置主

要是对Filter Condition的配置,Filter Condition 写入类似where条件的表达式即可。

命名方式:FIL_Name

类型:Active/Connected

注意:

 

1.2.3.8 Lookup

作用:查询值

用法:创建Lookup(下简称KP)的时候选择要查询的表。和Stored Procedure一样SP有连接和不连接到数据流两种用法。

连接到数据流方式将要关联查询的字段从其他的transformation拖拽过来,然后双击LKP进行属性的配置。Lookup Policy On

Multiple Match属性表明当查询到多个行时采取取第一行,取第二行,报错中哪个策略.Lookup Condition 属性值是查询的条件。

Lookup Sql Override属性值是查询执行的Sql文,我们可以在里面直接写Sql。Lookup Caching Enabled属性表明是否使用缓存,此项

一般选择为好,有利提高效率。Loopup Cache Persistent属性表明是否使用永久的缓存。

命名方式:LKP_Name

类型:Passive/Connected or Unconnected

注意:如果Lookup表的类型是来源表的话,请尽量使用Joiner;

一个已连接的LKP不能再被其他transformation的表达式调用;

如果查询表在session运行过程中不会改变,使用Loopup Cache Persistent属性可提高性能;

尽量不要在Lookup Sql Override中书写order by子句,因为cached LKP默认有order by ;

 

1.2.3.9 Joiner

作用:连接查询来自不同数据库的表或平坦文件

用法:创建好Joiner(下简称JNR)后,将需要的用的字段从transformation拖拽到JNR ,双击JNR,对JNR的属性进行设置。用于连接的

两个表一个称为detail表,一个称为master表。JNR属性中可配置Join Typ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值