第三章 数据抽取
图3-1-12 文件模型数据存储反向结果
“确定”,完成文件的数据存储的导入。
3.1.3 其它类型模型
类似于EXCEL或者ACCESS中文件形式的数据源,其建立模型的过程与3.1.2所述类似。类似与MYSQL、SQLSERVER这种关系型数据源,其建立模型的过程与3.1.1所述类似。
3.2 新建项目 3.2.1 创建项目
Designer-->项目,点击插入项目图标如Training_Project:
,在项目对话框的“定义”标签下输入项目名称
第三章 数据抽取
图3-2-1新建项目
3.2.2 导入知识模块(KM)
3.2.2.1 知识模块含义
我们在项目里所能够遇到的一些场景(如把文件载到数据库,从Mysql数据库抓取数据放到Oracle数据库里,从DB2把数据抓取出来放在Oracle数据库里等)撇开这些数据抽取和转换工作的业务部分,其实总是可以总结为
file-->Oracle Mysql-->Oracle DB2-->Oracle Oracle-->DB2。。。
如果撇开具体的项目不谈,这些都是一些被反复使用的场景,ODI提出了知识模块的概念,把这些场景的详细的实现步骤作为一个一个的知识模块并使用Jython脚本语言结合数据库的SQL语句录制成一步一步的步骤忠实地记录下来,这样就形成了ODI里的100多个知识模块,基本上包含了所有普通应用所涉及到的所有场景。
第三章 数据抽取
更方便的是,用户既可以直接使用ODI的知识模块完成数据的获取工作,也可以直接在知识模块上面做各种定制,比如某一个业务场景可能并不需要知识模块里的某一个特定的步骤,那就可以直接把该步骤删除掉从而提供更好的性能。当然用户也可以完全自己来开发这些知识模块。
3.2.2.2 知识模块分类
ODI的知识模块主要分为几个大类(CKM,LKM,IKM,SKM),其中最重要的是LKM(load KM)和IKM(Integration KM):
1. LKM:LKM完成从源数据库数据加载到临时表。 2. IKM:IKM完成从临时表的数据加载到目标表。
ODI认为一个数据的流动包含从源表到临时表,然后从临时表到目标表的过程,而临时表可以放在源上,或者放在目标数据库上,可以自己选择。(当然,通过自己来改动KM也完全可以对这个概念做改动,甚至可以使用一个KM完成所有的工作)。
如下图(临时表放在目标数据库上,然后数据的转换在目标数据库上完成):
图3-2-2知识模块示例
3.2.2.3 导入
反向工程知识模块(RKM)
第三章 数据抽取
图3-2-3导入反向工程知识模块
选择KM导入文件夹:ODI安装路径\\oracledi\\impexp:
图3-2-4选择知识模块所在文件夹
选择所有的RKM:
图3-2-5选择所有的RKM
“确定”,导入RKM
同样方法,依次导入如下知识模块。 导入正在加载知识模块(LKM); 导入检查知识模块(CKM); 导入集成知识模块(IKM); 导入日记知识模块(JKM); 导入服务知识模块(SKM);
3.3 接口 3.3.1 新建接口
右键Designer-->项目-->Training_Project-->第一个文件夹-->接口,“插入接口”:第三章 数据抽取