Informatica PowerCenter平台ETL开发规范January 12, 2010广州安正软件科技有限公司BusinessMatrix Information System Corporation.文档历史记录变更历史审阅分发文档目录1.文档介绍 (5)1.1文档目的 (5)1.2适用范围 (5)1.3文档读者 (5)1.4参考文献 (5)1.5术语与缩写解释 (5)2.POWERCENTER平台介绍 (6)3.环境介绍 (7)3.1概述 (7)3.2开发环境 (7)3.3测试环境 (7)3.4生产环境 (7)3.5数据库账号 (7)3.6数据连接 (8)3.7参数文件 (8)4.通用规范 (14)4.1I NFORMATICA文件夹配置 (14)4.2操作系统文件夹配置 (14)4.3S ESSION配置项 (15)4.4I NFORMATICA用户配置 (15)4.5ETL转换规则说明 (15)4.6从平面文件导入数据 (15)4.7从数据库导入数据 (16)4.8从数据库导入数据结构 (16)4.9注释 (16)4.10日志文件 (16)4.11出错处理与通知 (17)5.命名规范 (18)5.1概述 (18)5.2F OLDER (18)5.3M APPING (18)5.4S ESSION (19)5.5W ORKFLOW (19)5.6S OURCE D EFINITION (19)5.7T ARGET D EFINITION (20)5.8A GGREGATOR (20)5.9E XPRESSION (21)5.10F ILTER (21)5.11J OINER (21)5.12L OOKUP (21)5.13N ORMALIZER (22)5.14R ANK (22)5.15R OUTER (22)5.16S EQUENCE G ENERATOR (22)5.17S ORTER (23)5.18S OURCE Q UALIFIER (23)5.19S TORED P ROCEDURE (23)5.20U PDATE S TRATEGY (23)5.21M APPLET (24)5.22I NPUT T RANFORMATION (M APPLET O NLY) (24)5.23O UTPUT T RANFORMATION (M APPLET O NLY) (25)5.24D ATABASE C ONNECTIONS (25)5.25FTP C ONNECTIONS (25)6.常用SQL知识介绍 (25)6.1NOT IN与MINUS (25)6.2多表连接中的条件限制(WHERE AND ON) (25)6.3游标尽量少使用 (27)6.4异常捕捉 (27)7.SQL编写规范 (27)7.1原则定义 (27)7.2大小写规则 (28)7.3缩进与换行 (28)7.4别名 (29)7.5运算符前后间隔要求 (29)7.6变量引用 (30)7.7注释 (30)7.8其它 (31)8.脚本编写规范 (31)8.1U LTRA E DIT (31)8.2SHELL (32)9.ETL开发流程 (32)9.1ETL开发流程 (32)9.2文档编写要求 (32)10.版本控制 (33)11.ETL程序迁移 (34)12.环境准备过程 (34)12.1创建用户 (34)12.2开发环境准备 (34)12.3测试环境准备 (35)12.4生产环境资准备 (35)13.性能调优 (35)13.1I NFORMATICA性能调优步骤 (35)13.2聚合 (35)13.3其他 (36)1. 文档介绍1.1 文档目的本文档主要描述了ETL开发人员在Informatica PowerCenter平台开发Mapping、Session和Workflow需要遵循的统一标准,使得不同项目不同开发人员在Informatica PowerCenter平台交付的ETL程序符合同一标准。
1.2 适用范围本规范适用于所有使用Informatica PowerCenter工具开发的项目。
1.3 文档读者本规范面向ETL设计人员、ETL开发人员。
1.4 参考文献1. 《Informatica PowerCenter官方命名规范》2. 《Informatica_Standards.doc》1.5 术语与缩写解释无。
2. PowerCenter平台介绍Informatica PowerCenter产品是Informatica公司推出的ETL开发工具,主要包括服务器端和客户端两部分组件:●服务器端✧Informatica Service:PowerCenter服务引擎,是PowerCenter的核心服务,其他服务依赖于此服务。
✧Integration Service:数据抽取、转换、加载服务,是PowerCenter ETL程序运行必不可少的服务。
✧Repository Service:元数据资料库服务,提供对PowerCenter所有元数据的存取管理支持。
●客户端✧PowerCenter Designer:Mapping设计开发环境,定义源及目标数据结构,设计转换规则,生成ETL映射✧Workflow Manager:实现ETL工作流(包括Session、Task、Worklet、Workflow的开发),基于时间与事件的作业调度✧Workflow Monitor:监控Workflow和Session运行情况,生成日志和报告✧Repository Manager:资料库管理,包括文件夹创建与删除、Mapping等ETL程序的导入和导出、用户安全性管理等✧Repository Server Administrator Console:资料库的建立与维护,提供B/S访问方式说明:在实际项目中,仅使用Workflow Manager实现简单工作流的开发,而把Workflow之间的调度管理依靠iMatrix调度平台实现。
BusinessMatrix Information System Corporation 2006 April 27, 20223. 环境介绍3.1 概述Informatica PowerCenter在项目中按用途划分,可以包括开发、测试、生产三套环境,每套环境都是按Client/Server方式部署的。
在每套环境都有独立的Informatica Service、Integration Service、Repository Service服务,并且资料库也分别部署,并且三套环境之间的网络是隔离的,互相不能访问。
说明:如非项目特别要求,需要遵循上述约定。
3.2 开发环境Informatica PowerCenter开发环境主要用于ETL开发人员在项目开发阶段实现Mapping、Session、Workflow的开发、单元测试和联调测试。
对于开发环境的所有开发成果要求每天工作结束后对资料库所有文件夹做一次全备份。
3.3 测试环境Informatica PowerCenter测试环境主要用于项目用户测试用途,其中的所有ETL程序均都需要从开发环境导入。
此环境的ETL程序变更是受控的,不允许ETL开发人员在此环境直接修改ETL程序,特殊情况下可以在此环境调试程序,但也是严格受控的。
3.4 生产环境Informatica PowerCenter生产环境主要用于支持投产系统的ETL运行,其中所有的ETL程序均需要从开发环境导入。
此环境的ETL程序是不允许ETL开发人员直接修改的,必须由管理员和操作员导入。
3.5 数据库账号数据库账号在Informatica环境中有两个地方会用到,一是在PowerCenter Designer开发mapping 时需要连接到数据库读取源和目标表的结构定义,二是Workflow Manager中测试时需要定义数据连接,这写数据连接必须由管理员添加和修改。
3.6 数据连接在Workflow Manager要运行Workflow,必须为session指定其引用到的源和目标对应的数据库连接,而这些数据库连接需要预先由管理员在Workflow Manager中添加。
对于Session引用的源与目标库数据连接,严禁直接写数据连接名称,必须采用连接变量的方式,连接变量在参数文件中定义,连接变量的命名必须符合“$DBConnection_xxx”格式(其中xxx为要连接到的系统简称)。
3.7 参数文件在PowerCenter Mapping、Task、Workflow通过参数变量的支持可以实现动态参数值的注入,但这些参数变量的取值必须在参数文件中定义,运行时Informatica会从指定的参数文件读取参数变量的值。
严格禁止在设计阶段为参数变量设置默认值,参数变量的取值需要从参数文件获得,参数文件禁止将参数值指定到session级别(首次存量的参数文件不限制),如果同一workflow的两个session的参数需要使用不同的参数值,应该使用不同的参数名。
参数文件包括一个初始参数文件、多个首次全量加载参数文件、多个增量加载动态参数文件三种:✧初始参数文件用于定义全局参数,需在上线前确定,其命名为“param_init.cfg”✧全量加载参数文件主要用于首次全量加载,需在上线前手工编制,按“param_xxx_batch_a.cfg”命名(xxx为数据处理批次简称,例如:subta表示分TA批量处理批次)✧动态参数文件包括在增量加载程序运行阶段可能会改变的变量定义,在增量加载过程ETL程序会自动更新文件数据,按“param_xxx_batch.cfg”(xxx为数据处理批次简称,例如:subta表示分TA批量处理批次)命名。
附:1. param_init.cfg文件的示例:[Global]$$schema_downfile=ods_down3$$schema_ods=ods_ods3$$schema_dw=ods_dw3$$schema_crm=htfcrm$$schema_ec=ec$$schema_hec=hec$$schema_subta=subta$$schema_selfta=selfta$$schema_yssfa=yssfa$$schema_yssfa_ods=yssfa_ods$$schema_ysszhfa_ods=ysszhfa25_ods$$schema_ysszhfa=ysszhfa25$$schema_oa=ecology$$schema_ips=ods_ips$$schema_fa=yssfa_ods$$schema_yssfa=yssfa$$schema_ysszhfa=ysszhfa25$DBConnection_crm=htfcrm_htfcrm_ods_172_16_4_142 $DBConnection_ods=ods2_ods_ods3_172_16_3_190 $DBConnection_dw=ods2_ods_dw3_172_16_3_190 $DBConnection_downfile=ods2_ods_down3_172_16_3_190 $DBConnection_subta=htfcrm_hsta_ods_172_16_4_142 $DBConnection_selfta=htfcrm_selfta_ods_172_16_4_142 $DBConnection_ec=htfcrm_ec_ods_172_16_4_142 $DBConnection_hec=htfcrm_hec_ods_172_16_4_142 $DBConnection_heccdc=htfcrm_hec_cdc_172_16_4_142 $DBConnection_yssfa=htfcrm_yssfa_ods_172_16_4_142 $DBConnection_ysszhfa=htfcrm_ysszhfa25_ods_172_16_4_142 $DBConnection_oa=htfcrm_ecology_ods_172_16_4_142 $DBConnection_fa=htfcrm_yssfa_ods_172_16_4_142 $DBconnection_ips=htfips_ods_ips_172_16_4_143$ParameterFilePath=d:\etlhome\parameter $$ParameterFilePath=d:\etlhome\parameter $ParameterSqlPath=d:\etlhome\sqlfile$$ParameterSqlPath=d:\etlhome\sqlfilemplt_getnextsk.$$schema_dw=ods_dw3mplt_getlastwkdate.$$schema_ods=ods_ods3mplt_getnextwkdate.$$schema_ods=ods_ods3mplt_getnextid.$$schema_ods=ods_ods3mplt_transform_tradetype_selfta.$$schema_ods=ods_ods3mplt_transform_tradetype_subta.$$schema_ods=ods_ods3mplt_change_tradeacco.$$schema_ods=ods_ods3mplt_split_agency.$$schema_ods=ods_ods3mplt_split_agency_ds.$$schema_ods=ods_ods3mplt_src2odsdict.$$schema_ods=ods_ods3mplt_ods2srcdict.$$schema_ods=ods_ods3mplt_get_skregion.$$schema_dw=ods_dw3mplt_tailfee.$$schema_dw=ods_dw3mplt_managerfee.$$schema_dw=ods_dw3mplt_agencyfare.$$schema_dw=ods_dw3mplt_smaflag.$$schema_ods=ods_ods3mplt_split_agency.$$dsagencyno=247$$dsagencyno=247[ods.WF:wf_precond_crm_call]$$srcsys=CC$$dwnframe=3$$condtype=CALL2. 全量加载参数文件示例:[Global]$$schema_downfile=ods_down3$$schema_ods=ods_ods3$$schema_dw=ods_dw3$$schema_crm=htfcrm$$schema_ec=ec$$schema_hec=hec$$schema_subta=subta$$schema_selfta=selfta$$schema_yssfa=yssfa$$schema_yssfa_ods=yssfa_ods$$schema_ysszhfa_ods=ysszhfa25_ods$$schema_ysszhfa=ysszhfa25$$schema_oa=ecology$$schema_ips=ods_ips$$schema_fa=yssfa_ods$$schema_yssfa=yssfa$$schema_ysszhfa=ysszhfa25$DBConnection_crm=htfcrm_htfcrm_ods_172_16_4_142$DBConnection_ods=ods2_ods_ods3_172_16_3_190$DBConnection_dw=ods2_ods_dw3_172_16_3_190$DBConnection_downfile=ods2_ods_down3_172_16_3_190 $DBConnection_subta=htfcrm_hsta_ods_172_16_4_142$DBConnection_selfta=htfcrm_selfta_ods_172_16_4_142$DBConnection_ec=htfcrm_ec_ods_172_16_4_142 $DBConnection_hec=htfcrm_hec_ods_172_16_4_142 $DBConnection_heccdc=htfcrm_hec_cdc_172_16_4_142 $DBConnection_yssfa=htfcrm_yssfa_ods_172_16_4_142 $DBConnection_ysszhfa=htfcrm_ysszhfa25_ods_172_16_4_142 $DBConnection_oa=htfcrm_ecology_ods_172_16_4_142 $DBConnection_fa=htfcrm_yssfa_ods_172_16_4_142 $DBconnection_ips=htfips_ods_ips_172_16_4_143$ParameterFilePath=d:\etlhome\parameter $$ParameterFilePath=d:\etlhome\parameter $ParameterSqlPath=d:\etlhome\sqlfile$$ParameterSqlPath=d:\etlhome\sqlfilemplt_getnextsk.$$schema_dw=ods_dw3mplt_getlastwkdate.$$schema_ods=ods_ods3mplt_getnextwkdate.$$schema_ods=ods_ods3mplt_getnextid.$$schema_ods=ods_ods3mplt_transform_tradetype_selfta.$$schema_ods=ods_ods3mplt_transform_tradetype_subta.$$schema_ods=ods_ods3mplt_change_tradeacco.$$schema_ods=ods_ods3mplt_split_agency.$$schema_ods=ods_ods3mplt_split_agency_ds.$$schema_ods=ods_ods3mplt_src2odsdict.$$schema_ods=ods_ods3mplt_ods2srcdict.$$schema_ods=ods_ods3mplt_get_skregion.$$schema_dw=ods_dw3mplt_tailfee.$$schema_dw=ods_dw3mplt_managerfee.$$schema_dw=ods_dw3mplt_agencyfare.$$schema_dw=ods_dw3mplt_smaflag.$$schema_ods=ods_ods3mplt_split_agency.$$dsagencyno=247$$dsagencyno=247$$batchno=10$$startdate=20090101$$enddate=20100820$$pubtheme=DC[crmdwn.WF:wf_dwn_crm_tcustomerinfochange]$$srcsys=CC$$dwnframe=4$$preserialno=03. 增量加载动态参数文件示例:[Global]$$schema_downfile=ods_down3$$schema_ods=ods_ods3$$schema_dw=ods_dw3$$schema_crm=htfcrm$$schema_ec=ec$$schema_hec=hec$$schema_subta=subta$$schema_selfta=selfta$$schema_yssfa=yssfa$$schema_yssfa_ods=yssfa_ods$$schema_ysszhfa_ods=ysszhfa25_ods$$schema_ysszhfa=ysszhfa25$$schema_oa=ecology$$schema_ips=ods_ips$$schema_fa=yssfa_ods$$schema_yssfa=yssfa$$schema_ysszhfa=ysszhfa25$DBConnection_crm=htfcrm_htfcrm_ods_172_16_4_142$DBConnection_ods=ods2_ods_ods3_172_16_3_190$DBConnection_dw=ods2_ods_dw3_172_16_3_190$DBConnection_downfile=ods2_ods_down3_172_16_3_190$DBConnection_subta=htfcrm_hsta_ods_172_16_4_142$DBConnection_selfta=htfcrm_selfta_ods_172_16_4_142$DBConnection_ec=htfcrm_ec_ods_172_16_4_142$DBConnection_hec=htfcrm_hec_ods_172_16_4_142$DBConnection_heccdc=htfcrm_hec_cdc_172_16_4_142$DBConnection_yssfa=htfcrm_yssfa_ods_172_16_4_142$DBConnection_ysszhfa=htfcrm_ysszhfa25_ods_172_16_4_142 $DBConnection_oa=htfcrm_ecology_ods_172_16_4_142$DBConnection_fa=htfcrm_yssfa_ods_172_16_4_142$DBconnection_ips=htfips_ods_ips_172_16_4_143$ParameterFilePath=d:\etlhome\parameter $$ParameterFilePath=d:\etlhome\parameter $ParameterSqlPath=d:\etlhome\sqlfile $$ParameterSqlPath=d:\etlhome\sqlfilemplt_getnextsk.$$schema_dw=ods_dw3mplt_getlastwkdate.$$schema_ods=ods_ods3mplt_getnextwkdate.$$schema_ods=ods_ods3mplt_getnextid.$$schema_ods=ods_ods3mplt_transform_tradetype_selfta.$$schema_ods=ods_ods3 mplt_transform_tradetype_subta.$$schema_ods=ods_ods3 mplt_change_tradeacco.$$schema_ods=ods_ods3mplt_split_agency.$$schema_ods=ods_ods3mplt_split_agency_ds.$$schema_ods=ods_ods3mplt_src2odsdict.$$schema_ods=ods_ods3mplt_ods2srcdict.$$schema_ods=ods_ods3mplt_get_skregion.$$schema_dw=ods_dw3mplt_tailfee.$$schema_dw=ods_dw3mplt_managerfee.$$schema_dw=ods_dw3mplt_agencyfare.$$schema_dw=ods_dw3mplt_smaflag.$$schema_ods=ods_ods3mplt_split_agency.$$dsagencyno=247$$dsagencyno=247$$batchno=100$$startdate=20100821$$enddate=20100823$$tano=47$$pubtheme=SELFTA[dw.WF:wf_dim_ration_sa_selfta]$$tablename=DIM_RATION_SA[dw.WF:wf_fact_ration_agrmntcount_m_selfta] $$startdate=201006$$enddate=2010084. 通用规范4.1 Informatica文件夹配置登录Informatica Administration Console主页面,在Integration Service服务节点下的“Processes”页配置Informatica文件夹:$PMRootDir: G:\Informatica\PowerCenter8.6.1\server\infa_shared$PMSessionLogDir: $PMRootDir/SessLogs$PMBadFileDir: $PMRootDir/BadFiles$PMCacheDir: $PMRootDir/Cache$PMTargetFileDir: $PMRootDir/TgFiles$PMSourceFileDir: $PMRootDir/SrcFiles$PMExtProcDir: ./ExtProc$PMTempDir: $PMRootDir/Temp$PMWorkflowLogDir: $PMRootDir/WorkflowLogs$PMLookupFileDir: $PMRootDir/LkpFiles$PMStorageDir: $PMRootDir/Storage上述变量中:✧$PMRootDir:Informatica工作文件的根目录,建议将此目录调整到用户自定义目录下✧$PMSessionLogDir:Informatica Session运行日志存储目录✧$PMBadFileDir:Informatica Session运行被拒绝错误数据存储目录✧$PMCacheDir:Informatica缓存文件目录✧$PMTargetFileDir:Informatica 目标文件存储目录✧$PMSourceFileDir:Informatica源文件存储目录✧$PMTempDir:Informatica临时文件存储目录✧$PMWorkflowLogDir:Informatica workflow运行日志文件存储目录✧$PMLookupFileDir:Informatica Lookup生成文件存储目录4.2 操作系统文件夹配置对于用到的Unix/Windows文件夹(备份文件夹、源文本下载文件夹、数据库数据文件存储文件夹等),需要向管理员申请开立。