资源描述
Informatica_PowerCenter培训教材,第一天,产品体系介绍,产品安装配置,系统管理介绍,开发六大步骤,数据转换调试,INFA产品线,INFA支持情况,PowerCenter选件,丰富的ETL功能,Real-Time 实时功能,Partitioning 分区功能,High Availability 高可靠性功能,Pushdown 功能,Enterprise Grid网格功能,Team-based Development 团队开发功能,Metadata Exchange 元数据交换功能,Unstructured Data 非结构化数据功能,Visio 模板Mapping生成器功能,Data Federation 数据联邦功能,Data Profiling 数据质量探查功能,异构数据源,异构目标,实现多种缓慢变化维,全局变量及参数,参数文件,局部变量,前后记录比较,条件汇总,异构数据源关联,行/列转换,静态、动态Lookup支持,ETL事务处理,自定义SQL,Pre SQL和Post SQL,复用组件,复用Mapping,调用存储过程,调用外部用户自定义过程,可视化Debug,强大函数支持、丰富转换语言,数据源为文件列表,Session Recovery,基于多目标表约束装载,错误数量控制,FTP 源和FTP目标,ETL任务分区,增量汇总,测试装载,Bulk Loading,External Loader(Oracle、DB2.),复用Workflow,功能丰富的Workflow控制,任务串行、并行控制,基于时间、事件和指示文件触发,任务,Workflow中调用OS外部命令,Workflow中调用Email,多ETL Server协同工作,Informatica 8,INFA8系列产品功能情况,Informatica PowerCenter应用架构,Informatica客户端,数据源,ODBC,NATIVE,目标,ODBC,NATIVE,Domain,Administrator Console,UNIX(AIX,HPUX,Solaris,Linux)Windows,Integration Service,Repository Service,-,Repository Agent,PowerCenter 服务端,TCP/IP,TCP/IP,TCP/IP,NATIVE,NATIVE,PowerCenter Server和数据移动,数据源,源数据,目标,已转换数据,资料库,PowerCenter Server,来自元数,据的指令,PowerCenter Server、资料库、源和目标之间的处理路径,PowerCenter产品组件,服务端组件,客户端组件,Informatica Service:PowerCenter服务引擎,Integration Service:数据抽取、转换、装载服务引擎,Repository Service:,知识库Service,管理ETL过程中产生的元数据,Administratortion Console:用于,知识库的建立与维护,Repository Manager:,知识库管理,包括安全性管理等,Desinger:,设计开发环境,定义源及目标数据结构;设计转换规则,生成ETL映射,Workflow Manager:,合理地实现复杂的ETL工作流,基于时间、事件的作业调度,Workflow Monitor:,监控Workflow和Session运行情况,生成日志和报告,第一天,产品体系介绍,产品安装配置,系统管理介绍,开发六大步骤,数据转换调试,产品安装与样例安装,产品安装,服务器安装,客户端安装,详见安装手册,样例安装,数据库准备,RDBU(资料库数据库),SDBU(样例源数据库),TDBU(样例目标数据库),BDBU(样例参考数据库),样例数据准备,样例参考导入,第一天,产品体系介绍,产品安装配置,系统管理介绍,开发六大步骤,数据转换调试,系统管理,Informatica Server管理,localhost:6001,Domain Manager,Node Manager,Repository Service Manager,Integration Service Manager,License Manager,资料库内容管理,Repository Manager,Folder Manager,Privilege Manager,第一天,产品体系介绍,产品安装配置,系统管理介绍,开发六大步骤,数据转换调试,开发六大步骤示意图,S,T,ST,WF,M,定义源,定义目标,创建映射,定义任务,创建工作流,工作流调度监控,Designer:,Workflow Manager:,Workflow Monitor:,第一步:定义源,引入源的类型,Relational database,Flat file,COBOL file,XML object,Application,源分析器,Informatica Service,ODBC,Mapped Drive,NFS Mounting,Local Directory,Save Meta Data of Sources:,OPB_SRC,OPB_SRC_,OPB_SRC_FLD,OPB_SRC_FLD_,第二步:定义目标,引入目标的类型,Relational database,Flat file,COBOL file,XML object,Application,目标分析器,Save Meta Data of Targets:,OPB_TARG,OPB_TARG_,OPB_TARG_FLD,OPB_TARG_FLD_,ODBC,Mapped Drive,NFS Mounting,Local Directory,Informatica Service,第三步:创建映射,目标,源,转换组件,第四步:定义任务,Session Task,工作目录,Task工作区,第五步:定义工作流,第六步:工作流调度监控,第一天,产品体系介绍,产品安装配置,系统管理介绍,开发六大步骤,数据转换调试,数据转换调试,目标装载情况,经过每个调试的数据流,Flashing,yellow,SQL,indicator,Debugger 模式,Solid yellow,arrow Current,Transformation,indicator,调试日志,组件介绍,Expression组件,Filter与Router,Joiner与Lookup,Aggregator组件,Update Strategy组件,第二天,组件列表,Source Qualifier:从数据源读取数据,Expression:行级转换,Filter:数据过滤,Sorter:数据排序,Aggregator:聚合,Joiner:异构数据关接连接,Lookup:查询连接,Update Strategy:对目标编辑 insert,update,delete,reject,Router:条件分发,Sequence Generator:序列号生成器,组件列表,Normalizer:记录规范化,Rank:对记录进行TOPx,Union:数据合并,Transaction Control:对装载数据按条件进行事务控制,Stored Procedure:存储过程组件,Custom:用户自定义组件,HTTP:WWW组件,Java:Java自编程组件,其它应用组件,组件类型,Passive组件,流入流出组件的行数不发生变化,例如:Expression、Lookup、HTTP组件,Active组件,流入流出组件的行数会发生变化,例如:Aggregator、Router、Filter组件,P,A,函数分类,聚合函数,字符串函数,转换函数,数据清洗函数,日期函数,编码函数,财务函数,数值函数,数学函数,特有函数,判断函数,用户自定义函数,函数列表,组件介绍,Expression组件,Source Qualifier、Filter与Router,Joiner与Lookup,Aggregator组件,Update Strategy组件,第二天,Expression组件,组件功能,基于行级的数据项赋值、修改、计算,在同行记录中可新增、减少数据项,组件类型,Passive组件,应用范围,数据类型转换,例如Expression:to_date(Port1,yyyymmdd),数据项计算,例如Expression:(Port1+Port2)/Port3,新增变量,例如Expression:i=i+1,Expression组件,当数据项为空时的默认值,流入组件的数据项,流出组件的数据项,组件中定义的变量,练习一:Expression组件,描述,将原始客户信息记录转换成合格标准的数据导入到暂存区。,源表:,customer_east.txt,customer_west.txt,customer_central.txt,目标:,TDBU.STG_CUSTOMERS,要点,姓与名合并为姓名;,电话号码转换成易读格式的电话号码,如:(466)766-283;,性别转换,将F 转换成FEMALE、M 转换成MALE、其它转换成UNK;,年龄分段,20 岁以下、2029、3039、4049、5060、60 岁以上;,解决方案,详见,m_LAB_01,组件介绍,Expression组件,Source Qualifier、Filter与Router,Joiner与Lookup,Aggregator组件,Update Strategy组件,第二天,Source Qualifier、Filter组件,组件功能,对流入组件中的记录数据进行过滤,类似于关系型数据库Where应用,与Source Qualifier的过滤功能区别在执行位置上,组件类型,Active组件,应用范围,数据过滤,Source Qualifier、Filter组件,流入组件的数据项,在日志中显示详细级别,Source Qualifier组件中的过滤条件设置,注意:,在Source Qualifier中的,User Defined Join、,Source Filter、,Number of Sorted Ports,中定义了SQL条件,那么,在Sql Query中就不要在重写相关的SQL条件,否则,将不会生效。,Router组件,组件功能,对流入组件中的记录数据按照条件进行分发,类似于Java语言中的Switch语句,组件类型,Active组件,应用范围,数据分发,Router组件,流入组件的数据项,练习二,描述,将暂存区的客户信息按照性别分别导入到男、女、性别不明三张表内。,源表:,TDBU.STG_CUSTOMERS,目标:,TDBU.STG_CUSTOMERS_FEMALE,TDBU.STG_CUSTOMERS_MALE,TDBU.STG_CUSTOMERS_UNK,要点,偿试用Filter组件多种方法对目标进行装载,解决方案,详见,m_LAB_02,练习三,描述,将暂存区的客户信息按照性别分别导入到男、女、性别不明三张表内。,源表:,TDBU.STG_CUSTOMERS,目标:,TDBU.STG_CUSTOMERS_FEMALE,TDBU.STG_CUSTOMERS_MALE,TDBU.STG_CUSTOMERS_UNK,要点,使用Router组件对数据进行分发,比较Filter与Router各种方法的应用特点、性能,解决方案,详见,m_LAB_03,组件介绍,Expression组件,Source Qualifier、Filter与Router,Joiner与Lookup,Aggregator组件,Update Strategy组件,第二天,Joiner组件,组件功能,对异构数据进行关联(同构关联用Source Qualify组件),类似于SQL 中的Join语句,组件类型,Active组件,应用范围,2个异构数据类型的表关联,同构Joins与异构Joins,同构Joins,同种结构数据,Source Qualify组件,从源直接Joins,n个源可用1个SQ组件,在源中先定义连接关系,异构Joins,不同DB或Flat与Flat之间,Joiner组件,在PowerCenter中Joins,n-1个Joiner组件,在Joiner中定义连接条件,Joiner组件,Master,Detail,Master Source,Detail Source,Joiner,Join Results,Join条件:Master.ProductID=Detail.ProductID,Join条件,Join类型,流入组件的数据项,Master,Detail,=+,Master,Detail,=,Master,Detail,+=,Master,Detail,+,练习四,描述,将员工信息与员工工资2个异构表关联后,将关联结果数据倒入到暂存区。,源表:,Employees_layout结构,Employees_list.txt文件目录,Employees_east.txt,Employees_west.txt,Employees_central.txt,Salary.txt,目标:,TDBU.STG_EMPLOYEES,要点,用Joiner组件进行Mapping设计,注意Master与Detail的设置选择,(关联时建议将数据量少的设置为Master.),解决方案,详见,m_LAB_04,练习五,描述,将员工信息与员工工资2个同构表关联后,将关联结果数据倒入到暂存区。,源表:,SDBU.EMPLOYEES,SDBU.SALARY,目标:,TDBU.STG_ EMPLOYEES,要点,用Source Qualify组件进行Mapping设计,注意关联关系设置,建议,N个同构数据源只需用1个Source Qualifier组件关联,关联时建议将在Source设计区将需要关联的源表手工用连线关联起来,在Mapping设计区删除各个源所带的Source Qualifier组件,用一个新的Source Qualifier组件包含所有源的字段内容。,解决方案,详见,m_LAB_05,Lookup组件,组件功能,对Flat File或数据库根据关联的条件进行查询,返回符合条件的值,否则为空,连接关联与非连接关联,类似于SQL 中的Join语句,组件类型,Passive组件,应用范围,查询文本文件的关联数据,查询数据库的关联数据,连接Lookup与非连接Lookup,Lookup源,Lookup组件,查询条件:ITEM_ID=IN_ITEM_ID,PRICE=IN_PRICE,流入值,查询输出值,流入值,查询到的值,Lookup组件,组件,查询条件:IIF(ISNULL(customer_id),:lkp.MYLOOKUP(order_no),customer_id),是否查询 Y,返回查询到的值,Lookup组件,查询的数据项,返回关联的值,返回值,练习六,描述,将员工信息去员工工资文本文件查询员工工资信息,未查到的工资默认为0,最后将结果数据倒入到暂存区。,源表:,Employees_layout结构,Employees_list.txt文件目录,Employees_east.txt,Employees_west.txt,Employees_central.txt,Salary.txt,目标:,TDBU.STG_EMPLOYEES,要点,用连接Lookup组件进行Mapping设计,注意Salary(Flat File)的设置,解决方案,详见,m_LAB_06,练习七,描述,将合格的员工信息去员工工资文本文件查询员工工资信息,未查到的工资默认为0,最后将结果数据倒入到暂存区。,源表:,Employees_layout结构,Employees_list.txt文件目录,Employees_east.txt,Employees_west.txt,Employees_central.txt,Salary.txt,目标:,TDBU.STG_EMPLOYEES,要点,用非连接Lookup组件进行Mapping设计,注意Salary(Flat File)的设置,注意数据查询的条件,解决方案,详见,m_LAB_07,组件介绍,Expression组件,Source Qualifier、Filter与Router,Joiner与Lookup,Aggregator组件,Update Strategy组件,第二天,Aggregator组件,组件功能,对数据集进行聚合,聚合分有SUM、AVG、Count、Max、Min,组件类型,Active组件,应用范围,分组汇总,平均值、最大值,Aggregator组件,Group By 选项,变量和流出数据项的表达式,Aggregator组件函数,注意区别:,SUM(IN_count,IIF(ID 20,IN_count)将不符合条件的值默认赋值为null,IIF(ID 20,SUM(IN_count)将不符合条件的值默认赋值为0,Aggregator组件属性,参与Group By的字段是否经过排序,参与聚集汇总的变量和输出数据项的表达式所占内存,参与Group By的字段所占用的内存,Aggregator组件排序的区别,ID,NAME,QUANTITY,1,北京,100,2,上海,80,3,北京,90,4,江苏,90,5,北京,120,ID,NAME,QUANTITY,1,北京,100,3,北京,90,5,北京,120,2,上海,90,4,江苏,90,按北京分组指针,按北京分组指针,不对流入到Aggregator组件的数据进行排序,对流入到Aggregator组件的数据进行排序,练习八,描述,将采购清单按照数据仓库星型设计原则进行标准化存储,对货物库存量、订单量和货物费用按照采购编号、货物品名、代理商、订单日期、接收日期和发货日期进行汇总。,源表:,TDBU.STG_INVENTORY,目标:,TDBU.FACT_INVENTORY,LOOKUP表:,产品维表为DIM_PRODUCT,日期维表为DIM_DATE,要点,订单文本文件与产品表的关联,汇总前排序,分组汇总,解决方案,详见,m_LAB_08,第二天,组件介绍,Expression组件,Source Qualifier、Filter与Router,Joiner与Lookup,Aggregator组件,Update Strategy组件,Update Strategy组件,组件功能,对流过组件的每一条记录赋一个操作标志,根据操作标志对目标关系型数据库表生成,SQL,操作,操作标志有,DD_INSERT、DD_DELETE、DD_UPDATE、DD_REJECT,组件类型,Active,组件,应用范围,数据增量更新,对目标编辑,Update Strategy组件,对记录标记,记录是在当前丢弃还是到下个组件丢弃,练习九,描述,将暂存区的发生变更了的员工信息倒入到员工维表中。,源表:,TDBU.STG_EMPLOYEES,目标:,TDBU.DIM_EMPLOYEES,要点,使用,Router,组件对数据按不同要求进行编辑操作,偿试用一个,Update Strategy,组件完成上述功能,解决方案,详见,m_LAB_09,第三天,增量抽取实例,参数文件控制,断点续传实例,存储过程实例,行列转换实例,系统性能调优,增量抽取实例,实例描述,对流过组件的每一条记录赋一个操作标志,根据操作标志对目标关系型数据库表生成SQL操作,操作标志有DD_INSERT、DD_DELETE、DD_UPDATE、DD_REJECT,解决方案,全表比较方法,时间戳方法详见m_LAB_10,字段压缩比较,PowerExchange,第三天,增量抽取实例,参数文件控制,断点续传实例,存储过程实例,行列转换实例,系统性能调优,参数与变量存在的三种形式,系统级变量,SYSDATE系统日期,SESSSTARTTIMESESSION启动时间,$SessStartTime 返回Session启动时间的字符串值,Mapping级参数与变量,SETMAXVARIABLE($Variable,value)设置最大值变量,SETMINVARIABLE($Variable,value)设置最小值变量,SETVARIABLE($Variable,value)设置变量值,SETCOUNTVARIABLE($Variable)设置递增、减变量,文件级参数与变量,固定格式,Mapping参数与变量形式,从Designer 中的Mappings/Mapplets 菜单中进行定义,在相应的Mapping或Mapplet中进行引用即可,设置变量变化类型,初始值设置,变量或参数名称定义:$,类型设置,参数文件形式,全局变量,域级服务变量,节点级服务处理变量,Workflow级变量,优先于前几级定义的变量,参数文件设置,Task参数文件设置,Workflow参数文件设置,参数文件的级别规则,GLOBAL,SERVICE,SERVICE PROCESS,WORKFLOW,SESSION,使用范围,执行优先权,高,低,低,高,Mapping与Workflow/Worklet之间进行变量传递,使用不同参数文件并行运行同一个Workflow,参数文件实例,实例描述,对源文本文件名进行参数化,对源表名进行参数化,对目标输出文本文件名进行参数化,对源与目标的数据库连接进行参数化,对日志文件及路径进行参数化,解决方案,详见,m_LAB_11,注意事项,注意变量的命名规则:特别是固定的前缀,第三天,增量抽取实例,参数文件控制,断点续传实例,存储过程实例,行列转换实例,系统性能调优,断点续传实例,实例描述,当在数据抽取时,因意外致使数据抽取发生中断,重新启动服务时仍可从断点执行数据抽取,解决方案,通过表,pm_recovery,和,PM_TGT_RUN_ID,记载最近提交点的位置,当session失败(或停止)后可从断点处接着装载数据,在monitor中,,recover task,。,在源表数据未发生变化的前提下,详见,m_LAB_12,监控脚本,select*from pm_recovery;,select row_count from pm_recovery;,select*from PM_TGT_RUN_ID;,select count(*)from SessionRecovery_Target;,truncate table SessionRecovery_Target;,断点续传实例,第三天,增量抽取实例,参数文件控制,断点续传实例,存储过程实例,行列转换实例,系统性能调优,存储过程实例,实例描述,将原始客户信息记录转换成合格标准的数据倒入到暂存区,转换处理在存储过程中完成,源表:,customer_east.txt,customer_west.txt,customer_central.txt,目标:,TDBU.STG_CUSTOMERS,解决方案,见存储过程,EMP_INFA_TRANSFORM,详见,m_LAB_13,第三天,增量抽取实例,参数文件控制,断点续传实例,存储过程实例,行列转换实例,系统性能调优,列行转换实例,实例描述,源数据一条记录有多个字段格式一样,经过格式化,到目标生成多条记录,并且只保留一个该格式字段。,解决方案,使用Normalizer组件,实现列/行转变,详见m_LAB_14_1,行列转转用Aggregator组件实现,,详见m_LAB_14_2,第三天,增量抽取实例,参数文件控制,断点续传实例,存储过程实例,行列转换实例,系统性能调优,瓶颈类型,Source瓶颈,Target瓶颈,Mapping瓶颈,Session瓶颈,System瓶颈,Source调优,源为文本文件,调优Line Sequential Buffer Length(1024),源为关系型数据库,在Source Qualify优化SQL,在源数据增加索引,增加Database network Packet size,当DB跟Informatica在同一机器上,使用IPC协议,Target调优,目标为文本文件,调优Line Sequential Buffer Length(1024),目标为关系型数据库,删除目标索引和约束,增加checkpoint interval,使用Bulk loading和External Loading,增加Database network Packet size,Oracle调优数据库:,Large intial and next value(storage clause),Rollback segments,最优化redo log,见:init.ora,当Oracle跟Informatica在同一机器上,使用IPC协议,Mapping调优,最少化转换组件,减少不必要的link,对Aggregator,Joiner,Rank,Lookup 等组件,减少连接的input/output和output字段。,Single Pass:读一次数据,多处使用。,减少数据类型转换:数值的比较比字符串要快。,减少转换错误:使用session tracing terse。,组件调优:lookup组件、Filter组件、Aggregator组件、Joiner组件、调优Sequence Generator,调优表达式,Session调优,增加Partition,调优Session参数,增加:DTM buffer pool size:可以增加Buffer Block的数目。,增加:buffer block size:可以增加一次处理的数据的行数。,增加:Commit Interval,Enable high precision:double 15 to decimal 28,System调优,增加network speed:本地速度一般是网络的5-20倍;文件拷贝到本地。,使用Informatica Grid,当只处理7-bit ASCII 或EBCDIC数据时,选用ASCII data movement mode:只使用一个字节存储数据。,减少Paging(虚拟内存):在UNIX系统下,使用processor binding将资源分配给Informatica,
展开阅读全文