- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 引言
1.1 编写目的
本手册面向的读者对象为具备数据集成业务知识及对ODI操作了解的开发人员,作为其完成基于ODI基础上KM二次开发的参考手册。详细介绍了如何在ODI上进行KM二次开发,以满足用户数据集成特定场合下的个性化需求。
2 开发模板KM介绍
2.1 KM概述
KM(Knowledge Modules:知识模块)在ODI中是一组代码模板。在集成过程中,每一个KM对应一个特定任务,整个数据集成过程通过选择若干个KM代码模板生成执行代码而完成集成工作。
KM具有抽象性和可重用性,它是对集成过程规则和过程的描述,是对逻辑任务的抽象,而与具体的物理对象(如数据表、物理路径、列等)无关。在集成时,用户通过调用这些规则和过程,将接口、模型、包中存储的元数据信息(具体的数据库连接、映射关系等)作为参数注入到KM中,因此KM类似于一个抽象接口,与具体的业务对象分离开来,从而使得一个KM能够被多个集成项目可用。因此KM是对数据集成过程和规则的高度抽象和总结,通过开发一整套的KM库可以极大的降低数据集成的复杂度。
ODI平台为不同的集成场景和过程准备了多个KM,用户可以通过调用这些KM完成不同的集成需求;另外KM也允许用户自己扩展、重写,当已有KM模板无法满足集成需求时,可以通过自定义编写KM而完成特殊场景下的个性化需求。
2.2 KM分类
ODI根据集成过程和功能的不同将KM分为以下几大类:RKM(Reverse KM)、CK(Check KM)、LKM(Load KM)、IKM(Integretion KM)、JKM(Journalizing KM)、SKM(Service KM),每一类KM完成特定类功能,如下表2-1所示:
KM类型
描述
使用场景
RKM
作反向工程,抽取元数据
在模型中使用,抽取元数据
CKM
检查数据是否满足约束
在模型中使用,为数据一致性
在接口中使用,为数据流程控制
LKM
加载异构数据到临时区域
在接口中使用,加载异构数据源
IKM
整合临时区域数据到目标
在接口中使用
JKM
创建变化数据捕获框架
在模型中使用,开启或者关闭日志
SKM
生成数据操作Web services
在模型中使用
表2-1:KM分类及功能
下面将分别详细介绍每一类KM:
2.2.1 RKM
RKM的主要职责是将模型数据反向至工作资料库中。RKM连接到数据源和应用系统中,从源中抽取模型、数据存储、字段等信息,将其数据经过清洗、转换后加载至SNP_REV_SUB_MODEL,SNP_REV_TABLE等表中,然后RKM通过调用OdiReverseSetMetaData API将这些信息更新到工作资料库。根据其反向数据源的不同,RKM又分为以下类型RKM Oracle、RKM DB2、 RKM File、RKM SQL(JYTHON)等。下图2-1为RKM工作流程:
图2-1:RKM工作流程
2.2.2 CKM
CKM主要用作数据记录一致性检查以及定义约束关系,主要用于两处:
n 检查静态数据一致性:此类CKM作用于模型,通过设立约束条件,可以清洗、过滤数据,只按需集成所需数据,例如通过添加CKM,只取年龄大于18的学生数据。
n 在加载过程中检查数据:此类CKM在接口中使用,做数据流程过程中的数据控制,通过将Designer中FLOW_CONTROL选项改为是,可以启用此CKM。
n 另外CKM会在临时区域创建前缀为E$的错误表存放非法数据。
其处理流程如下图2-2所示:
图2-2:CKM
图2-3:流数据控制
2.2.3 LKM
LKM主要用于将数据源上的数据信息读取至临时区域中、在Interface的设计中使用LKM,将源数据存储至临时区域的C$表中,其处理的主要工作有:
n LKM从远程的数据源抽取数据并加载到临时区域,在接口中使用;
n LKM在临时区域创建C$表,并把数据加载到C$表中;
n LKM执行一些简单的预转化工作,就像SQL语句中的SELECT语句。
另外,针对不同的数据源,分别对应不同的LKM,如:LKM SQL to SQL(JYTHON)、LKM SQL to SQL、LKM Oracle to Oracle(DBLINK)、LKM MSSQL to MASQL(BCP)等等,其处理流程如下图2-4所示:
图2-4:LKM工作流程
2.2.4 IKM
IKM的作用是将转换后的最终数据加载至目标中,IKM在使用前在确保所有数据都事先通过LKM加载到了临时区域,IKM直接从临时区域中获取数据。IKM根据临时区域位置的不同分为两种类型。第一种类型为临时区域在目标上的IKM,另一类为临时区域不在目标端上,其处理过程为
n 在接口中根据实际场景选择IKM类型
文档评论(0)