ODI Studio拓扑结构的创建与配置(MySQL)
拓扑结构的创建与配置
一、概念解释
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. 创建源数据库和目标数据库
这里分别使用sakila和sakila_dwh作为源数据库和目标数据库。
sakila_dwh 数据仓库样例
创建用户
CREATE USER sakila IDENTIFIED BY 'sakila'; GRANT ALL PRIVILEGES ON sakila.* TO sakila; CREATE USER sakila_dwh IDENTIFIED BY 'sakila_dwh'; GRANT ALL PRIVILEGES ON sakila_dwh.* TO sakila_dwh;
2.2. 创建数据服务器
Step1:点击拓扑->物理体系结构->选择MySQL->右键选择新建数据库服务器:
Step2:指定数据库服务器的定义:
名称:sakila
数据库服务器:localhost
连接(数据库的用户和密码,该用户的权限应高于或等于数据所在schema的权限)
用户:sakila
口令:sakila
Step3:指定数据库服务器的JDBC:
JDBC驱动程序:com.mysql.jdbc.Driver
JDBC URL:jdbc:mysql://localhost:3306/sakila
相同的操作建立数据服务器sakila_dwh
最后效果如图所示
2.3. 创建物理方案
Step1:在新建好的数据服务器sakila上点右键选择新建物理方案:
Step2:创建源数据库的物理方案,方案中均选择刚才在MySQL中代表源数据的sakila,
目录:sakila (表示该物理方案应连接到的源数据schema,也就是源数据在哪里)
工作目录:sakila(这里指定了之后在数据迁移过程中,需要创建的临时表的存放 地点)
稍后再配置上下文,点击全部保存:
同理为目标数据库创建物理方案,方案选择刚才创建的sakila_dwh,点击全部保存
最后的效果如下
2.4. 创建逻辑方案
Step1: 点击拓扑->逻辑体系结构->选择MySQL->右键选择新建逻辑方案:
Step2:创建逻辑方案sakila,这里可以使用ODI 已建好的上下文Global,也可以自己使用下面自己创建的上下文。物理方案对应到刚才创建好的源数据物理方案sakila.sakila,点击全部保存。此时点击物理方案sakila.sakila,会发现上下文自动已经配置上了。这里实际反映了物理方案-上下文-逻辑方案直接的关系,这种设计的目的是为了实现物理与逻辑上的分离。实现一个逻辑方案可以根据开发、生成等不同上下文,关联到不同的物理方案,而同一物理方案也可以支撑多个逻辑方案这种灵活的配置需要。
Step3:同理创建逻辑方案sakila_dwh,物理方案对应到刚才创建好的源数据物理方案sakila_dwh.sakila_dwh,点击全部保存,最终效果如下
三、新建上下文
在系统中已经有了一个上下文Global,我们可以采用此上下文,也可以新建。
填入名称和代码,这里develop表示开发环境,代理先不填,保存效果如下
四、创建代理
代理同样需要创建物理代理和逻辑代理,如果是在本地进行开发,暂时不需要创建代理。
4.1创建物理代理
参照Configuring the Domain for the Java EE Agent
4.2创建逻辑代理
上下文选择刚刚创建的Develop,物理代理方案选择刚才创建的OracleDIAgent
至此,拓扑结构就配置完成了,下面可以新建项目、模型、然后设计接口进行ETL了。