网站大量收购独家精品文档,联系QQ:2885784924

Informatica字符集整理.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Informatica字符集整理 理论基础 从数据通路的角度看,Informatica中数据的流向是:Source Storage -Transformations-Target Storage。为了保证数据不至于丢失,靠后的target的字符集需要兼容靠前的source的字符集。如下图: 整个ETL的数据流动过程都是由Integration Service(下文简称IS) Process来完成。当Informatica与数据库交互时,因为会用到数据库的client driver,所以,运行IS Process的服务器的数据库客户端设置会影响到Informatica与数据库的数据交换。因为数据经历了如下流向:Database A Server-Database A Client-IS Process-Database B Client-Database B Server。当Informatica从Flat File加载数据时,则需要指定文件使用的字符集。它的数据流向是:Flat File-IS Process-Database A Client-Database A Server。 IS Process可以以两种方式move数据:ASCII和UNICODE。ASCII模式下,IS Process不会做character conversion,即input的binary流是什么样子,output什么binary流。而在UNICODE模式下,Informatica会检查source和target的字符集是否兼容,重要的是IS Process会做character conversion,在其内部以UTF8方式传输数据。 因为Informatica的Client需要和Repository Database交互,所以它们的字符集需要和Repository Database的一致或为对方的子集。Informatica的Client包括:IS Process、PowerCenter Designer、PowerCenter Workflow Manager等。一般Informatica的Client的字符集设置是跟着运行该Client的本地OS走的,例如:运行在简体中文的Window上运行PowerCenter Designer,此时它使用的code page是“MS Windows Simplified Chinese”;而在英文系统Window上运行IS Process,那么它使用的code page就是“MS Windows Latin 1 (ANSI)”。在Unix系统上的Client同样道理。Informatica的Client字符集设置,不影响数据在Informatica的ETL过程,只是影响它们自己和Repository Database的数据交换。 案例分析 案例I 环境: Source:Oracle Database(UTF8) Target:Oracle Database(UTF8) IS Process Code Page:MS Windows Latin 1 (ANSI) IS Movement Mode:ASCII NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252 Mapping设置: Source Connection Code Page=UTF8 Target Connection Code Page=UTF8 ETL结果: 中文为乱码 分析: 因为NLS_LANG设置的是WE8MSWIN1252,虽然Source Connection Code Page和Oracle Database Server都使用UTF8编码,但是在从DB Server-DB Client时乱码已经产生,Informatica的Source Connection拿到的就是乱码了。 解决: 修改NLS_LANG为“AMERICAN_AMERICA.AL32UTF8”或者“AMERICAN_AMERICA.ZHS16GBK”。此时,IS Movement Mode是ASCII还是Unicode都可以。 解释: 在IS Movement Mode=ASCII情况下,Source/Target Connection Code Page设置为“UTF8”、 “GBK”或者“ISO8859-1”等都可以,因为此时DB Server-DB Client和DB Client-DB Server不会发生数据丢失和乱码,同时Informatica不会去转码。这保证DB ClientàIS ProcessàDB Client过程中binary数据流没有发生变化。 在IS Movement Mode=UNICODE情况下,就不同了

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档