优 - informatica 学习日记整理
更新时间:2024-06-18 03:06:01 阅读量: 综合文库 文档下载
- 优直播推荐度:
- 相关推荐
informatica 学习日记整理
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 OnMultiple 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 ;
Lookup在ETL中是一种常见的操作,比如产品键到代理键的转换,ID到name的转换等,都可以通过lookup来实现。Informatica中的lookup transformation组件除了能实现这种普通的转换,还可以用来更新缓慢变化维等,功能可谓强大。本文根据Informatcia8.1的联机文档,简单介绍一下informatica的lookup transformation。 中英文名词对应: ?transformation:转换 ?connected:连接的 ?unconnected:未连接的 ?cache:缓存
LOOKUP 端口 I:输入端口 O:输出端口
L:查询端口,在默认的SQL 中出现,LOOKUP 表中的每列都被自动的定义 为L 和O 端口,可删除
R:无连接LOOKUP 中的返回端口
一、lookup的功能
?获得相关值:例如根据ID查找name ?执行计算:例如得到计算公式得到一个结果
?更新缓慢变化维:根据lookup的条件决定是插入还是更新记录等
二、rational lookups vs flat file lookups
lookup的源可以是关系数据库中的表,也可以是平文件。对于关系表,可以从source或者target中选择,也可以和平文件一样,通过import向导完成。
三、connected lookups vs unconnected lookups informatica的转换可以分为连接的和非连接的两种。
要求实现每天抽取数据,而且是如果有改变才抽取更新,没有就不更新, 因为源表中有最后修改时间的字段,我让它 和SESSION上次运行时间比较来解决是否抽取,
但问题是有的表中没有主键,我该怎么实现更新呢 ?
有主键的我在WORKFLOW的MAPPING里面勾上了UPDATE ELSE INSERT 那没主键的用 UPDATE AS INSERT 行么?
还有UPDATE AS INSERT 什么意思啊,能解释的形象点么?
答:
UPDATE AS INSERT 就是
语句一: update tab_name set c1= value1 ,c2 = value2 where c_prikey = value_pri
语句二: insert into tab_name values(******)
当在 tab_name的c_prikey找到有等于value_pri的,就执行语句一把所有对应的记录update。
当没有匹配的,就执行语句二。
你可以powercenter的 source defination中的自己定义主键,也可以直接 override update sql,
可以不用理会真实表结构中是否有主键
Informatica学习笔记2:客户端连接服务器
问:
我通过客户端连接到服务器,做了一个workflow,运行的时候出现错误,说是服务器连接不上
repository server和infomatic server他俩的port是不是要一样还是不需要?
答:
看看server 的配臵..我想可能是没有配臵好.
问:
Repository server服务起来了,就是informatica server起不来了,在配臵的时候,是informatica server的ip解析不出来,怎么才能把那个地址和主机对应起来
答:
1.直接写IP
2.编辑客户端的%WINDOWS%/SYSTEM32/DRIVERS/ETC/HOSTS文件,把ip与名字的对应关系加进去,客户端这台机器就可以自己解析了 3.找DNS或者什么解析服务器搞定。
问:
informatica server装在unix操作系统下,能不能找到配臵informatica server的配臵文件对应的是那一个文件.
答:
unix下缺省是pmserver.cfg,可以用pmconfig这个命令行工具修改配臵文件,也可以直接打开编辑。
如果不是缺省的配臵文件名可以通过, ps -efl|grep pmserver看看是哪个文件名。
问:
谢谢,pmserver.cfg这个文件中的配臵信息我看过了,里面设臵的都是repository server ip:192.168.0.1和port:6001,怎么找不到配 臵的informatica server的ip:192.168.0.1和port:4001我是想知道这个信息在配臵文件中能找到吗?
答:
这个是在workflow manager里面注册的。双击server名字就看得到了。
问:
是的,我在workflow manager里看到过,只要在那里注册好了就行了吗,我想它应该存放在什么位臵
所以想搞清楚,还是谢谢你.
答:
他存放在策略库的opb_server_info表里面,呵呵。你也可以试试看直接改数据库。
不过直接改数据库这种事情要悄悄的干,被david知道了要打pp的。
Informatica学习笔记3:workflow问题
问:
创建一个工作流从一个txt文件到目标表,是不是要定义.par参数文件 有没有谁有这方面的资料教程,给我发一份,非常感谢!~
我创建了一个,运行的时候出错了:(Server10) Start workflow: Request acknowledged (Server10) Start workflow: ERROR: Error in starting execution of workflow [id = 8] [wf_s_m_test]. Please check the server log for more information.
答:
没必要非得定义参数文件,直接在session 中,指定路径和文件名就行..如果是同结构批量的文件,可以用file list 功能..
参数文件也能作,相对来说是在外部控制路径和文件名,比较动态了. 那个错,不是让你去看 server log 吗.. 去看看了. window 平台,default 去看事件管理器
Informatica学习笔记4:Folder权限的问题
问:
Informatica用不同的用户创建的不同的folder,互相看不见是什么原因那?
答:
保护机制的作用,建folder的时候,在安全选项里可以设臵!~ 把read权限赋给 repository user就可以了 也有可能是启用了 version control 的原因
Informatica学习笔记5:建立Repositories的时候出错
问:
我的Infromatica是安装在英文版的Windows环境下的,Matadata要放在Oracle9i中,可是当我在建立Repository的时候怎么也连接不
上我的Oracle9i数据库,而我用其他方式连接数据库是畅通的,在Windows的事件查看中看到如下信息:
(368|752) Failure in running command-line request type[100401]
[pmrepagent create -r \\-h tcs-china.db -o 9999 -H \-O 5001 -K 2082340862]. Error is [An error occurred while creating the repository.].
答:
建repository在\里面可以找到Active Log的,可以看看出错信息,出错多的好像都是插入一个LONG的值,通常建策略库出问题都是字符集捣的鬼,几个地方要注意数据库的字符集,系统NLS_LANG环境变量,操作系统的缺省字符集(windows在地区设臵里面看,还有缺省输入法也可能影响),理论上不同的字符集只要是可转换的,都是可以的,不过弄成一样的比较简单了。
问:
谢谢guruhao的提示和帮助,我决定将Oracle和Informatica重新安装一下再来测试一次,我的操作系统的缺省字符集(windows在地区设臵里面)是china系统NLS_LANG环境变量是N/A
答:
这一段都是正常的,drop table不成功,属于建库之前清理表的动作,还要往后,大约在中间的位臵。有个真正的插入数据的错,你最好设臵一下NLS_LANG使之与oracle server的字符集相匹配。
it should be Oracle characterset is not same in Oracle Server and client.
Informatica学习笔记6:建立workflow的问题
问:
我用powercenter8建立一个mapping后,在workflow manager中建立了workflow,但是运行这个workflow时却提示以下错误信息:Could not start execution of this workflow because the current run on this Integration Service has not completed yet我检查了一下:server中的各服务已经正常启动了,但是就是运行时出现这种情况,请问是什么原因导致的??以及怎样解决呢???各位知道的就请说一下吧。
答:
该错误应该是说你建的这个workflow正在运行,且还没有结束,因而你不可以再次启动该工作流。你可以通过Monitor观察一下。
问:
该错误应该是说你建的这个workflow正在运行,且还没有结束,因而你不可以再次启动该工作流。你可以通过Monitor观察一下。 但是我在monitor中又看不到任何的session在运行啊~
答:
将你的informatica server在service里重新启动后再运行看看(问:过一阵子之后再运行就正常了。不知道为什么?怪怪的~~~)
Informatica学习笔记7:workflow执行报错
问:
我在执行某个workflow 的时候报了如下错误: FATAL ERROR : Unexpected Condition in
file[/u05/bld65_64/pm713n/server/dmapper/widget/wjoiner.cpp] line [3176].
Contact Informatica Technical Support for assistance. Aborting this DTM process due to an unexpected condition. 请问各位这是什么原因?我看了一下日志文件,好像是初始化的过程都还没有结束就报错了。
答: This error occurs when the Joiner transformation in the mapping has become corrupted.
To resolve this do one of the following:
1. Delete and re-create the Joiner transformation.
2. Export and import the mapping replacing the mapping when importing it.
谢谢!!找到原因了,原来是某一个字段的连接线没有连上导致的错误。可是我有个疑问,为什么有的控件出现这种情况的时候就没 有问题呢??
Informatica学习笔记8:提示joiner输入字段没有排序
问:
我们这里是异地开发,从北京拿过来的mapping,在那里都可以跑通,而且没有任何问题,但是怎么拿到我这里就提示joiner输入字 段没有排序呢?问题可能发生在什么地方呢?
答:
你的join 控件应该是来自同一个数据源的,你在join 控件前增加一个Sorter 控件,将join 的输入数据源排序。
Informatica学习笔记9:import一系列mapping
问:
求教,要import一系列mapping,但是codepage不一致,应该怎么调整?
答:
codepage 不一致,一定得改..反正一个XML,只需要改两个地方..如果XML很多,写一个小程序,会方便点..如果少,手工改一下就好了. 一系列的xml?? 是指很多,是吗?
1.建议你在导出时,用rep manager, 将很多对象打一个包导出.
2.pmrep 命令行,有个object import 功能,写一个批量的 .bat 导了 Informatica学习笔记10:复制数据库的问题
问:
请教各位大侠:我要用PowerCenter复制一个数据库,源库是一个SQL Server的数据库,目标库是DB2数据库,请问怎么做?
答:
一个表一个表的做。
如果想一次复制所有表,干脆用SQL server的DTS好了。
如果是整个库的话,不如用DB import/export了..ETL强调的是T..
Informatica学习笔记11:informatica services不能启动
问: 环境:
在一台机器上安装了informatica services+client+oracle 10g(作为repository)。informatica的版本是8.1.1,启动
正在阅读:
第二章金属及合金的晶体结构05-22
2013高考历史人教版总复习:第四单元 第16课 抗日战争 随堂基础巩固01-29
苏词《定风波 莫听穿林打叶声》赏析06-27
2022-2026全球及中国二异丁烯行业发展现状调研及投资前景分析报04-10
1 找春天09-27
ICT-16~25A-1P-4P 施耐德交流接触器-适用范围10-20
施工现场宿舍管理制度02-02
商会名录 - 图文03-31
工种轮换热处理实训教师指导手册12-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- informatica
- 整理
- 日记
- 学习
- 青建管质字〔2014〕112号《关于青岛市建筑市场主体信用考核运行
- 商业银行信用卡业务监督管理办法
- “十三五”重点项目-硫酸氨基葡萄糖项目节能评估报告(节能专篇
- 2019年池州中等职业学校技能大赛 - 图文
- 电磨配件组套市场前景预测及投资规划分析报告(目录)
- 单工无线发射接收系统
- DGJ08-903-2010上海市建设工程现场施工 - 安全生产管理参考资料
- 武汉理工大学船舶结构与设备期末考试重点
- 国贸施工组织设计(新新)
- 人教版三年级数学下册高效课堂全册教案
- 初级会计实务历年经典试题回顾第一章试题
- 河南省常用园林植物推荐名录
- 高电压工程答案(清华大学版)
- 2018考研政治主观题答题技巧
- 传染病及突发公共卫生事件管理制度汇编
- 2016届高三高考冲刺试卷(三)理科综合生物试题
- 关于认真做好2012年秋季开学工作的通知
- 学校体育学
- 小学数学教研组活动计划
- 浅谈新课程改革背景下初中数学考试命题