Informatica PowerCenter平台ETL开发规范

Informatica PowerCenter平台ETL开发规范
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调度平台实现。

3. 环境介绍

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\sqlfile

mplt_getnextsk.$$schema_dw=ods_dw3

mplt_getlastwkdate.$$schema_ods=ods_ods3

mplt_getnextwkdate.$$schema_ods=ods_ods3

mplt_getnextid.$$schema_ods=ods_ods3

mplt_transform_tradetype_selfta.$$schema_ods=ods_ods3

mplt_transform_tradetype_subta.$$schema_ods=ods_ods3

mplt_change_tradeacco.$$schema_ods=ods_ods3

mplt_split_agency.$$schema_ods=ods_ods3

mplt_split_agency_ds.$$schema_ods=ods_ods3

mplt_src2odsdict.$$schema_ods=ods_ods3

mplt_ods2srcdict.$$schema_ods=ods_ods3

mplt_get_skregion.$$schema_dw=ods_dw3

mplt_tailfee.$$schema_dw=ods_dw3

mplt_managerfee.$$schema_dw=ods_dw3

mplt_agencyfare.$$schema_dw=ods_dw3

mplt_smaflag.$$schema_ods=ods_ods3

mplt_split_agency.$$dsagencyno=247

$$dsagencyno=247

[ods.WF:wf_precond_crm_call]

$$srcsys=CC

$$dwnframe=3

$$condtype=CALL

2. 全量加载参数文件示例:

[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\sqlfile

mplt_getnextsk.$$schema_dw=ods_dw3

mplt_getlastwkdate.$$schema_ods=ods_ods3

mplt_getnextwkdate.$$schema_ods=ods_ods3

mplt_getnextid.$$schema_ods=ods_ods3

mplt_transform_tradetype_selfta.$$schema_ods=ods_ods3

mplt_transform_tradetype_subta.$$schema_ods=ods_ods3

mplt_change_tradeacco.$$schema_ods=ods_ods3

mplt_split_agency.$$schema_ods=ods_ods3

mplt_split_agency_ds.$$schema_ods=ods_ods3

mplt_src2odsdict.$$schema_ods=ods_ods3

mplt_ods2srcdict.$$schema_ods=ods_ods3

mplt_get_skregion.$$schema_dw=ods_dw3

mplt_tailfee.$$schema_dw=ods_dw3

mplt_managerfee.$$schema_dw=ods_dw3

mplt_agencyfare.$$schema_dw=ods_dw3

mplt_smaflag.$$schema_ods=ods_ods3

mplt_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=0

3. 增量加载动态参数文件示例:

[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\sqlfile

mplt_getnextsk.$$schema_dw=ods_dw3

mplt_getlastwkdate.$$schema_ods=ods_ods3

mplt_getnextwkdate.$$schema_ods=ods_ods3

mplt_getnextid.$$schema_ods=ods_ods3

mplt_transform_tradetype_selfta.$$schema_ods=ods_ods3 mplt_transform_tradetype_subta.$$schema_ods=ods_ods3 mplt_change_tradeacco.$$schema_ods=ods_ods3

mplt_split_agency.$$schema_ods=ods_ods3

mplt_split_agency_ds.$$schema_ods=ods_ods3

mplt_src2odsdict.$$schema_ods=ods_ods3

mplt_ods2srcdict.$$schema_ods=ods_ods3

mplt_get_skregion.$$schema_dw=ods_dw3

mplt_tailfee.$$schema_dw=ods_dw3

mplt_managerfee.$$schema_dw=ods_dw3

mplt_agencyfare.$$schema_dw=ods_dw3

mplt_smaflag.$$schema_ods=ods_ods3

mplt_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=201008

4. 通用规范

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文件夹(备份文件夹、源文本下载文件夹、数据库数据文件存储文件夹等),需要向管理员申请开立。

4.3 Session配置项

Session在运行时会根据预先的配置参数进行处理,在Informatica中同一文件夹下的多个session 可以共享同一个配置,在Workflow Manager中通过“task”菜单下的“Session Configuration”子菜单可以创建、修改和删除配置模板。

这些配置模板包括内存选项、日志选项、出错处理等方面的参数,这里需要调整出错处理选项中的“Stop On Errors”参数为“1”,即session运行一旦出错就停止。

4.4 Informatica用户配置

根据ETL开发用户在Informatica Administration Console中创建用户、创建角色以及用户权限分配。

按角色划分,项目中需要设置三种角色:管理员、开发人员、操作员三种角色的用户,对于ETL 开发人员一般授予PowerCenter Developer PowerCenter Operator和角色,其他角色用户根据项目要求配置。

4.5 ETL转换规则说明

在ETL开发之前,ETL开发人员需要准备好源到目标的转换映射规则说明文档,可以从设计人员获取源与目标的转换与映射规则。

一般而言,ETL开发人员评估工作量可遵循以下原则:

简单Mapping – 0.5~1 人天/个

中等复杂Mapping – 1.5 ~2人天/个

复杂Mapping – 3~4 人天/个

4.6 从平面文件导入数据

在对平面文件做任何转换处理前,一个好的办法是先将平面文件抽取到临时表中,然后再基于临时表做处理。

但需要注意以下几点:

?一般从平面文件读取字符型数据时需要使用ltrim和rtrim函数去除左右空格(但如果空格字符

有意义,则不能去除)

?使用Upper函数将字符型数据转为大写,但需要确定数据对大小写是不敏感的(即数据是不

区分大小写的)

?如果从固定分隔符分隔的结构化平面文件,必须使用在数据本身不会存在的字符作为分隔

符,应该避免使用逗号做分隔符,“~”就是不错的分隔符

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无法自动清理日志。

4.11 出错处理与通知

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

5. 命名规范

5.1 概述

转换组件的命名应该是自解释的,并接尽可能体现组件在mapping中的作用和目的,其命名中的功能描述使用首字母大写的英文单词缩写拼接而成,并且应避免使用“_”字符,例如:FLT_TransAmtGreaterThan0名称是个不错的命名,而FLT_Trans_Amt_Greater_Than_0命名则比较糟糕。

5.2 Folder

_

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

5.3 Mapping

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

Mapping可以按以下格式命名:

m___

说明:

1)m :对象类型,m表示mapping

2)CallLetter:应用简写

3)ProjAbbr:项目名称缩写

4)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)s :对象类型,s代表session

2)Mapping_Name:mapping名称

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

许高精度计算)。

5.5 Workflow

wf___

说明:

1)wf :对象类型,wf代表workflow

2)CallLetter:应用简写

3)ProjAbbr:项目名称缩写

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

5.6 Source Definition

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

入表定义,它通常是mapping最左边的组件。

关系数据库:采用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

相关主题