ODI资料.docx
- 文档编号:7963291
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:23
- 大小:1.72MB
ODI资料.docx
《ODI资料.docx》由会员分享,可在线阅读,更多相关《ODI资料.docx(23页珍藏版)》请在冰豆网上搜索。
ODI资料
OracleDataIntegrator
1.ODI简介
OracleDataIntegrator由多个组件构成,并且这些组件围绕同一个集中式的元数据库共同工作。
上述组件——图形模块、运行时组件以及Web界面,通过与其他高级特性的结合,使OracleDataIntegrator成为一种代表当前最先进技术水平、非传统性(Legacy-free)的轻量级集成平台。
OracleDataIntegrator是一个完整的数据集成平台,它可以满足所有数据集成需求:
从大量、高性能批量数据处理到事件驱动的近实时数据集成流程到支持SOA的数据服务。
图OracleDataIntegrator可以满足所有数据集成需求
2.ODI特点
OracleDataIntegrator满足了多种企业数据集成需求。
●数据仓库与商务智能—通过大量、高性能地加载数据仓库、数据集市、联机分析处理(OLAP)立方体以及分析应用程序。
它透明地处理增量加载,缓慢变化维、管理数据完整性和一致性、分析数据沿袭。
●面向服务的体系结构—通过调用用于数据集成的外部服务,以及部署可与SOA基础架构无缝集成的数据服务和转换服务。
它增加了对现有面向服务的体系结构进行大量、高性能批量数据处理的支持。
●主数据管理(MDM)—对于构建自己的DataHub,或者采用打包的主数据管理系统,或者协调多个主数据管理系统与集成的SOA流程分析、业务流程执行语言(BPEL)组合的客户来说,可以提供完整的数据同步基础架构
●移植—提供从现有系统到新系统的历史数据(包括复杂的数据转换)高效批量加载。
它在这两个系统存续期间保持数据同步。
3.ODI优点
主动集成
OracleDataIntegrator将主动集成的设想变为了现实,它提供实现实时数据仓库和操作型数据总线所需的所有关键组件。
OracleDataIntegrator提供与OracleSOA套件集成的接口,从而实现热插拔(与现有系统完美兼容)数据服务集成。
OracleDataIntegrator结合了三种数据集成:
基于数据的集成、基于事件的集成以及基于服务的集成。
通过转换大批量的数据、凭借先进的“更新数据捕获”实时处理事件、为OracleSOA套件提供数据服务,OracleDataIntegrator统一了各种独立的集成。
所有集成流程均提供强健的数据完整性控制,确保数据的动态一致性和正确性。
声明式设计提升开发人员生产力
OracleDataIntegrator通过其声明式开发方法缩短了实施时间。
设计人员只需指定他们想用这些数据干什么,然后就由工具生成如何完成任务的细节。
与传统ETL设计不同,使用OracleDataIntegrator,业务用户或开发人员只需指定集成流程使用的规则。
工具会自动生成数据流,管理数据流的复杂性和执行各源系统和目标系统的正确指令。
声明式设计大大缩减了所需步骤的数量及其复杂性,进而缩短了实施时间。
自动代码生成使开发人员更容易上手,即使不是IT专家也可以轻松使用他们定义的集成流程和数据格式。
图用户可以通过一个图形化的界面进行点击即可设计数据集成流程。
知识模块提供灵活性和可扩展性
知识模块是OracleDataIntegrator体系结构的核心。
它们使OracleDataIntegrator流程模块化、灵活、可扩展。
知识模块实施真正的数据流,并定义每个流程在多个系统上生成代码所用的模板。
知识模块是通用的,这是因为它们在生成数据流时不考虑转换规则。
而它们又是特定的,这是因为它们生成的代码和它们采用的集成策略都是针对特定技术高度优化的。
OracleDataIntegrator提供一个丰富的知识模块库,您可以定制这些模块以采用现有的最佳实践(例如,获得最高性能、遵循企业标准或特定的行业专业知识)。
通过帮助各公司捕获和重用专业技术知识和最佳实践,OracleDataIntegrator的知识模块框架降低了拥有成本。
它还支持元数据驱动的产品功能扩展,以应对最严格的数据集成挑战。
4.体系结构总览
OracleDataIntegrator体系结构的组织主要是围绕一种模块化存储库展开,通过完全在Java中编写的图形模块和执行代理(程序)、以客户服务器模式对该存储库进行访问。
该体系结构还包括Web应用以及MetadataNavigator,它们可以使用户通过Web界面访问信息。
5.图形模块
四种图形模块分别是Designer、Operator、TopologyManager、以及SecurityManager。
这些模块可以被安装在所有支持JavaVirtualMachine1.5(J2SE)的平台上,包括Windows、Linux、HP-UX、Solaris、AIX、以及MacOS等。
图连接存储库的图形模块
四种图形模块具体说明如下:
·Designer定义出数据转化及数据完整性的声明式规则。
所有项目开发都发生在该模块中;此外,数据库和应用元数据也在此模块中被引入和定义。
Designer模块利用元数据和规则来生成运行场景。
对于开发人员和元数据管理人员而言,它是核心模块。
·Operator负责管理和监控运行。
它被设计供生产操作人员使用,可以显示出包括错误记录、处理行数、执行统计、执行的实际代码等项目在内的执行日志。
在设计时,开发人员也可以利用Operator模块来调试应用。
·TopologyManager定义出基础的物理和逻辑体系结构。
通过该模块,使服务器、方案以及代理(程序)在主数据库中得到注册,通常由基础架构或项目管理员执行上述注册工作。
·SecurityManager负责管理用户资料及其访问权限。
SecurityManager还可以指定对对象和特性的访问权限。
通常,本模块供安全管理人员使用。
所有模块均在集中式存储库中存储信息。
6.运行时组件
在运行时,SchedulerAgent负责协调场景的执行。
它可以被安装在所有支持JavaVirtualMachine(J2SE)的平台上,包括Windows、Linux、HP-UX、Solaris、以及IBMAIX、iSeries/AS400、zSeries/OS/390。
执行可以由某个图形模块发起,或通过内置的调度程序或第三方调度程序得到触发。
在Extract-LoadTransform(E-LT)体系结构中,SchedulerAgent几乎不会执行任何转化操作。
它的作用仅仅是从执行存储库中获得代码,随后向数据库服务器、操作系统或脚本引擎发出执行该代码的请求。
在执行被完成后,SchedulerAgent更新数据库中的执行日志,随后报告错误信息以及执行统计。
用户可以通过Operator模块或MetadataNavigator的Web界面浏览执行日志。
尽管SchedulerAgent也可以充当转换引擎,但其很少会出于该目的被使用,清楚这一点是非常重要的。
Agent(代理程序)被安装在信息系统中的关键位置,以协调集成流程及影响现存系统。
在该分布式集成体系结构中,它们属于多线程、轻量级、负载均衡的组件。
图2:
运行时组件
7.存储库
存储库是由一个主存储库和几个工作存储库组成的。
这些存储库是关系数据库管中的数据库。
模块配置、开发或使用的全部对象被存储在其中的一个存储库中,并且通过各种体系结构的组件,以客户服务器模式得到访问。
通常,存储库中仅有一个主存储库,其中包含安全信息(用户资料及权限)、拓扑信息(技术及服务的定义)、以及目标的各版本。
通过TopologyManager和SecurityManager来管理和维护主存储库中的信息。
由于上述模块中均存储拓扑和安全信息,所以它们都都具备对主要储存库的访问权限。
图3:
主存储库及工作存储库
项目对象被存储在工作存储库上。
不同的工作存储库可以在同一安装环境中共存。
这对于维护不同的环境或反映特定版本生命周期——诸如开发、测试以及生产环境,是非常有用的。
工作存储库中存储关于以下项目的信息:
●模块——包括数据存储、列、数据完整性约束、交叉索引以及数据关联。
●项目——包括声明式规则、软件包、程序、文件夹、知识模块以及变量。
●运行时信息——包括场景、调度信息以及日志。
用户利用Designer以及Operator模块对工作存储库的内容进行管理。
还可以通过运行时的Agent(代理程序)对工作存储库进行访问。
在工作存储库仅被用于存储执行信息时(通常出于生产目的),可以将其称为执行存储库。
在运行时,利用Operator界面以及通过Agent(代理程序)可以对执行存储库进行访问。
切记所有工作存储库始终附属于一个、并且是唯一一个主存储库。
8.MetadataNavigator
MetadataNavigator是一种Java2EnterpriseEdition(J2EE)应用,可以提供对存储库的Web访问。
它使得用户能够对对象进行浏览,包括项目、模块以及执行日志。
MetadataNavigator可以被安装在应用服务器上,诸如OracleContainerforJava(OC4J)或ApacheTomcat。
企业用户、开发人员、操作人员以及管理人员可以通过Web浏览器访问MetadataNavigator。
凭借其全面的Web界面,用户能够看到流程图、追踪所有数据源、甚至深入到字段级了解构建数据所使用的转换。
用户还可以通过MetadataNavigator从Web浏览器中发布和监控场景。
图通过MetadataNavigator,用户能够从Web浏览器中访问执行元数据
9.其他组件及特征
OracleDataIntegrator还包括以下可选择性组件及特征:
知识模块可以使技术、数据库以及应用程序快速便捷集成的实现成为可能。
它们可以支持很多的平台,包括Oracle、Teradata、SybaseIQ、Netezza、SAP/R3、OracleApplications、Siebel、LDAP、以及XML。
●具备负载均衡的AdvancedParallelOption特性,通过自动平衡几种Agent(代理程序)间的工作负载,可以使数据的大批量处理成为可能。
●高级版本管理可以提供一种管理、保护以及复制工作单元的界面,在大的开发环境下提供团队开发能力。
●CommonFormatDesigner(CFD)特性使用户能够设计或从其他数据模型中快速组装数据模型,并随后自动生成用于加载和从该模型中提取数据的流程。
例如,用户能够利用CommonFormatDesigner、通过集合异构源生成操作性数据存储、数据中心或数据规范格式。
它还可以被用来设计数据仓库模型(如,Star或SnowflakeSchema,3NF)。
●发布与订阅变化数据捕获(CDC)特性通过提取变化数据,实现对源数据变化的追踪,并降低处理数据的容量。
●分布与订阅消息特性提供利用面向消息中间件(MOM)的能力,旨在执行一种异步、事件驱动的集成体系结构。
10.实例
10.1.环境准备
资料库采用OracleDatabase10G。
请自行安装。
假定有如下ORCLDB:
ORCL=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=HUAJHUA)(PORT=1522))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=orcl)
)
)
如果是9i之前,因为不支持char类型,需要将\lib\scripts\xml\TECH_Oracle.xml中VARCHAR2(%LCHAR)替换为VARCHAR2(%L)。
源系统采用OracleDatabase10G自带的scott.emp、scott.dept,简单起见也用ORCL。
不过scott用户需要解锁,并且需要授权:
alteruserSCOTTaccountunlock;
alteruserscottidentifiedbytiger;
grantconnect,resourcetoscott;
grantcreateviewtoscott;
目标系统也是OracleDatabase10G,简单起见也用ORCL,用户名ODI_TRG。
createuserODITRGidentifiedbyODITRGdefaulttablespaceusers;
grantconnect,resourcetoODITRG;
grantcreatedatabaselinktoODITRG;
grantcreatesynonymtoODITRG;
createtableODITRG.EMP
(
EMPNONUMBER(4)notnull,
ENAMEVARCHAR2(10),
JOBVARCHAR2(9),
MGRNUMBER(4),
HIREDATEDATE,
SALNUMBER(7,2),
COMMNUMBER(7,2),
DEPTNONUMBER
(2)
);
createtableODITRG.DEPT
(
DEPTNONUMBER
(2)notnull,
DNAMEVARCHAR2(14),
LOCVARCHAR2(13)
);
altertableODITRG.DEPT
addconstraintPK_DEPTprimarykey(DEPTNO);
10.2.创建资料库
创建MasterRepository用户:
createusersnpmidentifiedbysnpmdefaulttablespaceusers;
grantconnect,resourcetosnpm;
创建WorkRepository用户:
createusersnpwidentifiedbysnpwdefaulttablespaceusers;
grantconnect,resourcetosnpw;
注:
也允许这两个资料库用户在不同的服务器上。
创建MasterRepository
通过开始菜单MasterRepositoryCreation启动,并按下图输入资料库信息(密码为snpm):
通过“测试连接”可测试配置是否正确。
“确定”后开始创建数据库对象。
连接MasterRepository(创建存储连接“Repository”)
通过开始菜单TopologyManager启动,点击新建按钮“
”,并按下图输入资料库信息(SUPERVISOR密码为SUNOPSIS):
JDBC驱动程序:
oracle.jdbc.driver.OracleDriver
JDBCURL:
jdbc:
oracle:
thin:
@HUAJHUA:
1522:
ORCL
通过“测试”可测试配置是否正确,如果密码过于简单或与用户名相同,会报“密码无效”错误。
“确定”后会到登录界面:
创建WorkRepository
N:
TopologyManager\资料库\工作资料库\右键\插入工作资料库
在定义Tab页,按照下图输入连接名称、技术、用户和密码:
在JDBCTab页,输入如下信息:
JDBC驱动程序:
oracle.jdbc.driver.OracleDriver
JDBCURL:
jdbc:
oracle:
thin:
@HUAJHUA:
1522:
ORCL
通过“测试”测试配置是否正确。
“确定”后再随后的界面,输入如下信息:
“确定”后完成WorkRepository创建。
连接WorkRepository(创建工作存储连接“Repository”)
通过开始菜单Designer启动,点击新建按钮“
”,并按下图输入资料库信息(SUPERVISOR密码为SUNOPSIS):
JDBC驱动程序:
oracle.jdbc.driver.OracleDriver
JDBCURL:
jdbc:
oracle:
thin:
@HUAJHUA:
1522:
ORCL
通过“测试”可测试配置是否正确,如果密码过于简单或与用户名相同,会报“密码无效”错误。
“确定”后会到登录界面:
“确定”后就进入Designer模块了。
10.3.创建物理体系结构
创建数据服务器ORCL_SCOTT
N:
TopologyManager\物理体系结构\技术\Oracle\右键\插入数据服务器
定义数据服务器名称、DBlink、连接用户名和密码:
注1:
在“OracletoOracle”模式时,“实例/DBLINK”将用于ODI自动创建两个系统间的DBLINK,为了使DBLINK创建成功,需要在目标数据库端配置TNSNAME(=这里的“实例/DBLINK”);另外如果来源和目标是同一个数据库,那么DBLINK就是LOOPBACK的,这里的“实例/DBLINK”名字就不能等于SID。
故这里故意加了“.LOOPBACK”。
注2:
这个定义界面的用户名和密码,用于统一连接这个数据服务器,通常它的权限比较大,能够访问很多其他用户的数据。
而下面的“物理架构”里面选择的用户名,不是用来连接的,只是一个具体的用户。
ODI要求每个用户单独设置一个“物理架构”。
定义JDBC
驱动程序oracle.jdbc.driver.OracleDriver
URLjdbc:
oracle:
thin:
@HUAJHUA:
1522:
ORCL
创建物理架构ORCL_SCOTT.SCOTT
N:
上面步骤确定后,会自动弹出创建物理架构的界面:
这里需要选择两个架构(Schema),第一个是DataSchema。
第二个是WorkSchema,什么意思呢?
ELT中的T,需要创建一些工作表等临时对象如错误数据表、视图等,这些对象需要存储在工作Schema下。
简单起见这里都选择SCOTT。
其他参数默认即可。
确定后报没有选择上下文的警告,先忽略之。
创建数据服务器ORCL_ODITRG
以同样步骤,创建数据服务器ORCL_ODITRG、物理架构ORCL_ODITRG.ODITRG
结果如下:
驱动程序oracle.jdbc.driver.OracleDriver
URLjdbc:
oracle:
thin:
@HUAJHUA:
1522:
ORCL
10.4.创建逻辑体系结构
创建逻辑架构ORCL_SCOTT
N:
TopologyManager\逻辑体系结构\技术\Oracle\右键\插入逻辑架构
按下图录入命名和上下文,确定后在物理架构那里也会自动添加上下文。
创建逻辑架构ORCL_ODITRG
步骤同上。
结果如下:
10.5.创建项目
创建项目ORCL_DEMO
N:
Designer\<项目名>\右键\插入项目,输入名称ORCL_DEMO
导入知识模块
N:
Designer\<项目名>\ORCL_DEMO\知识模块\RKM\右键\导入知识模块
文件导入目录选择“C:
\OraHome_1\oracledi\impexp”
可以逐个选择需要的知识模块,为简单起见,全选后确定。
不过全部导入比较耗时和占空间,看下面的滚动条和右下脚的空间占用就知道了。
10.6.创建模型
创建模型ORCL_SCOTT
N:
Designer\模型\右键\插入模型
按下图内容输入名称、技术、逻辑架构
在反向标签页,上下文选择“Global”,然后点击“反向”按钮
这样,就把Scott下的表,全部反向工程到我们的模型中——BONUS、DEPT、EMP、SALGRADE:
创建模型ORCL_ODITRG
以同样的逻辑创建ORCL_ODITRG。
不过要添加个约束,以便后面的接口能够使用默认的CKM。
N:
Designer\模型\ORCL_ODITRG\EMP\约束\右键\插入键
名称:
PK_EMPNO_1
键或索引类型:
主键
列:
EMPNO
10.7.创建接口
创建接口POP.EMP
N:
Designer\<项目名>\ORCL_DEMO\<文件夹名>\接口\右键\插入接口
在“定义”标签页,输入名称:
POP.EMP
在“关系图”标签页,将ORCL_TRG模型下的EMP拖到“目标数据存储”这个区域;将ORCL_SCOTT模型下的EMP拖到“源”这个区域,并让Designer自动映射,结果如下:
切换到“流”标签页
选中SS_0,LKM已默认采用LKMOracletoOracle(DBLINK),我们需要把下面的AUTO_CREATE_DB_LINK改为是。
注,如果我们已经在数据库中手工创建了DBLINK,并且名字和定义“数据服务器”时定义的一样,这里就保持默认值否。
选中“目标+临时区域”,可以看到下面已经默认使用了IKMOracleIncrementalUpdate
切换到“控制”标签页
把默认的CKM改为CKMOracle。
确定后退出“接口”定义界面。
10.8.运行接口
运行接口
N:
Designer\<项目名>\ORCL_DEMO\<文件夹名>\接口\POP.EMP\右键\执行
我们不使用代理,保持上面的选项点击“确定”,将会启动ELT会话。
查看数据
N:
Designer\模型\ORCL_ODITRG\EMP\右键\数据
如果一切顺利,就可以看到上面的结果,数据已经从ORCL_SCOTT传到ORCL_TRG了。
10.9.监控和查看会话状态
启动Operator
N:
Operator,选择Designer一样的登录连接“Respository”进行登录
上面是刚才正常结束的接口POP.EMP执行会话
10.10.创建并运行包
创建包LOAD_SCOTT
N:
Designer\<项目名>\ORCL_DEMO\<文件夹名>\包\右键\插入包
名称:
LOAD_SCOTT
切换到“关系图”标签页,把“接口”下的“POP.EMP”拖进来:
结果如上图,当右键POP.EMP,可以看到,“第一步”以自动选中了。
运行包LOAD_SCOTT
N:
Designer\<项目名>\ORCL_DEMO\<文件夹名>\包\LOAD_SCOTT\右键\运行
切换到Operator,可以看到会话正常完成:
10.11.创建并运行方案
生成方案LOAD_SCOTT001
N:
Designer\<项目名>\ORCL_DEMO\<文件夹名>\包\LOAD_SCOTT\右键\生成方案
运行方案LOAD_SCOTT001
N:
Designer\<项目名>\ORCL_DEMO\<文件夹名>\包\LOAD_SCOTT\方案\LOAD_SCOTT\版本001\右键\执行
在方案这里,执行完可以直接查看运行状况,如上图,不需要切换到Operator
11.总结
OracleDataIntegrator是一种代表当前最高技术水平、非传统性(Legacy-free)的轻量级集成平台。
所有组件可以在任何Jave兼容系统上单独运行。
由于其全新的体系结构,使OracleDataIn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ODI 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)