Informatica学习笔记十九点.docx
- 文档编号:12852344
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:17
- 大小:29.12KB
Informatica学习笔记十九点.docx
《Informatica学习笔记十九点.docx》由会员分享,可在线阅读,更多相关《Informatica学习笔记十九点.docx(17页珍藏版)》请在冰豆网上搜索。
Informatica学习笔记十九点
摘要:
Informatica学习笔记1:
UPDATE AS INSERT
Informatica学习笔记2:
客户端连接服务器的问题
Informatica学习笔记3:
workflow的问题
Informatica学习笔记4:
Folder权限的问题
Informatica学习笔记6:
建立workflow的问题
Informatica学习笔记7:
workflow执行报错
Informatica学习笔记8:
提示joiner输入字段没有排序
Informatica学习笔记9:
import一系列mapping
Informatica学习笔记10:
复制数据库的问题
Informatica学习笔记11:
informatica services不能启动
Informatica学习笔记12:
从mysql抽取数据的字符集问题
Informatica学习笔记13:
没有Lincense导致的问题
Informatica学习笔记14:
lookup中自定义sql有问题
Informatica学习笔记15:
infopower如何实现增量抽取?
Informatica学习笔记16:
informatica 8.1 安装问题
Informatica学习笔记17:
如何在PowerCenter中实现累加SUM
Informatica学习笔记18:
PC8.1运行出错
Informatica学习笔记19:
多行记录合并问题
———————————————————————————
Informatica学习笔记1:
UPDATE AS INSERT
问:
要求实现每天抽取数据,而且是如果有改变才抽取更新,没有就不更新,
因为源表中有最后修改时间的字段,我让它 和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 "TCS" -t "Oracle" -u informatica -c Oradb -d "MS1252" -h tcs-china.db -o 9999 -H "tcs-china.db" -O 5001 -K 2082340862]. Error is [An error occurred while creating the repository.].
答:
建repository在"Repository Server Administration Console"里面可以找到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,启动informatica services时没有错误,但是过几分钟就停了。
日志信息catalina.out如下:
2006-11-28 16:
12:
46 org.apache.coyote.http11.Http11Protocol init
信息:
Initializing Coyote HTTP/1.1 on http-6001
2006-11-28 16:
12:
46 org.apache.catalina.startup.Catalina load
信息:
Initialization processed in 1234 ms
2006-11-28 16:
12:
46 org.apache.catalina.core.StandardService start
信息:
Starting service Catalina
2006-11-28 16:
12:
46 org.apache.catalina.core.StandardEngine start
信息:
Starting Servlet Engine:
Apache Tomcat/5.0
2006-11-28 16:
12:
46 org.apache.catalina.core.StandardHost start
信息:
XML validation disabled
2006-11-28 16:
12:
47 org.apache.catalina.core.StandardHost getDeployer
信息:
Create Host deployer for direct deployment ( non-jmx )
2006-11-28 16:
12:
47 org.apache.catalina.core.StandardHostDeployer install
信息:
Processing Context configuration file URL file:
c:
\Informatica\PowerCenter8.1.1\server\tomcat\conf\Catalina\localhost\adminconsole.xml
java.lang.UnsatisfiedLinkError:
D:
\Informatica\PowerCenter8.1.1\server\bin\pmjrepn.dll:
?
?
?
?
?
?
?
¨?
?
?
?
ò?
?
前几天一直运行正常,请问各位高手,该问题如何解决,谢谢!
答:
This error will occur when there is there is an incompatible xerces-c_2_4_0.dll file on the Windows machine.
To resolve this do the following:
Stop the Informatica Services Windows service.
Go to the C:
\WINNT\system32 directory.
Rename the xerces-c_2_4_0.dll file to xerces-c_2_4_0.old.dll.
Copy the xerces-c_2_4_0.dll file in the
\WINNT\system32 directory.
Re-start the Informatica Services Windows service.
Try it again, please let me know the result.
Informatica学习笔记12:
从mysql抽取数据的字符集问题
问:
我们的source数据库是mysql,字符集是utf8. 现在要用informatica从中抽取数据并生成文本,用于下一步的ETL处理。
informatica server的code page是ISO 8859-1. 结果中文字符总是抽取不成功。
请问如何处理才能正确抽取中文字符?
答:
informatica server的code page是ISO 8859-1 ,你得改成UNICODE的模式,才可以比较适合作转换..你在workflow manager中的那个ODBC的连接,应该也有codepage的设置吧..改改试试..
问:
informatica server的code page是ISO 8859-1 ,你得改成UNICODE的模式,才可以比较适合作转换..你在workflow manager中的那个ODBC的连接,应该也有codepage的设置吧..改改试试..
谢谢斑竹。
问题是我没办法去改informatica server的配置。
如果就用当前配置,有可能做到正确抽取中文么?
能够做一些编码的转换来实现么?
答:
乱码,就找几个点的码制设定了..
源就那样了, ETL服务器上配的ODBC,可能会有codepage 相关; 再就是ETL 服务器, 你已设为ISO 8859-1,如果不对中文数据作转换,应该不会乱; workflow manager中,配置ODBC我忘了是不是也有code page 设定了..就这么几块..你分开检查一下了.
你用个什么工具,通过系统ODBC去访问一下,如果看到的不是乱码,再从后面几点排这个错了..
(修改了连接mysql的odbc,加上 stmt=SET NAMES 'utf8' 就好了,谢谢斑竹!
)
Informatica学习笔记13:
没有Lincense导致的问题
问:
各位兄弟们帮忙看一下,informatica的问题,我使用的是6版本,目标数据库是oracle 10g,在安装好,配置好的时候,执行workflow的时候报这样的错误
CMN_1022 Database driver error...
CMN_1022 [
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Database driver error...
Function Name :
Connect
Database driver error...
Function Name :
Connect
Database Error:
Failed to connect to database using user [test_loc] and connection string [192.168.1.42].]
答:
你用的是ODBC..是UNIX下,还是window?
为什么不用Oracle native driver?
这个看起来,像是你在系统建的ODBC,没有找到..
你在系统的ODBC,建立一个连接,例如:
odbc_ora_hr
测试一下,看是不是能连接到远程的oracle server.
你在workflow manager中,建立ODBC时,那个connectstring 写上这个名字.odbc_ora_hr
如果在系统的ODBC是通的,应该就可以了吧.
问:
ODBC用的是informatica自带的odbc安装的,用的是window的,我也想用oracle 的驱动,但是我没有oracle 的Lincense key,我只有odbc的所以只能用odbc的了,系统odbc配置的图和workflow manager中配置odbc的图和你说的一样,配置好后,报的错误还是一样的,急死了
答:
问题解决了,是key有问题!
艾!
没有informatica的Lincense
Informatica学习笔记14:
lookup中自定义sql有问题
powercenter 7.1 windows平台
source table w_test_fs
target table w_test_f
源表和目标表中都有字段col1和col2,这两个字段可以看作是联合主键吧 建了个unique index
mapping流程大概说一下
1.从源表取数据 select fs.col1,fs.col2,fs.xxx,... from w_test_fs fs
2.建lookup(从w_test_f),in的字段就是上面select出来的col1和col2,比较字段是w_test_f中的col1和col2,取出w_test_f中的主键
select f.row_id,f.col1,f.col2 from w_test_f f, w_test_fs fs where f.col1=fs.col1 and f.col2=fs.col2
3.建filter, 把lookup找出的lookup_row_id和步骤1选出的字段传给此filter
filter条件是isnull(lookup_row_id)
4.进入目标表
现在的问题是:
源表和目标表数据条数是一样多了(之前跑过,那时目标表是空的) 就是说对于col1和col2来说,两个表是一样的
用sql可以验证
select fs.* from w_test_fs fs where (select f.row_id from w_test_f f where f.col1=fs.col1 and f.col2 = fs.col2) is null;
执行这条sql查出0条记录
但我运行上面的mapping 还是有数据流过filter
遇到过有部分数据流过(filter起了部分作用)、也遇到过数据全部流过(filter没起作用) 当然对应的mapping是不一样的
我上面的mapp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Informatica 学习 笔记 十九