Informatica PowerCenter平台 ETL开发规范 1) 编写加载说明文档(包括MAPPING文档)
2) 开发初始与日常加载脚本 3) 测试初始与日常加载脚本 4) 编写测试报告
加载说明文档的模板和测试报告的模板因项目而异,格式可以参考每个项目具体的文档模板。 开发时最好以JOB为单位,由易到难,一个JOB结束以后再着手开发下一个JOB。当第一个JOB开发完成之后,由ETL相关负责人员确认文档、脚本等都没有问题以后,再进行下一个JOB的开发。
对于JOB的开发,实行“终身版权制”,在项目结束之前,只要开发人员还在项目中,其开发的JOB出现问题,开发人员拥有最终的解释权,并负责解决出现的问题。
9.2 文档编写要求
必须在文档中注明初始开发变人员与日期、每次变更的人员、变更内容及日期。
开发说明中既要详细说明每一步处理过程,也要概括说明总体的处理思路,用来和具体的处理步骤进行验证。
要说明源数据来自哪个地市、哪个源系统,数据转换的具体过程,包括对数据的所作的转换,所采用的具体方法等,说明对源数据所作的清洗。
10. 版本控制
虽然Informatica提供了Version Control功能,但其版本控制功能是以folder为单位的而不是以Mapping为单位,因此无法对单个mapping进行版本控制。基于这一点,不使用Informatica提供的version Control功能进行版本控制,而使用VAULT、SVN等进行版本控制。
以下是基于Informatica平台开发需要遵循的版本控制流程:
Page: 36 of 39
Informatica PowerCenter平台 ETL开发规范 从VAULT/SVN检出XML文件(加锁) 开发Mapping等对象 导出Mapping等对象到XML文件 将XML文件提交到VALUT/SVN(释放锁)
11. ETL程序迁移
使用Informatica Repository Manager导入和导出功能进行ETL程序迁移,需要检查的项目详见以下文档:
Informatica上线检查清单.xls
在进行程序发布时,当设计到程序覆盖时,需要注意:
? Mapping改动后,可以直接覆盖,但需要检查引用到它的Session是否失效,如果失效,应进
行Validate。
? Mapping覆盖时,注意其中包括的Seq值,不能覆盖目标。
Page: 37 of 39
Informatica PowerCenter平台 ETL开发规范 ? 公用模块、Source、Target的导入,将会影响到引用到它们的所有对象(将会造成大部分对
象失效),所以需要特别谨慎。如果确认需要导入,则在导入后,需要进入系统,找出所有失效对象,进行Validate。
? 一般不需要覆盖的对象,在导入时选择Reuse。 ? 新发布的Mapping,需要将其Seq的初始值改为1。
12. 开发建议
12.1 Source Qualifier
SELECT端口只能为源端口,不得使用SQL函数。 可以写JOIN、WHERE、ORDER BY子句。
保持SQL语句简洁,Mapping中不出现复杂SQL,而是通过Transformation实现。
12.2 Mapping
Mapping保持简洁,一个Mapping只针对一个目标表
12.3 Mapplet
可以重用的转换逻辑放到Mapplet中实现,并添加描述信息。如可供其它开发者使用,通知管理员移至共享文件夹。
12.4 Expression
Expression转换提供了本地变量功能,可以跨行引用数据,在做分区分组处理时非常方便。 使用时需遵循端口顺序: Input ports Variable ports Output ports
本地变量:在引用端口时被引用者仍未被填充,该引用变量的值为上一条数据的值。 所以本地变量端口要放在被引用端口之上,数据流入之前要排序。
本地变量用途:汇总,分区分组汇总,累计,去除重复记录,分区分组标记序号,等等,而且相比rank,aggregator,lookup等有性能优势(需要具体实际测试)。
12.5 Lookup
Lookup有连接和非连接的区别,也有Dynamic和Static的区别(需要研究)。
Page: 38 of 39
Informatica PowerCenter平台 ETL开发规范 Lookup SQL override用途
源和目标发生变化重新导入时,需要特别注意Lookup中是否更新。
12.6 Update Strategy
每个Update Strategy的表达式中最好只包含DD_INSERT、DD_UPDATE、DD_DELETE、DD_REJECT四种标识中的一种,而使用Router分流,INSERT和UPDATE通过不同的PIPELINE进行,以提高性能。
Page: 39 of 39