Oracle ODI系列之一(ODI知识模块)
ODI简介
ODI(Oracle Data Integrator)前身是Sunopsis Active Integration Platform,在2006年底被Oracle收购,重新命名为Oracle Data Integrator。主要定位于在ETL和数据集成的场景里使用。ODI和Oracle原来的ETL工具OWB相比有一些显著的特点,比如和OWB一样是ELT架构,但是比OWB支持更多的异构的数据源等等,本系列文章将逐步介绍ODI的一些基本概念。
什么是ODI的知识模块
个人觉得Oracle的Data Integrator里最好最有特点的特征是提出了知识模块的概念(Knowledge Module)。ETL的发展总是从手工编程开始,然后逐渐出现专门的ETL工具,其实我们在项目里所能够遇到的一些场景(如把文件载到数据库,从Mysql数据库抓取数据放到Oracle数据库里,从DB2把数据抓取出来放在Oracle数据库里等)撇开这些数据抽取和转换工作的业务部分,其实总是可以总结为
file->Oracle
Mysql->Oracle
DB2->Oracle
Oracle->DB2
。。。
如果撇开具体的项目不谈,这些都是一些被反复使用的场景,ODI提出了知识模块的概念,把这些场景的详细的实现步骤作为一个一个的知识模块并使用Jython脚本语言结合数据库的SQL语句录制成一步一步的步骤忠实地记录下来,这样就形成了ODI里的100多个知识模块,基本上包含了所有普通应用所涉及到的所有场景。更方便的是,用户既可以直接使用ODI的知识模块完成数据的获取工作,也可以直接在知识模块上面做各种定制,比如某一个业务场景可能并不需要知识模块里的某一个特定的步骤,那就可以直接把该步骤删除掉从而提供更好的性能。当然用户也可以完全自己来开发这些知识模块。
ODI知识模块(Knowledge Module)的分类
ODI的知识模块主要分为几个大类(RKM,CKM,LKM,IKM,SKM),其中最重要的是LKM(load KM)和IKM(Integration KM)RKM:
RKM完成从源系统和目标系统的数据结构的反向工程来形成数据模型的功能。
CKM:CKM完成数据质量检查。
LKM:LKM完成从源数据库数据加载到临时表。
IKM:IKM完成从临时表的数据加载到目标表。
SKM:SKM完成ODI和WEB服务接口的功能。
SKM(Service KM):Web服务知识模块,可以使用该知识模块来生成Web服务调用
ODI认为一个数据的流动包含从源表到临时表,然后从临时表到目标表的过程,而临时表可以放在源上,或者放在目标数据库上,可以自己选择。(当然,通过自己来改动KM也完全可以对这个概念做改动,甚至可以使用一个KM完成所有的工作)。
如下图(临时表放在目标数据库上,然后数据的转换在目标数据库上完成):
如何定制知识模块
这里我们通过分析一个具体的知识模块来看看知识模块的概念。一个项目需要先把项目里用到的知识模块导入进来:双击相应知识模块,就会出现知识模块里的具体步骤:如下图上面显示了一个使用Oracle的dblink技术来完成从一个Oracle数据库里把数据导入临时区的LKM的详细步骤,双击一个步骤则会显示这个步骤完成的具体的命令:上图窗口下方就是完成这个步骤的具体命令,不同的知识模块,不同的步骤,显示的可能不太一样,有些像是SQL语句,有些则象JAVA语言(Jython脚本),然后还会出现一些类似snpRef.getInfo()的函数,关于这些宏变量和函数的具体含义可以从ODI的参考文档里找到,上图的这个步骤最终生成的其实是一个创建dblink的sql命令。每一个知识模块的步骤既可以删除,也可以增加,所以可以非常容易地实现ODI的扩展。通过在一个原有的知识模块上修改形成新的知识模块是最容易的定制方式,另一种方式是完全可以通过Jython这种语言来写知识模块,则是一种更加灵活和复杂的知识模块的定制方式。
分享到:
相关推荐
Oracle ODI(Oracle Data Integrator)是一款由Oracle公司推出的高效数据集成工具,它是基于Sunopsis公司Active Integration Platform的产品,自2006年10月被Oracle收购后,整合进了Oracle Fusion Middleware产品线...
ODI中的知识模块是实现高效数据集成的关键技术之一。通过合理设计和有效利用知识模块,可以大大简化数据集成项目的开发工作,并提高整体的实施效率。对于从事ODI开发工作的专业人士而言,深入理解和掌握知识模块的...
总之,"ODI LOB知识模块"是一个专门处理CLOB数据的ODI组件,用于高效地将SQL源的CLOB字段迁移到Oracle数据库。正确理解和使用这个LKM,能够确保大文本数据的无缝迁移,对于需要处理大量非结构化数据的项目至关重要。
Oracle Data Integrator(ODI)作为Oracle Fusion Middleware的关键组成部分,为企业提供了一个强大可靠的整合平台。本文将详细介绍ODI的主要性能、作用以及其逻辑框架等方面。 #### 性能:市场领先的独特架构 ...
Oracle ODI 11g(Oracle Data Integrator)是Oracle公司推出的一款强大的数据集成工具,专为现代企业数据管理提供全面、高效的数据整合解决方案。在Oracle ODI 11g官方教程中,它深入介绍了该工具的各种功能和使用...
每个知识模块由一系列步骤组成,这些步骤由Jython脚本语言编写,结合SQL语句,记录了如何执行特定任务的详细过程。ODI内建了超过100个知识模块,覆盖了日常应用中的各种需求。用户可以根据实际项目需求,直接使用预...
3. **项目与知识模块**:对于第一个项目“Lesson3–OneSource”,所需的Knowledge Modules(KM,知识模块)已经加载完毕,这些KM涵盖了SQL到Oracle的数据加载和控制追加等功能。在后续项目中,学员需自行导入KM,这...
- **导入知识模块**:添加预定义的操作模板,如数据清洗规则、转换逻辑等。 - **创建接口**:设计数据集成的具体步骤,如数据抽取、转换和加载。 - **监控运行结果**:通过ODI提供的工具监视项目执行的状态和性能...
ODI 提供了一系列的功能和服务来帮助用户高效地进行数据抽取、转换、加载(ETL)操作,同时支持实时数据集成以及复杂的数据处理任务。 #### 二、版权与许可 - **版权说明**:文档明确指出所有权利均归甲骨文公司...
### 信息技术最佳实践—Oracle ODI之入门开发 #### 一、ODI概述与核心价值 **Oracle Data Integrator (ODI)** 是一款强大的企业级数据集成工具,它提供了高效的数据提取、转换和加载(ETL)解决方案。与其他ETL...
Oracle ODI,全称为Oracle Data Integrator,是Oracle公司提供的一款强大的数据集成工具。它用于在各种数据源之间进行高效、可靠的数据迁移和转换,支持ETL(Extract, Transform, Load)过程,以及ELT(Extract, ...
根据提供的文件信息,我们可以从标题、描述、标签和部分内容中提炼出关于Oracle Data Integrator(ODI)知识模块开发的详细知识点。由于文件内容可能包括一些OCR扫描错误或遗漏,接下来我会尽可能根据提供的信息来...
Oracle Data Integrator (ODI) 是一款强大的企业级数据集成工具,主要用于ETL(Extract, Transform, Load)过程。在10g版本中,ODI提供了处理大字段(如BLOB和CLOB类型)的能力,这在处理大量非结构化或半结构化数据...
【Oracle ODI 知识点详解】 Oracle ODI(Oracle Data Integrator)是Oracle公司提供的一款数据集成工具,它遵循E-LT(Extract, Load, Transform)的理念,不同于传统的ETL(Extract, Transform, Load)工具。ODI的...
ODI 提供了三种知识模块来抽取数据库中的增量数据:Simple、Consistent 和 Oracle 9i/10g/11g Consistent。在 Simple 方式下,ODI 从数据库中抽取增量数据,但如果表之间有主外键约束关系,采用 Simple 方式就会出现...
“知识模块”则是ODI中的一个核心概念,它们是一系列预定义的组件,用于简化与特定类型数据源的集成过程。知识模块包含了针对不同数据源的连接逻辑、数据转换规则和最佳实践,使得开发人员无需深入了解每个数据源的...