Informatica PowerCenter平台ETL开发规范

更新时间:2023-12-01 16:25:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Informatica PowerCenter平台 ETL开发规范 January 12, 2010

广州安正软件科技有限公司

BusinessMatrix Information System Corporation.

Informatica PowerCenter平台 ETL开发规范 文档历史记录

变更历史

最后更新时间: 2014-03-31 版本 V1.0 更新日期 2010-09-19 作者 孙承佼 变更描述 创建全文 审 阅

姓名 角色 审阅章节 意见与签名 分 发

Name Role

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 2 of 36

Informatica PowerCenter平台 ETL开发规范 文 档 目 录

1. 文档介绍 ................................................................................................................................................... 5 1.1 1.2 1.3 1.4 1.5

文档目的 ........................................................................................................................................... 5 适用范围 ........................................................................................................................................... 5 文档读者 ........................................................................................................................................... 5 参考文献 ........................................................................................................................................... 5 术语与缩写解释 ............................................................................................................................... 5

2. POWERCENTER平台介绍 ................................................................................................................... 6 3. 环境介绍 ................................................................................................................................................... 7 3.1 3.2 3.3 3.4 3.5 3.6 3.7

概述 ................................................................................................................................................... 7 开发环境 ........................................................................................................................................... 7 测试环境 ........................................................................................................................................... 7 生产环境 ........................................................................................................................................... 7 数据库账号 ....................................................................................................................................... 7 数据连接 ........................................................................................................................................... 8 参数文件 ........................................................................................................................................... 8

4. 通用规范 ................................................................................................................................................. 14 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11

INFORMATICA文件夹配置 ............................................................................................................... 14 操作系统文件夹配置 ..................................................................................................................... 14 SESSION配置项 ................................................................................................................................ 15 INFORMATICA用户配置 ................................................................................................................... 15 ETL转换规则说明 .......................................................................................................................... 15 从平面文件导入数据 ..................................................................................................................... 15 从数据库导入数据 ......................................................................................................................... 16 从数据库导入数据结构 ................................................................................................................. 16 注释 ................................................................................................................................................. 16 日志文件 ......................................................................................................................................... 16 出错处理与通知 ............................................................................................................................. 17

5. 命名规范 ................................................................................................................................................. 18 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18

概述 ................................................................................................................................................. 18 FOLDER ............................................................................................................................................ 18 MAPPING .......................................................................................................................................... 18 SESSION ............................................................................................................................................ 19 WORKFLOW ..................................................................................................................................... 19 SOURCE DEFINITION ........................................................................................................................ 19 TARGET DEFINITION ........................................................................................................................ 20 AGGREGATOR .................................................................................................................................. 20 EXPRESSION ..................................................................................................................................... 21 FILTER .............................................................................................................................................. 21 JOINER .............................................................................................................................................. 21 LOOKUP ............................................................................................................................................ 21 NORMALIZER ................................................................................................................................... 22 RANK ............................................................................................................................................... 22 ROUTER ............................................................................................................................................ 22 SEQUENCE GENERATOR ................................................................................................................... 22 SORTER ............................................................................................................................................ 23 SOURCE QUALIFIER .......................................................................................................................... 23

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 3 of 36

Informatica PowerCenter平台 ETL开发规范 5.19 STORED PROCEDURE ........................................................................................................................ 23 5.20 UPDATE STRATEGY .......................................................................................................................... 23 5.21 MAPPLET .......................................................................................................................................... 24 5.22 INPUT TRANFORMATION ( MAPPLET ONLY) .................................................................................... 24 5.23 OUTPUT TRANFORMATION ( MAPPLET ONLY) ................................................................................. 25 5.24 DATABASE CONNECTIONS ............................................................................................................... 25 5.25 FTP CONNECTIONS .......................................................................................................................... 25 6. 常用SQL知识介绍 ................................................................................................................................. 25 6.1 6.2 6.3 6.4

NOT IN与MINUS ........................................................................................................................... 25 多表连接中的条件限制(WHERE AND ON) ........................................................................... 25 游标尽量少使用 ............................................................................................................................. 27 异常捕捉 ......................................................................................................................................... 27

7. SQL编写规范 ......................................................................................................................................... 27 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8

原则定义 ......................................................................................................................................... 27 大小写规则 ..................................................................................................................................... 28 缩进与换行 ..................................................................................................................................... 28 别名 ................................................................................................................................................. 29 运算符前后间隔要求 ..................................................................................................................... 29 变量引用 ......................................................................................................................................... 30 注释 ................................................................................................................................................. 30 其它 ................................................................................................................................................. 31

8. 脚本编写规范 ......................................................................................................................................... 31 8.1 8.2

ULTRAEDIT ...................................................................................................................................... 31 SHELL ............................................................................................................................................. 32

9. ETL开发流程 ......................................................................................................................................... 32 9.1 9.2 10. 11. 12.

ETL开发流程 .................................................................................................................................. 32 文档编写要求 ................................................................................................................................. 32 版本控制 ............................................................................................................................................. 33 ETL程序迁移 ..................................................................................................................................... 34 环境准备过程 ..................................................................................................................................... 34 创建用户 ......................................................................................................................................... 34 开发环境准备 ................................................................................................................................. 34 测试环境准备 ................................................................................................................................. 35 生产环境资准备 ............................................................................................................................. 35

12.1 12.2 12.3 12.4 13.

性能调优 ............................................................................................................................................. 35

13.1 INFORMATICA性能调优步骤 ........................................................................................................... 35 13.2 聚合 ................................................................................................................................................. 35 13.3 其他 ................................................................................................................................................. 36

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 4 of 36

Informatica PowerCenter平台 ETL开发规范 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 术语与缩写解释

无。

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 5 of 36

Informatica PowerCenter平台 ETL开发规范 4.7 从数据库导入数据

Mapping在设计时总是希望每次仅抽取自上次抽取以来发生变化的数据,对于从同一数据库多张数据表Join抽取数据的操作可以在一个source qualifier组件中通过SQL Join方式抽取数据,而不是通过Joiner组件join表。如果这些数据表不在同一个数据库则需要先将数据表复制到本地数据然后在一个source qualifier组件抽取。

注意:严格禁止使用DBLink跨数据库拼接数据表的做法。

4.8 从数据库导入数据结构

在从Oracle数据库中抽取多个用户下的数据表结构时会遇到问题,因为Informatica不支持同时读取多个用户下的数据表。为解决这个问题,可以将多个用户下的数据表建在一个测试账号下,然后从测试账号下导入所需的表结构定义。

为了规范从数据库导入源数据结构定义,如无特别要求,在导入源数据结构定义时ODBC名称需使用“<源系统英文简称>”。

4.9 注释

一个好的ETL程序不仅仅只包括代码还应该包括正确的注释,这不仅仅有助于在生产环境程序抛出错误异常时便于维护人员解决问题也是为了在资料库最大限度的保存ETL元数据。

? 资源库每个文件夹Comment必须包含项目名称和项目经理名称

? 每个Mapping、Session、Worklet、Workflow的描述框中必须有注释,用于说明功能用途 ? 每个转换组件的描述框中必须有注释,用于说明组件的用途和目的 ? 如果转换组件涉及业务规则,则需要在注释框中说明

? 转换组件每个新建输出端口和变量端口的描述框中都必须有注释,用于说明其目的和用途

4.10 日志文件

Session每次运行都会生成一个日志文件,默认情况下,日志文件是以session名称+“.log”命名的,对于同一个session在多个workflow中引用的情形,要确保session的名称不同。

Informatica中日志文件生成有两种方式,一种是按运行次数,一种是按时间戳方式,默认是按运行次数命名日志文件,不同的是按运行次数生成日志可以限制只保留最近n次的日志,但按时间戳方式生成日志则Informatica无法自动清理日志。

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 16 of 36

Informatica PowerCenter平台 ETL开发规范 4.11 出错处理与通知

在imatrix调度平台实现ETL出错通知。

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 17 of 36

Informatica PowerCenter平台 ETL开发规范 5. 命名规范

5.1 概述

对象类型 Folder Mapping Session Workflow Source Definition Target Definition Aggregator Expression Filter Joiner Lookup Normalizer Rank Router Sequence Generator Sorter Source Qualifier Stored Procedure Update Strategy Mapplet 命名约定 _ m___ s_ wf___ src_ tgt_ AGG_ EXP_ FLT_ JNR_ LKP_ NRM_ RNK_ RTR_ SEQ_ SRT_ SQ_ STP__ UPD__ MPLT_ wklt___ INP_ OUT_ <数据库实例>_<用户名>_<数据库服务器IP地址> FTP__<用户名> Worklet Input Transformation Output Tranformation Database Connections FTP Connections 说明: 转换组件的命名应该是自解释的,并接尽可能体现组件在mapping中的作用和目的,其命名中的功能描述使用首字母大写的英文单词缩写拼接而成,并且应避免使用“_”字符,例如:

FLT_TransAmtGreaterThan0名称是个不错的命名,而FLT_Trans_Amt_Greater_Than_0命名则比较糟糕。

5.2 Folder

_

例如:ODS_HTFDC,其中ODS表示此文件夹存放ODS转换程序,HTFDC为项目简称。

5.3 Mapping

Mapping是Informatica对象体系树中最高层次的对象,包含了所有用于支持数据抽取、转换的组件对象,其命名应能体现所有对象用途,因此其命名比较困难。

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 18 of 36

Informatica PowerCenter平台 ETL开发规范 Mapping可以按以下格式命名:

m___

说明:

1) 2) 3) 4)

注意:

m :对象类型,m表示mapping CallLetter:应用简写 ProjAbbr:项目名称缩写

Purpose:mapping用途英文描述

例如:m_crmdwn_hftdc_dly_load_shr

? Mapping各组件尽量不要有多余的字段,没有向下流出的字段尽量删除。

? 只属于Input型的字段,应去除其O选项;同样只属于Output型的字段,去除其I选项。 ? 组件中出现需计算的数值字段,其输入默认值设为0(Default Value),除非特别要求,这

些字段类型大小统一改为Decimal (20,6),由于计算的精度不同会造成数值得高精度误

差,故统一计算精度大小,可以避免该错误发生。

? SEQ模块在作为公用模块时,即Make Reusable时,设置其Number of Cached Values为1。 ? 汇总模块的数据输入最好在之前放一个排序模块对数据进行先排序,并选中汇总模块的

Sorted Input选项。 ? ETL过程产生的Temp表,应在完成后及时删除。

5.4 Session

s_

1) 2) s : 对象类型, s代表 session Mapping_Name:mapping名称

注意:如果Mapping中存在数值计算,则需要在其Session的属性页选中Enable high precision(允许高精度计算)。

5.5 Workflow

wf___

说明:

1) 2) 3) 4)

wf :对象类型,wf代表workflow CallLetter:应用简写 ProjAbbr:项目名称缩写

ShortDescription – workflow功能和用途英文描述.

5.6 Source Definition

Source Definition组件用于提供数据库物理表的逻辑结构定义,可以通过Source-“导入”菜单导入表定义,它通常是mapping最左边的组件。

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 19 of 36

Informatica PowerCenter平台 ETL开发规范 关系数据库:采用ODBC方式读入元数据,且元数据放置位置与ODBC命名有关,本地ODBC命名需与服务器相同。对于各用户,ODBC命名采用:用户名_SOURCE(例:MM_SOURCE)。ODBC须采用与服务器相同的版本。Oracle客户端也须与服务器采用相同版本。

文本文件:采用Flat文件导入方式,Flat文件的规范为,第一行为各字段名,第二行开始为数据,各数据间使用分隔符。文本文件的服务器位置,在服务器上分别建立各模块文件夹,各文本文件按模块放置于相应的文件夹内,文本文件命名为目标表名。

Source Definition组件命名需遵循: src_

说明:

Source Table Name:按照XY__格式命名,其中XY = TB (数据表)、FF(平面文件)、CB(Cobol文件)。例如:TB_DW_TRANSACTION, FF_OPERATING_PLAN

5.7 Target Definition

Target Definition组件用于提供数据仓库/数据集市中物理表和文件的逻辑定义,可以通过Target-“导入”菜单导入表定义,它通常是mapping最右边的组件。

Target导入存在同样的三种方式:关系数据库、文本文件、XML文件。Target的元数据管理与Source方式有所不同,其统一放置于Targets下,与本地ODBC命名无关,需要导入的目标表名唯一。

Target Definition组件命名需遵循: tgt_ 说明:

Target Table Name:按照XY__格式命名,其中XY = TB (数据表)、FF(平面文件)、CB(Cobol文件)。例如:TB_DWDEV_TRANSACTION, FF_OPERATING_PLAN

5.8 Aggregator

Aggregator组件用于可加性指标的汇总计算,这些汇总计算是基于分组进行的,而不像Expression组件中的逐行计算。应该尽可能不用此组件,因为在Informatica中此组件的汇总计算性能比数据库SQL Group By汇总差,建议尽可能在Source Qualifier组件中使用SQL方式汇总。

其命名遵循: AGG_

例如:AGG_SUM_OF_TRANS_AMT、AGG_DISTINCT_ORDERS

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 20 of 36

Informatica PowerCenter平台 ETL开发规范 5.9 Expression

Expression组件用于计算、创建、修改数据以及在数据流中设置和创建变量(不同记录间变量值不会丢失),此组件还可以在Transformation设计区封装成可重用组件。

Expression组件可以在Mapping中编辑和修改,可以创建输入、输出、变量三种不同的端口,Informatica处理Expression组件总是按输入端口、变量不按口、输出端口的顺序计算,但需要注意的是变量端口在组件中的顺序会影响变量端口的计算先后顺序。

Expression组件端口命名需要遵循:

1) 变量端口需以”v_”为前缀,并紧接着数据类型简称:

? 字符型数据:v_char//v_vchar/v_vchar2/v_text ? 数值型数据: v_num/v_float/v_dec/v_real ? 整型数据-:v_int/v_sint ? 日期型数据:v_date 2) 新建输出端口以“o_”为前缀:

如端口涉及对字符数据的操作处理,其端口命名需体现数据操作,例如:o_conc_custname 如端口涉及数值型数据处理,其端口命名需体现数据操作,例如:sum_alltaxes Expression组件命名应遵循: EXP_

例如:EXP_TRIM_COLS、EXP_DECODE_GEOG_ID

5.10 Filter

Filter组件用于在mapping中按过滤表达式的True/False结果过滤数据,为提高性能,如需过滤数据,在mapping中应尽可能将此组件放在数据流的靠前位置。

Filter组件命名遵循: FLT_

例如:FLT_STOP_OLD_RECS、FLT_GEO_ID、FLT_GeoidGreaterThan0等

5.11 Joiner

Joiner组件用于连接两张位于不同物理位置的数据源表或文件,一个最常见的情形是连接关系型数据表和平面文件。

Joiner组件命名需遵循: JNR_ 例如:JNR_TRANX

5.12 Lookup

Lookup组件用于根据输入组件传入的条件查找数据库返回需要的数据,并可以传递到后续组件。

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 21 of 36

Informatica PowerCenter平台 ETL开发规范 Lookup组件有两种用法:connected/ unconnected,connected场景下,Lookup组件需要连接到数据流中的其他组件,而在unconnected场景下,Lookup组件没有连接到任何组件。

Lookup组件unconnected用法,往往都是出于性能考虑,但是需要注意的是unconnected Lookup组件只能返回一个值。

Lookup组件输入端口应以“i_”为前缀,输出端口以“o_”为前缀,需要注意的是此组件中端口的数据类型如需修改则应在其前一组件中修改,而不应在本组件中修改。

? 端口数据类型不匹配是Lookup组件出错的的常见错误,为避免此类型错误,要确保参与比较的端口数据类型一致。

? 如果需要手工改写Lookup组件自动生成的SQL语句,需要注意自动生成的字段顺序不能改

变,并且如果要使用数据库排序,要在语句末尾加“--”字符 Lookup组件命名需要遵循: LKP_ 例如:LKP_TRANSACTION

5.13 Normalizer

Normalizer组件用于实现列转行,比较常见的情形是将结构化数据(例如:平面文件)转成关系型数据。

Normalizer组件命名需要遵循: NRM_

例如:Norm_OS_TRANS_DAILY

5.14 Rank

Rank组件用于对指定数据集排序以只返回前/后 n条记录,例如:按销售业绩对销售经理进行排名,只返回前10名的记录。

Rank组件命名需要遵循: RNK_

例如:RNK_TopTenCustbySales

5.15 Router

RTR_

例如:RTR_GeoidGreaterThan0

5.16 Sequence Generator

Sequence Generator组件用于生成整形序列值 ,一个典型的应用时生成维度代理键。从性能上看Sequence Generator组件比数据库序列的性能较差。

Sequence Generator组件命名遵循:

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 22 of 36

Informatica PowerCenter平台 ETL开发规范 SEQ_

例如:SEQ_RATION

5.17 Sorter

Sorter组件只包含输入和输出端口,输入数据按指定的排序字段排序,排序字段可以是一个或多个输入端口。

Sorter组件命名需遵循: SRT_ 例如:SRT_CUSTOMER_DATA

5.18 Source Qualifier

Source Qualifier组件用于定义数据流输入SQL语句(可以是PL/SQL 、T-SQL,不同数据库平台SQL语法规范或有不同),在自定义SQL输入框中可以指定SQL Join、排序、Group By以及其他条件过滤语句。

需要注意的是,尽可能少在组件提供的“Source Filter”限定过滤条件,应尽可能在“sql query”输入框里指定。

Source Qualifier组件命名需遵循: SQ_ 例如:SQ_TRANSACTION

说明:这里的SQL语句必须符合SQL编写规范。

5.19 Stored Procedure

Stored Procedure组件用于在Informatica数据流中调用外部数据库存储过程/函数执行数据转换,例如全角转半角、半角转全角等。尽可能限制使用存储过程实现转换处理,因为存储过程的引入使得mapping难以调试且会降低代码的可读性。

一般来讲,建议将在Informatica中无法实现和难以实现的处理逻辑才依靠外部存储过程/函数实现,摒弃在存储过程/函数实现所有的处理逻辑的做法。

Stored Procedure组件命名应遵循:

STP__ 例如:STP_DWDEV_Calc_Commissio

5.20 Update Strategy

Update Strategy组件用于标识数据流是以插入、删除、更新、拒绝中的哪一种方式输出到数据表中,需要注意的是应尽可能避免使用reject选项,因为此选项会导致大的日志文件生成。

Update Strategy组件命名应遵循:

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 23 of 36

Informatica PowerCenter平台 ETL开发规范 UPD__xxx

说明:xxx = _ins for INSERT

_dlt for DELETE _upd for UPDATE

_dyn – dynamic (根据表达式取值动态决定更新方式)

使用此组件,update Strategy Expression输入框中禁止直接使用数字,而应使用Informatica内置变量代替:

0 – dd_insert 1- dd_delete 2 –dd_update 3-dd_reject

例如:UPD_TRANSACTION_upd

5.21 Mapplet

Mapplets通常用于封装复杂的转换逻辑尤其是需要使用到多个转换组件时,主要出于重用的目的。Mapplet一旦定义好,可以在多个mapping中复用,这样一旦需要修改规则,仅需要修改mapplet即可,而关联的mapping则不需要修改。

为了实现Mapplet的可重用性,在设计Mapplet时需要指定输入和输出端口,但这些端口仅是mapping中调用的逻辑接口表示。在Mapplet中使用的各种转换组件需要遵循之前约定的规则,但唯一的例外是如果mapplet在多个集市项目中需要共享,不要限定项目名称。

这里需要强调一下,在设计mapplet时一定要详细说明输入和输出端口的描述、mapplet的功能说明。

Mapplet组件命名应遵循: MPLT_

例如:MPLT_SPLIT_ESTIMATES

5.22 Input Tranformation ( Mapplet Only)

Input组件用于在Mapplet组件中定义输入端口,允许mapping中的数据流可以流入mapplet组件,与此组件对应的是下一节要提及的Output组件。

Input组件命名应遵循:

INP_ 例如:INP_APJournalEntries

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 24 of 36

Informatica PowerCenter平台 ETL开发规范 5.23 Output Tranformation ( Mapplet Only)

Output组件用于在Mapplet组件中定义输出端口,允许mapplet中的数据流可以流出,与此组件对应的是上一节要提及的Input组件。

Output组件命名应遵循:

OUT _ 例如:OUT_ValidJournalEntries

5.24 Database Connections

<数据库实例>_<用户名>_<数据库服务器IP地址> 例如:ODS2_ODS_ODS_172_16_3_190

5.25 FTP Connections

FTP__<用户名> 例如:FTP_172_16_13_102_GUEST

6. 常用SQL知识介绍

6.1 NOT IN与MINUS

NOT IN和MINUS是在数据仓库的SQL中是经常使用的语句,但经常发生使用错误。主要是NULL惹的祸。参与比较的双方,只要有一方为NULL,比较的结果就只能是未知。

请大家记住,使用NOT IN时,在两个运算集合中不可以有NULL出现。使用MINUS时,可以允许NULL出现。

但从性能上考虑,NOT IN要比MINUS要快很多。

所以在使用时,如果你发现要比较的运算集合中每个字段都是非空(NOT NULL),建议使用NOT IN,如果你不确定是否都是非空,建议使用MINUS,会比较保险一些。

6.2 多表连接中的条件限制(WHERE AND ON)

对于内连接来说,使用where/and/on对连接条件进行限制,其结果都是一样的。对于外连接来讲,其结果就大不相同了。AND是对连接前的各个表进行限制,WHERE是对连接之后的结果集进行限制。大家可以仔细体会下面几个例子:

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 25 of 36

Informatica PowerCenter平台 ETL开发规范

2. 程序体注释,应说明以下几项:

? 变量声明区 ? 变量初始化区 ? 主程序开始 ? 垃圾回收区

7.8 其它

对于内连接和外连接的使用,要求该使用外连接的地方都已经使用了外连接,不需要外连接的地方一定不使用外连接。

表中的字段若是从其它表引用的,要确保该字段在被引用的表中存在。 此外,SQL代码中禁止使用 *,必须明确具体字段列表。

8. 脚本编写规范

8.1 UltraEdit

编写SQL 。

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 31 of 36

Informatica PowerCenter平台 ETL开发规范 8.2 SHELL

9. ETL开发流程

9.1 ETL开发流程

ETL的开发通常会以PDM的一个表或几个相关表为单位,我们称之为JOB。每一个JOB的开发通常会包含以下步骤:

1) 编写加载说明文档(包括MAPPING文档) 2) 开发初始与日常加载脚本 3) 测试初始与日常加载脚本 4) 编写测试报告

加载说明文档的模板和测试报告的模板因项目而异,格式可以参考每个项目具体的文档模板。 开发时最好以JOB为单位,由易到难,一个JOB结束以后再着手开发下一个JOB。当第一个JOB开发完成之后,由ETL相关负责人员确认文档、脚本等都没有问题以后,再进行下一个JOB的开发。

对于JOB的开发,实行“终身版权制”,在项目结束之前,只要开发人员还在项目中,其开发的JOB出现问题,开发人员拥有最终的解释权,并负责解决出现的问题。

9.2 文档编写要求

必须在文档中注明初始开发人员与日期、每次变更的人员、变更内容及日期。

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 32 of 36

Informatica PowerCenter平台 ETL开发规范 开发说明中既要详细说明每一步处理过程,也要概括说明总体的处理思路,用来和具体的处理步骤进行验证。

要说明源数据来自哪个地市、哪个源系统,数据转换的具体过程,包括对数据的所作的转换,所采用的具体方法等,说明对源数据所作的清洗。

10. 版本控制

虽然Informatica提供了Version Control功能,但其版本控制功能是以folder为单位的而不是以Mapping为单位,因此无法对单个mapping进行版本控制。基于这一点,不使用Informatica提供的version Control功能进行版本控制,而使用SVN进行版本控制。

以下是基于Informatica平台开发需要遵循的版本控制流程:

从SVN检出XML文件(加锁) 开发Mapping等对象 导出Mapping等对象到XML文件 将XML文件提交到SVN(释放锁)

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 33 of 36

Informatica PowerCenter平台 ETL开发规范 11. ETL程序迁移

使用Informatica Repository Manager导入和导出功能进行ETL程序迁移,需要检查的项目详见以下文档:

Informatica上线检查清单.xls

在进行程序发布时,当设计到程序覆盖时,需要注意:

? Mapping改动后,可以直接覆盖,但需要检查引用到它的Session是否失效,如果失效,应进

行Validate。 ? Mapping覆盖时,注意其中包括的Seq值,不能覆盖目标。

? 公用模块、Source、Target的导入,将会影响到引用到它们的所有对象(将会造成大部分对

象失效),所以需要特别谨慎。如果确认需要导入,则在导入后,需要进入系统,找出所有失效对象,进行Validate。 ? 一般不需要覆盖的对象,在导入时选择Reuse。 ? 新发布的Mapping,需要将其Seq的初始值改为1。

12. 环境准备过程

12.1 创建用户

根据项目经理要求,在Informatica管理控制台为ETL开发人员、测试人员开立账号,并授予权限。

12.2 开发环境准备

在准备Informatica开发环境之前,要完成以下准备: ? 源数据库环境(包括开发数据) ? 目标数据库环境

? 源/目标数据库ODBC数据连接 ? Informatica开发环境资料库账号 然后按以下步骤:

? 安装Informatica服务器软件

? 配置用于开发的Integration Service和Repository服务,并进行用户权限分配 ? 连接到开发资料库服务,创建项目文件夹 ? 在workflow manager中配置数据连接

? 部署etl运行参数文件,并根据开发环境修改其中的参数取值

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 34 of 36

Informatica PowerCenter平台 ETL开发规范 12.3 测试环境准备

同开发环境流程类似。

12.4 生产环境资准备

同开发环境流程类似。

13. 性能调优

13.1 Informatica性能调优步骤

性能调优的目标是通过解决session运行过程中的性能瓶颈而实现性能优化,为了进行性能优化,首选需要确定性能瓶颈,然后再逐一解决,直到性能优化效果达到预期目标。

最常见的性能瓶颈存在于Informatica写目标数据库过程,可以按照以下步骤来调优: ? 运行测试Session

编制一个测试mapping,将源改为文本文件或者目标改为文本文件以确定性能瓶颈在源输入和目标输出。

? 收集Session运行性能数据

通过打开Session性能收集开关,采集Session运行期间的输入和输出指标。 ? 监控系统性能指标

通过操作系统层面的性能指标监控,采集CPU使用、IO读写、内存使用、分页等指标,确定瓶颈位置。

一旦确定了session性能瓶颈所在,可以按以下步骤解决这些瓶颈:

? 使用数据库管理员账号调整数据库网络包大小、增加内存、调整索引和主键等 ? 在mapping中调整数据流逻辑和转换组件属性 ? 优化session属性配置,包括增加内存大小等

? 系统管理员通过收集的性能监控工具提高CPU、内存、IO和网络的性能

在通过上述步骤解决性能瓶颈后,在系统硬件资源有富余的情况下,还可以通过对session增加分区提高性能。

13.2 聚合

在数据仓库中,通过聚合表可以大幅度提高前端查询和报表的查询性能,因此聚合表也是性能优化的重要一个方面。

在Oracle平台,聚合表的实现有两种方法: ? 物化视图

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 35 of 36

Informatica PowerCenter平台 ETL开发规范 ? 汇总表

13.3 其他

通过上述两节内容无法对Informatica性能调优做出一个全面的阐述,更详细的内容请参考《INFORMATICA 调优要点(初级).pdf》、《INFORMATICA 调优要点(中级).pdf》、《INFORMATICA 调优要点(高级).pdf》、《INFORMATICA 调优要点(其他).pdf》文档。

BusinessMatrix Information System Corporation 2006 March 31, 2014

Page: 36 of 36

本文来源:https://www.bwwdw.com/article/0d2t.html

Top