Informatica PowerCenter平台 ETL开发规范 5. 命名规范
5.1 概述
对象类型 Folder Mapplet Mapping Session Workflow Worklet Source Definition Target Definition Aggregator Expression Filter Joiner Lookup Normalizer Rank Router Sequence Generator Sorter Source Qualifier Stored Procedure Update Strategy Mapplet 命名约定
FLT_TransAmtGreaterThan0名称是个不错的命名,而FLT_Trans_Amt_Greater_Than_0命名则比较糟糕。
5.2 Folder
例如:ODS_GLDP,其中ODS表示此文件夹存放ODS转换程序,GLDP为项目简称。
Page: 21 of 39
Informatica PowerCenter平台 ETL开发规范 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 Mapplet
Mapplet命名格式:
mplt_
说明:
1)mplt :对象类型,mplt表示mapplet 2)CallLetter:应用简写 3)ProjAbbr:项目名称缩写
4)Purpose:mapping用途英文描述
5.5 Session
s_ 1)s : 对象类型, s代表 session 2)Mapping_Name:mapping名称 Page: 22 of 39 Informatica PowerCenter平台 ETL开发规范 注意:如果Mapping中存在数值计算,则需要在其Session的属性页选中Enable high precision(允许高精度计算)。 5.6 Worklet wflt_ 说明: 1)wflt :对象类型,wflt代表worklet 2)CallLetter:应用简写 3)ProjAbbr:项目名称缩写 4)ShortDescription – worklet功能和用途英文描述. 5.7 Workflow wf_ 说明: 5)wf :对象类型,wf代表workflow 6)CallLetter:应用简写 7)ProjAbbr:项目名称缩写 8)ShortDescription – workflow功能和用途英文描述. 5.8 Source Definition Source Definition组件用于提供数据库物理表的逻辑结构定义,可以通过Source-“导入”菜单导入表定义,它通常是mapping最左边的组件。 关系数据库:采用ODBC方式读入元数据,且元数据放置位置与ODBC命名有关,本地ODBC命名需与服务器相同。对于各用户,ODBC命名采用:用户名_SOURCE(例:MM_SOURCE)。ODBC须采用与服务器相同的版本。Oracle客户端也须与服务器采用相同版本。 文本文件:采用Flat文件导入方式,Flat文件的规范为,第一行为各字段名,第二行开始为数据,各数据间使用分隔符。文本文件的服务器位置,在服务器上分别建立各模块文件夹,各文本文件按模块放置于相应的文件夹内,文本文件命名为目标表名。 Source Definition组件命名需遵循: src_ 说明: Source Table Name:按照XY_ Page: 23 of 39 Informatica PowerCenter平台 ETL开发规范 5.9 Target Definition Target Definition组件用于提供数据仓库/数据集市中物理表和文件的逻辑定义,可以通过Target-“导入”菜单导入表定义,它通常是mapping最右边的组件。 Target导入存在同样的三种方式:关系数据库、文本文件、XML文件。Target的元数据管理与Source方式有所不同,其统一放置于Targets下,与本地ODBC命名无关,需要导入的目标表名唯一。 Target Definition组件命名需遵循: tgt_ Target Table Name:按照XY_ 5.10 Aggregator Aggregator组件用于可加性指标的汇总计算,这些汇总计算是基于分组进行的,而不像Expression组件中的逐行计算。应该尽可能不用此组件,因为在Informatica中此组件的汇总计算性能比数据库SQL Group By汇总差,建议尽可能在Source Qualifier组件中使用SQL方式汇总。 其命名遵循: AGG_ 例如:AGG_SUM_OF_TRANS_AMT、AGG_DISTINCT_ORDERS 5.11 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_”为前缀: Page: 24 of 39 Informatica PowerCenter平台 ETL开发规范 如端口涉及对字符数据的操作处理,其端口命名需体现数据操作,例如:o_conc_custname 如端口涉及数值型数据处理,其端口命名需体现数据操作,例如:sum_alltaxes Expression组件命名应遵循: EXP_ 例如:EXP_TRIM_COLS、EXP_DECODE_GEOG_ID 5.12 Filter Filter组件用于在mapping中按过滤表达式的True/False结果过滤数据,为提高性能,如需过滤数据,在mapping中应尽可能将此组件放在数据流的靠前位置。 Filter组件命名遵循: FLT_ 例如:FLT_STOP_OLD_RECS、FLT_GEO_ID、FLT_GeoidGreaterThan0等 5.13 Joiner Joiner组件用于连接两张位于不同物理位置的数据源表或文件,一个最常见的情形是连接关系型数据表和平面文件。 Joiner组件命名需遵循: JNR_ 5.14 Lookup Lookup组件用于根据输入组件传入的条件查找数据库返回需要的数据,并可以传递到后续组件。 Lookup组件有两种用法:connected/ unconnected,connected场景下,Lookup组件需要连接到数据流中的其他组件,而在unconnected场景下,Lookup组件没有连接到任何组件。 Lookup组件unconnected用法,往往都是出于性能考虑,但是需要注意的是unconnected Lookup组件只能返回一个值。 Lookup组件输入端口应以“i_”为前缀,输出端口以“o_”为前缀,需要注意的是此组件中端口的数据类型如需修改则应在其前一组件中修改,而不应在本组件中修改。 ? 端口数据类型不匹配是Lookup组件出错的的常见错误,为避免此类型错误,要确保参与比较的端口数据类型一致。 ? 如果需要手工改写Lookup组件自动生成的SQL语句,需要注意自动生成的字段顺序不能改 变,并且如果要使用数据库排序,要在语句末尾加“--”字符 Lookup组件命名需要遵循: LKP_ Page: 25 of 39