欢迎来到天天文库
浏览记录
ID:10516759
大小:213.50 KB
页数:13页
时间:2018-07-07
《odi km二次开发手册》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1引言1.1编写目的本手册面向的读者对象为具备数据集成业务知识及对ODI操作了解的开发人员,作为其完成基于ODI基础上KM二次开发的参考手册。详细介绍了如何在ODI上进行KM二次开发,以满足用户数据集成特定场合下的个性化需求。2开发模板KM介绍2.1KM概述KM(KnowledgeModules:知识模块)在ODI中是一组代码模板。在集成过程中,每一个KM对应一个特定任务,整个数据集成过程通过选择若干个KM代码模板生成执行代码而完成集成工作。KM具有抽象性和可重用性,它是对集成过程规则和过程的描述,是对逻辑
2、任务的抽象,而与具体的物理对象(如数据表、物理路径、列等)无关。在集成时,用户通过调用这些规则和过程,将接口、模型、包中存储的元数据信息(具体的数据库连接、映射关系等)作为参数注入到KM中,因此KM类似于一个抽象接口,与具体的业务对象分离开来,从而使得一个KM能够被多个集成项目可用。因此KM是对数据集成过程和规则的高度抽象和总结,通过开发一整套的KM库可以极大的降低数据集成的复杂度。ODI平台为不同的集成场景和过程准备了多个KM,用户可以通过调用这些KM完成不同的集成需求;另外KM也允许用户自己扩展、重写,
3、当已有KM模板无法满足集成需求时,可以通过自定义编写KM而完成特殊场景下的个性化需求。2.2KM分类ODI根据集成过程和功能的不同将KM分为以下几大类:RKM(ReverseKM)、CK(CheckKM)、LKM(LoadKM)、IKM(IntegretionKM)、JKM(JournalizingKM)、SKM(ServiceKM),每一类KM完成特定类功能,如下表2-1所示:KM类型描述使用场景RKM作反向工程,抽取元数据在模型中使用,抽取元数据CKM检查数据是否满足约束在模型中使用,为数据一致性在接口
4、中使用,为数据流程控制LKM加载异构数据到临时区域在接口中使用,加载异构数据源IKM整合临时区域数据到目标在接口中使用JKM创建变化数据捕获框架在模型中使用,开启或者关闭日志SKM生成数据操作Webservices在模型中使用表2-1:KM分类及功能下面将分别详细介绍每一类KM:2.2.1RKMRKM的主要职责是将模型数据反向至工作资料库中。RKM连接到数据源和应用系统中,从源中抽取模型、数据存储、字段等信息,将其数据经过清洗、转换后加载至SNP_REV_SUB_MODEL,SNP_REV_TABLE等表中
5、,然后RKM通过调用OdiReverseSetMetaDataAPI将这些信息更新到工作资料库。根据其反向数据源的不同,RKM又分为以下类型RKMOracle、RKMDB2、RKMFile、RKMSQL(JYTHON)等。下图2-1为RKM工作流程:图2-1:RKM工作流程2.2.2CKMCKM主要用作数据记录一致性检查以及定义约束关系,主要用于两处:n检查静态数据一致性:此类CKM作用于模型,通过设立约束条件,可以清洗、过滤数据,只按需集成所需数据,例如通过添加CKM,只取年龄大于18的学生数据。n在加载
6、过程中检查数据:此类CKM在接口中使用,做数据流程过程中的数据控制,通过将Designer中FLOW_CONTROL选项改为是,可以启用此CKM。n另外CKM会在临时区域创建前缀为E$的错误表存放非法数据。其处理流程如下图2-2所示:图2-2:CKM图2-3:流数据控制2.2.3LKMLKM主要用于将数据源上的数据信息读取至临时区域中、在Interface的设计中使用LKM,将源数据存储至临时区域的C$表中,其处理的主要工作有:nLKM从远程的数据源抽取数据并加载到临时区域,在接口中使用;nLKM在临时区域
7、创建C$表,并把数据加载到C$表中;nLKM执行一些简单的预转化工作,就像SQL语句中的SELECT语句。另外,针对不同的数据源,分别对应不同的LKM,如:LKMSQLtoSQL(JYTHON)、LKMSQLtoSQL、LKMOracletoOracle(DBLINK)、LKMMSSQLtoMASQL(BCP)等等,其处理流程如下图2-4所示:图2-4:LKM工作流程2.2.4IKMIKM的作用是将转换后的最终数据加载至目标中,IKM在使用前在确保所有数据都事先通过LKM加载到了临时区域,IKM直接从临时区
8、域中获取数据。IKM根据临时区域位置的不同分为两种类型。第一种类型为临时区域在目标上的IKM,另一类为临时区域不在目标端上,其处理过程为n在接口中根据实际场景选择IKM类型n源是临时区域的C$表,经过转化生成结果集,结果集存放在I$表中,再由I$表合并到目标表当中n如果加入CKM,则合并过程中不符合规则的数据通过CKM放到E$表当中其流程图2-5如下所示:图2-5:临时区域在目标服务器图2-6:临时区域不在目标服
此文档下载收益归作者所有