ODI Studio拓扑结构的创建与配置(Oracle)
一、概念解释
Topology Manager主要用来管理下面5类任务,并将信息存储在主资料库中,供所有模块共享使用。
物理体系结构:
定义各种技术及其数据服务器、物理架构、物理代理。数据服务器瞎可以建立多个物理方案,每个物理方案的实质就是schema。
逻辑体系结构:
定义各种技术及其关联的逻辑架构、逻辑代理。一个逻辑方案需要基于一个或几个物理方案,实质上就是一层抽象,是物理方案的别名。
上下文:
上下文的主要目的是实现逻辑方案多物理方案的多对多关系,比如同一逻辑架构在不同上下文情况下可以对应不同的物理方案。
语言:
不同技术所能采用的语言特性。
代理:
代理是一个JAVA 组件组件建,也分为物理代理和逻辑代理两层,通常它需要在目标库上运行(也可以在非目标库上运行),作用是对数据迁移JOB 进行调度,通常,它只是从执行资料库检索代码,并请求数据库服务器、操作系统或脚本引擎执行代码。
资料库:
包含主资料库及其附属的工作资料库。Master Repository,保存企业所有IT资源的Topology,保存项目和数据模型的安全信息、版本信息,供ODI图形模块等使用。通常创建一个即可。Master Repository要尽可能独立存储,单独的Instance,或单独的Schema。Work Repository,保存项目和数据模型,供ODI图形模块等使用。可创建多个。一个Work Repository只能连接一个Master Repository。一个Schema只能存储一个Work Repository,不过Master Repository倒可与其安装在同一Schema。
二、创建物理体系架构
2.1. 创建源数据库和目标数据库Scheme
这里分别使用ODI_SRC和ODI_TAG模拟源数据库和目标数据库。
创建用户ODI_SRC,ODI_TAG
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 /*第1步:创建临时表空间 */ 2 create temporary tablespace odi_temp 3 tempfile 'C:\app\ORACLE\oradata\orcl\odi_temp.dbf' 4 size 50m 5 autoextend on 6 next 50m maxsize 20480m 7 extent management local; 8 9 /*第2步:创建数据表空间 */ 10 create tablespace odi_data 11 logging 12 datafile 'C:\app\ORACLE\oradata\orcl\odi_data.dbf' 13 size 50m 14 autoextend on 15 next 50m maxsize 20480m 16 extent management local; 17 18 19 /*第3步:创建用户并指定表空间 */ 20 create user ODI_SRC identified by ODI_SRC 21 default tablespace odi_data 22 temporary tablespace odi_temp 23 quota unlimited on odi_data 24 profile default ; 25 create user ODI_TAG identified by ODI_TAG 26 default tablespace odi_data 27 temporary tablespace odi_temp 28 quota unlimited on odi_data 29 profile default ; 30 31 /*第4步:给用户授予权限 */ 32 grant connect,resource to ODI_SRC; 33 grant connect,resource to ODI_TAG; 34 grant create view to ODI_SRC; 35 grant create view to ODI_TAG;
创建两个用户ODI_SRC_WORK 和 ODI_TAG_WORK,用于物理方案ODI_SRC和ODI_TAG的工作scheme
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 create user ODI_SRC_WORK identified by ODI_SRC_WORK 2 default tablespace odi_data 3 temporary tablespace odi_temp 4 quota unlimited on odi_data 5 profile default ; 6 7 create user ODI_TAG_WORK identified by ODI_TAG_WORK 8 default tablespace odi_data 9 temporary tablespace odi_temp 10 quota unlimited on odi_data 11 profile default ;
2.2. 创建数据服务器
Step1:点击拓扑->物理体系结构->选择Oracle->右键选择新建数据库服务器:
Step2:指定数据库服务器的定义:
名称:ODI_SRC
数据库服务器:localhost
连接(数据库的用户和密码,该用户的权限应高于或等于数据所在schema的权限)
用户:ODI_SRC
口令:ODI_SRC
Step3:指定数据库服务器的JDBC:
JDBC驱动程序:oracle.jdbc.OracleDriver
JDBC URL:jdbc:oracle:thin:@localhost:1521/pdborcl
保存,点击测试连接测试成功即可。
相同的操作建立数据服务器ODI_TAG
最后效果如图所示
2.3. 创建物理方案
Step1:在新建好的数据服务器ODI_SRC上点右键选择新建物理方案:
Step2:创建源数据库的物理方案,方案中均选择刚才在Oracle中代表源数据的ODI_SRC,
目录:ODI_SRC(表示该物理方案应连接到的源数据schema,也就是源数据在哪里)
工作目录:ODI_SRC_WORK(这里指定了之后在数据迁移过程中,需要创建的临时表的存放scheme),如果选择了ODI_SRC,则临时表在ODI_SRC的scheme下
点击保存,忽略掉下面的警告,稍后再配置上下文
同理为目标数据库创建物理方案,方案选择刚才创建的ODI_TAG,工作方案选择ODI_TAG_WORK 点击全部保存
最后的效果如下
2.4. 创建逻辑方案
Step1: 点击拓扑->逻辑体系结构->选择Oracle->右键选择新建逻辑方案:
Step2:创建逻辑方案ODI_SRC,这里可以使用ODI 已建好的上下文Global,也可以自己使用下面自己创建的上下文。物理方案对应到刚才创建好的源数据物理方案ODI_SRC.ODI_SRC,点击全部保存。
此时点击物理方案ODI_SRC.ODI_SRC,会发现上下文自动已经配置上了。这里实际反映了物理方案-上下文-逻辑方案直接的关系,这种设计的目的是为了实现物理与逻辑上的分离。实现一个逻辑方案可以根据开发、生成等不同上下文,关联到不同的物理方案,而同一物理方案也可以支撑多个逻辑方案这种灵活的配置需要。
Step3:同理创建逻辑方案ODI_TAG,物理方案对应到刚才创建好的源数据物理方案ODI_TAG.ODI_TAG,点击全部保存,最终效果如下
三、新建上下文
在系统中已经有了一个上下文Global,我们可以采用此上下文,也可以新建。
填入名称和代码,这里develop表示开发环境,代理先不填,保存效果如下
四、创建代理
代理同样需要创建物理代理和逻辑代理,如果是在本地进行开发,暂时不需要创建代理。
4.1创建物理代理
参照Configuring the Domain for the Java EE Agent
4.2创建逻辑代理
上下文选择刚刚创建的Develop,也可以使用Global,物理代理方案选择刚才创建的OracleDIAgent
至此,拓扑结构就配置完成了,下面可以新建项目、模型、然后设计接口进行ETL了。