您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 优_informatica 学习日记整理
informatica学习日记整理1.INFORMATICACLIENT的使用1.1RepositoryManager的使用1.1.1创建Repository。前提:a.在ODBC数据源管理器中新建一个数据源连接至你要创建Repository的数据库(例:jzjxdev)b.要在你要连接的数据库中新建一个用户(例:name:ETLpassword:ETL)现在你可以创建一个Repository了。选择Repository–CreateRepository,输入RepositoryName(例:JZJX),DatabaseUsername(例:etl),DatabasePassword(例:etl),ODBCDataSource(例:jzjxdev),NativeConnectString(数据库所在ip例:141.20.52.108)1.1.2添加Repository。通过这一步你可以添加别人已经建好的Repository。选择Repository–AddRepository,输入RepositoryName(例:JZJX),Username(例:etl),点击ok就可以看到名为JZJX的Repository在左边的浏览器中,但是此时还看不到它的内容,要看到它的内容或者对它进行操作必须先连接它。1.1.3添加Folder选择Folder–Create,输入文件夹名称即可。1.2Designer的使用首先连接Repository,可以看到该Repository在RepositoryManager中创建的文件夹。1.2.1SourcesSources文件夹下的表是抽取的来源表。导入方法:选择Tools菜单下的SourceAnalyzer,然后选择Sources菜单下的Importfromdatabase,连接想要连接的数据库,连接上后选择你要抽取的表点击ok你所选择的表就会出现在Sources文件夹下。说明:上面的导入过程导入的只是表结构,你也可以自己创建来源表,只要你创建的表的结构跟真实存在的那张表的表结构一致就行。1.2.2TargetsTargets文件夹下的表是抽取的目标表,也就是抽取结果的存放表.导入方法:选择Tools菜单下的WarehouseDesigner,然后选择Targets菜单下的Importfromdatabase,连接想要连接的数据库,连接上后选择你要抽取的表点击ok你所选择的表就会出现在Targets文件夹下。说明:上面的导入过程导入的只是表结构,你也可以自己创建目标表,只要你创建的表的结构跟真实存在的那张表的表结构一致就行。1.2.3Mappings的设计选择Tools菜单下的MappingDesigner才能进行Mapping的设计。每个Mapping都由来源表,transformation和目标表组成,描述数据抽取的过程。来源表和目标表可以从Sources和Targets文件夹拖拽到工作区,但是transformation一般来说是需要自己创建的。Mapping的设计关键是transformation的使用,它的使用关系到数据抽取的正确性和效率。下面说明各个transformation的作用和用法。(Active:表示该transformation可以改变通过它的数据的行数;Passive:表示该transformation不改变通过它的数据的行数;Connected:表示该transformation要连接到数据流;Unconnected:表示该transformation可以不连接到数据流)1.2.3.1SourceQualifier作用:根据查询SQL文从关系表或平坦文件查出所要记录用法:创建好SourceQualifier(下简称SQ)后,将需要的用的字段从来源表拖拽到SQ,双击SQ,对SQ的属性进行设置。SelectDistinct属性:选中的话表明结果记录将去除重复值;TracingLevel属性:共有四级,表示log的复杂程度;NumberOfSortedPorts属性:排序的字段个数,值大于0时SqlQuery中的sql文将出现orderby从句;SqlFilter属性:属性值将出现在SqlQuery属性值的where表达式中;UserDefinedJoin属性:用户如果要定义外部连接可在此写(例:{REG_CUSTOMERLEFTOUTERJOINPURCHASESon(REG_CUSTOMER.CUST_ID=PURCHASES.CUST_IDANDPURCHASES.AMOUNT100.00)})SqlQuery属性:值是一条sql文,session运行时会执行这条sql文进行查询。命名方式:SQ_Name类型:Active/Connected注意:SQ的输入只能来自来源表;UserDefinedJoin属性值必须用{}括起来;在更改了SQ的属性值之后一定要点击SqlQuery属性的generatesql按钮重新生成sql文。1.2.3.2UpdateStrategy作用:决定该行进行插入,删除,更新,忽略中的哪一种操作用法:创建好UpdateStrategy(下简称US)后,将需要的用的字段从transformation拖拽到US,双击US,对US的属性进行设置。US的设置关键是UpdateStrategyExpression属性的设置,这个表达式使用IIF或DECODE函数对记录的每一行进行判断,为每一行赋予DD_INSERT,DD_UPDATE,DD_DELETE,DD_REJECT(这四个是常量,值分别为0,1,2,3)中任意一个值,表明该行在数据库中将进行何种操作。命名方式:UPD_Name类型:Active/Connected注意:mapping中有US时,mapping对应的session在配置属性时,必须把Treatrows属性设置为DataDriven,否则US将不起作用。1.2.3.3Expression作用:计算一个值用法:创建好expression_r(下简称EXP)后,将需要的用的字段从来源表拖拽到EXP,双击EXP,新增输出端口,编辑该端口的表达式。命名方式:EXP_Name类型:Passive/Connected注意:要进行列运算一般用这个transformation;此种transformation可以使用本地变量1.2.3.4StoredProcedure作用:调用一个存储过程用法:创建StoredProcedure(下简称SP)的时候连接数据库选择必要的存储过程。SP有连接和不连接到数据流两种用法。连接到数据流方式跟一般的transformation类似,通过拖拽端口来实现数据流。不连接到数据流分表达式调用和Pre-/PostSession两种方式。表达式调用方式中SP被Mapping中另一个transformation中的表达式调用。Pre-/PostSession方式就是在Session的属性中配置SP的运行时间,SourcePre-load(Session从源表查询数据之前),SourcePost-load(Session从源表查询数据之后),TargetPre-load(Session将数据插入目标表之前),TargetPost-load(Session将数据插入目标表之后)命名方式:SP_Name类型:Passive/ConnectedorUnconnected注意:1.2.3.5SequenceGenerator作用:产生主键用法:创建好SequenceGenerator(下简称SEQ)后,双击SEQ,对SEQ的属性进行设置。StartValue属性是开始值,此属性只在选择了Cycle选项才有效;IncrementBy属性值是每次增加的值;EndValue属性值是结束值;CurrentValue属性值是当前开始值;Cycle选项被选择的话NEXTVAL的值达到EndValue值之后会重新从StartValue开始;Reset选项被选择的话,服务器会为每个使用了该SEQ的session的NEXTVAL值都从CurrentValue开始。命名方式:SEQ_Name类型:Passive/Connected注意:这是一个只有两个输出端口没有输入端口的transformation.;如果该SEQ时可重复使用的话,不能选择Reset选项。1.2.3.6Aggregator作用:执行分组聚合运算用法:创建好Aggregator(下简称AGG)后,将需要的用的字段从其他transformation拖拽到AGG,双击AGG,在端口tab中每个端口有groupby选项。钩上想要分组的列,新增端口,编写聚合表达式实现分组聚合运算。命名方式:AGG_Name类型:Active/Connected注意:可使用本地变量1.2.3.7Filter作用:过滤记录用法:创建好Filter(下简称FIL)后,将需要的用的字段从transformation拖拽到FIL,双击FIL,对FIL的属性进行设置。FIL的配置主要是对FilterCondition的配置,FilterCondition写入类似where条件的表达式即可。命名方式:FIL_Name类型:Active/Connected注意:1.2.3.8Lookup作用:查询值用法:创建Lookup(下简称KP)的时候选择要查询的表。和StoredProcedure一样SP有连接和不连接到数据流两种用法。连接到数据流方式将要关联查询的字段从其他的transformation拖拽过来,然后双击LKP进行属性的配置。LookupPolicyOnMultipleMatch属性表明当查询到多个行时采取取第一行,取第二行,报错中哪个策略.LookupCondition属性值是查询的条件。LookupSqlOverride属性值是查询执行的Sql文,我们可以在里面直接写Sql。LookupCachingEnabled属性表明是否使用缓存,此项一般选择为好,有利提高效率。LoopupCachePersistent属性表明是否使用永久的缓存。命名方式:LKP_Name类型:Passive/ConnectedorUnconnected注意:如果Lookup表的类型是来源表的话,请尽量使用Joiner;一个已连接的LKP不能再被其他transformation的表达式调用;如果查询表在session运行过程中不会改变,使用LoopupCachePersistent属性可提高性能;尽量不要在LookupSqlOverride中书写orderby子句,因为cachedLKP默认有orderby;Lookup在ETL中是一种常见的操作,比如产品键到代理键的转换,ID到name的转换等,都可以通过lookup来实现。Informatica中的lookuptransformation组件除了能实现这种普通的转换,还可以用来更新缓慢变化维等,功能可谓强大。本文根据Informatcia8.1的联机文档,简单介绍一下informatica的lookuptransformation。中英文名词对应:•transformation:转换•connected:连接的•unconnected:未连接的•cache:缓存LOOKUP端口I:输入端口O:输出端口L:查询端口,在默认的SQL中出现,LOOKUP表中的每列都被自动的定义为L和O端口,可删除R:无连接LOOKUP中的返回端口一、lookup的功能•获得相关值:例如根据ID查找name•执行计算:例如得到计算公式得到一个结果•更新缓慢变化维:根据lookup的条件决定是插入还是更新记录等二、rationallookupsvsflatfilelookupslookup的源可以是关系数据库中的表,也可以是平文件。对于关系表,可以从source或者target中选择,也可以和平文件一样,通过import向导完成。三、connectedlookupsvsunconnectedlooku
本文标题:优_informatica 学习日记整理
链接地址:https://www.777doc.com/doc-4330978 .html