TCS Internal
神州数码(中国)有限公司
项目开发规划
冷鹏
2006年9月
第 1 页 共 15 页
Informatica神州数码(中国)有限公司
1. 引言
以前看到过whyu小记写过Informatica的一个开发规范,觉得不错,也碰到外面一些项目组在参考他写的规范,非常好!我也碰到很多公司的项目组有非常不错的DW项目规范文档,只是很少有拿出来给大家参考共享的,觉得非常的遗憾!反观自己当时做JAVA、C、Web时,项目标准和规范都是成套的有下载。所以在这里我呼吁大家可以将项目里敏感的内容去掉,将文档的骨头拿出来,让大家做项目吸取更多的经验,少走弯路,走更正规的路,毕竟大家都在这个圈子里混,都是做技术的,这个圈子如果长久都停留在这个水平,自己也不会走出圈子里这个水平。
我扒拉的这篇规范也算不上是什么规范,结合了whyu小记、Informatica里的一些内容希望在这里给大家抛砖引玉。希望大家总结出DW项目的更多管理规范、更多产品的开发方法以提高你我。
2. 命名约定
在进行Informatica开发规划时,对引用PowerCenter内的组件、变量、参数等最好参考一个统一的命名规则,官方的样例也有一些命名规划,我认为可以分个级别如Mapping、Session、Task这样的分为一个级别,统一以1个小写字母加下划线为规范,转换组件可以也可以为分为一个级别,以3个小写字母加下划线为规范。如果不用命名规范也没多大关系,因为这些内容各自都有对应的Folder进行管理,比较好辨认。
2.1. 组件命名
Transformation Name Rule Aggregator Description Agg_ Performs aggregate calculations. Application Source ASQ_ Qualifier Represents the rows that the Integration Service reads from an application, such as an ERP source, when it runs a session. 第 2 页 共 15 页
TCS Internal
神州数码(中国)有限公司
Custom Cus_ Exp_ Calls a procedure in a shared library or DLL. Expression Calculates a value. External Procedure Calls a procedure in a shared library or in the COM layer of Windows. Filter Fil_ Inp_ Filters data. Input Defines mapplet input rows. Available in the Mapplet Designer. Java Executes user logic coded in Java. The byte code for the user logic is stored in the repository. Joiner Jnr_ Joins data from different databases or flat file systems. Lookup Lkp_ Nrm_ Looks up values. Normalizer Source qualifier for COBOL sources. Can also use in the pipeline to normalize data from relational or flat file sources. Output Opt_ Defines mapplet output rows. Available in the Mapplet Designer. Rank Rnk_ Rot_ Limits records to a top or bottom range. Router Routes data into multiple transformations based on group conditions. Sequence Generator Sqg_ Generates primary keys. 第 3 页 共 15 页
TCS Internal
神州数码(中国)有限公司
Sorter Sort_ Sq_ Sorts data based on a sort key. Source Qualifier Represents the rows that the Integration Service reads from a relational or flat file source when it runs a session. Stored Procedure Sp_ Calls a stored procedure. Transaction Control Tc_ Union Defines commit and rollback transactions. Uni_ Merges data from different databases or flat file systems. Update Strategy Ust_ Determines whether to insert, delete, update, or reject rows. XML Generator Xmlg_ Reads data from one or more input ports and outputs XML through a single output port. XML Parser Xmlp_ Reads XML from one input port and outputs data to one or more output ports. XML Qualifier
Source Xmlsq_ Represents the rows that the Integration Service reads from an XML source when it runs a session. 2.2. 其它命名
Application Name Rule Mapping Description M_ Mp_ Performs aggregate calculations. Mapplet Represents the rows that the Integration Service reads from 第 4 页 共 15 页
TCS Internal
神州数码(中国)有限公司
an application, such as an ERP source, when it runs a session. Transformation T_ W_ Wl_ S_ T_ Workflow Worklet Session Task Repository Service Intergration Service 3. 主题说明
往往在一个数据仓库项目内ETL都占了很大的开发量,在一个ETL过程中会涉及到多个操作步骤,如从不同数据源中提取出到本地,通过网络发送数据到目标域,装入Staging Area,再转换到ODS Area,进入数据仓库,通过层层汇总,再刷进Cube,因此在ETL开发时分主题就有很多方法,可以按ETL操作步骤来分为SourceStaging AreaODSDWView DMOLAP SERVER,也可以按照各数据源中数据类型,也可从目标事实表出发以完成一个目标主题为主,或者多种方法综合使用来进行ETL主题划分。
在划分好主题后,每个主题都画出工作流程图来,对其流程结点进行操作描述。一个主题可以由一个Workflow和多个Mapping组成。对主题的Workflow和Mapping可以按照下面的表格进行描述。
第 5 页 共 15 页
TCS Internal
神州数码(中国)有限公司
4. 主题开发 4.1. 主题设计 4.1.1. Mapping设计
Mapping说明 Mapping名称 Mapping描述 源类型 抽出记录数 ETL执行周期 ETL前处理工作 ETL后处理工作 错误处理机制 重新装载机制 源主键
Source说明 Tables Table Name
Target说明 Tables Table Name Schema Owner Update Delete 第 6 页 共 15 页
目标类型 入库记录数 Schema/Owner Selection/Filter Insert Unique Key TCS Internal
神州数码(中国)有限公司
LOOKUP说明 Lookup Name Table Location Match Condition(s) Filter/SQL Override
Mapping视图
视图说明
Source与Target映射说明 Target Table Target Column
Source Table Source Column Expression Default Value if Null 4.1.2. Workflow设计
Workflow说明 Workflow Name 第 7 页 共 15 页
TCS Internal
神州数码(中国)有限公司
Description Item Tasks Item Name Mapping Name Source Name Target Name Sessions
Workflow视图
视图说明
5. 系统管理 5.1. 用户管理
Informatica开发分为2类用户组Administrator和Public即可,虽然权限很多,划分用户组很灵活,但2类用户组已经够用,具体分组标准视项目开发复杂程度而定。Administrator用户不宜多,2个足矣。系统成功移植后Public用户组最好Disable掉。 用户组 Administrator 个数建议 2个 执行功能分配 Workflow Operator Browse Repository Use Designer Use Repository Manager Use Workflow Manager Admin Repository 第 8 页 共 15 页
备注 Admin用户建议只进行Informatica管理工作事务,如Admin Repository Admin Service Integration TCS Internal
神州数码(中国)有限公司
Admin Integration Service Super User Manage Connection Manage Label Manage Folder Deploy Manage Deployment Group Public 若干 Workflow Operator Browse Repository Use Designer Use Repository Manager Use Workflow Manager Admin Repository
Super User Manage Connection Manage Label Manage Folder Deploy Manage Deployment Group Public用户建议只做开发项目,对移动后的项目进行修改或添加应用时,协助Admin用户更新 5.2. 系统调优
Informatica有自己的一套调优方法论,其宗旨就是:定义调优性能标准(合理的期望值),找到最大的bottleneck,消除它;重复,直到无法调整为止。 瓶颈类型:Target, Source, Mapping, Session, System 查找瓶颈的方法
1) Target:写到本地文件
2) Source:每个Source Qualifer后跟Filter组件,Filter Condition设为False,
移走所有的转换组件,将数据写到文件中。将SQL Query在Database 中执行。 3) Mapping:每个Target前面跟Filter组件,Filter Condition设为False,查看
Peformance Details:
Target调优
删除目标索引和约束 增加checkpoint interval
使用Bulk loading和External Loading
第 9 页 共 15 页
TCS Internal
神州数码(中国)有限公司
增加Database network Packet size Oracle数据库调优:
Source调优
针对文件:调优Line Sequential Buffer Length(1024) 调优Query:添加索引;优化SQL语句 使用tempdb,关联Sybase和SQL Server的表 增加Database network Packet size
当Oracle跟Informatica在同一机器上,使用IPC协议,见listener.ora和 tnsnames.ora
文件。
Mapping调优
最少化转换组件 减少不必要的link
对Aggregator, Joiner, Rank, Lookup 等组件,减少连接的input/output和output字段。 Single Pass:读一次数据,多处使用。
减少数据类型转换:数值的比较比字符串要快。 减少转换错误:使用session tracing terse。
调优lookup组件:索引,cache,优化lookup条件。在同一个mapping中共享unamed
lookup,在不同的Mapping中共享named lookup;使用persistent cache。
调优Filter组件:尽量使用Source Qualifer过滤数据;Filter组件要靠近Source
Qualifer;Filter条件要简单;
调优Aggregator组件:Group by简单的column;Sorted Input;Incremental Aggregation 调优Joiner组件:小表为Master;足够的内存;数据库作同构关联
调优Sequence Generator:多个Mapping共享一个Sequence Generator; Number of
Cached Value>1000
调优表达式:多个流公用重复出现的计算;减少汇总函数:sum(A)+sum(B)和
第 10 页 共 15 页
Large intial and next value(storage clause) Rollback segments
最优化redo log,见:init.ora
当Oracle跟Informatica在同一机器上,使用IPC协议。
TCS Internal
神州数码(中国)有限公司
sum(A+B);使用Local Variable;尽量使用数值比较;Treat CHAR as CHAR On Read option;DECODE versus LOOKUP;Using Operators Instead of Functions:||和concat; 找到Expression的瓶颈:折半法+常量 Session调优 增加Partition 调优Session参数
Session 调优参数
设置项
DTM Buffer Pool Size Buffer block size Index cache size Data cache size Commit interval High Precision Tracing Level
缺省值 12,000,000 bytes 64,000 bytes 1,000,000 bytes 2,000,000 bytes 10,000 rows Disabled Normal
建议最小值 6,000,000 bytes 4,000 bytes 1,000,000 bytes 2,000,000 bytes N/A N/A Terse
建议最大值 128,000,000 bytes 128,000 bytes 12,000,000 bytes 24,000,000 bytes N/A N/A N/A
每个Source和Target都至少需要两个Buffer Blocks
公式:(session Buffer Blocks) = (.9) * (DTM Buffer Pool Size) / (Default Buffer Block
Size) * (number of partitions)
缺省的Session有的Buffer Block数 = 0.9*12000000/(64000*1) = 168.75 缺省能够支持83个源和目标。
增加:DTM buffer pool size: 可以增加Buffer Block的数目。
第 11 页 共 15 页
TCS Internal
神州数码(中国)有限公司
增加:buffer block size: 可以增加一次处理的数据的行数。
源所有字段的精度总和与目标所有字段的精度总和之间的最大值,就是一次要处理
的一条记录的量值,建议1个buffer block至少要处理20条记录。
第 12 页 共 15 页
TCS Internal
神州数码(中国)有限公司
禁止掉High Precision:可减少数据计算的精度
第 13 页 共 15 页
TCS Internal
神州数码(中国)有限公司
增加Commit Interval可提高对目标数据库写的性能 系统调优
增加network speed:本地速度一般是网络的5-20倍;文件拷贝到本地。 使用多个Informatica Server。
当只处理7-bit ASCII 或EBCDIC数据时,选用ASCII data movement mode:只使
用一个字节存储数据。 减少数据Paging到文件中。
在UNIX系统下,使用processor binding将资源分配给Informatica。
5.3. 系统部署
为将Informatica开发内容更快、更安全地移植到生产系统,为在生产系统更方便升级、修改Informatica开发内容,为将Informatica的ETL系统更好地移交最终用户,其相关操作手册等文档是必不可少的。
系统部署时要准备的文档主要包括《Informatica硬件安装配置手册》、《Informatica软件安装与配置手册》、《Informatica系统移植手册》、《Informatica系统操作规程与维护手册》等。
5.4. 系统备份
在Informatica开发时,Informatica设计内容均保存在Repository里,因此定期对Repository进行备份是个好习惯。每次备份作好记录和文件存档工作。这样对开发安全、开发变更、系统移植都有好处。 编号
第 14 页 共 15 页
备份日期 备份人 备份名称 文件地址 开发内容说明 TCS Internal
TCS Internal
神州数码(中国)有限公司
第 15 页 共 15 页
因篇幅问题不能全部显示,请点此查看更多更全内容