OracleDataIntegrator利用手册.docx
- 文档编号:28227500
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:48
- 大小:1.33MB
OracleDataIntegrator利用手册.docx
《OracleDataIntegrator利用手册.docx》由会员分享,可在线阅读,更多相关《OracleDataIntegrator利用手册.docx(48页珍藏版)》请在冰豆网上搜索。
OracleDataIntegrator利用手册
OracleDataIntegrator
利用及配置文档
一、OracleDataIntegrator基础
安装ODI
软件下载
以.5Windows版本为例,从以下地址下载安装文件:
安装选择
一、运行安装盘下的setup\Windows\
二、产品选择第一个选项安装所有组件——ODI和DataProfiling、DataQuality
3、类型选择第一个选项同时安装Server和Client
安装配置
1、名称和途径不要和其它的Oracle产品相同。
2、为DataProfiling和Quality的Server设置端口、治理员及其密码(设为madmin)
注:
Windows下netstat–a命令能够查看端口占用情形。
3、为DataProfiling和Quality的Client设置要连接的主机名和端口
因为Server是本机,因此设置为localhost,端口和上面步骤设置的一样。
4、为DataQuality设置ODBC适配器端口,维持默许
效劳和菜单
一、效劳
OracleDataQualityInetd,OracleDataQualityScheduler
二、菜单
OracleDataIntegrator
OracleDataProfilingandQuality
ODI简介
.1整体概述
1.ODI本身是一种开放的架构,支持几乎所有目前流行的关系数据库,包括咱们经常使用的oracle,db2,Informix,Sybase等数据库数据源,和xml,txt,excel等文本数据源。
而且它是Java开发的产品,能够跨平台利用,包括咱们经常使用的windows,linux,aix,unix平台,同时还能与中间件融合,能够融合到整个IT架构中。
2.ODI推出ELT架构,与传统的ETL架构相较,少了中间的转换引擎。
很多ETL产品都需要安装自己的转换引擎,而ODI直接挪用源数据或目标数据效劳器的数据库端。
如此,实际数据处置相当于数据库与数据库之间的连接处置,而数据库效劳器处置效率远高于单唯一台转换引擎做转换,因为它始终维持数据在数据库中处置。
3.ODI有自己的知识模块,这些知识模块能够依照需求进行选择,而且这些知识模块支持开放式的设计,能够用自己熟悉的数据库语言或Java语言来实现,能够更好地设计数据库流和业务要求,ODI能够结合数据库的优化模式,能够通过知识模型设计自己的知识模块,使处置数据更快。
4.ODI能够把数据发布成效劳与SOA进行完美结合,使ODI能够结合到业务流程当中,通过Web效劳的方式进行数据实时地查看和修改。
@hrl0 5.代理支持并行处置和负载均衡。
$R/L#P1R
P8\v+r0 6.完善的权限操纵、版本治理功能。
ITPUB个人空间1Eb+_8z&Bl 7.支持数据质量检查,清洗和回收脏数据。
ITPUB个人空间'{1Wf
C+Kk 8.支持与JMS消息中间件集成。
.2E-LT与ETL比较
1.传统的ETL
传统的ETL工具的运行方式是,第一从多种数据源抽取数据,然后在一个专有的、中间层的ETL引擎转换数据,最后装载转换后的数据到数据仓库或集成效劳器中。
因此“ETL”不单单是个名称还表现了操作的顺序。
就目前来看,ETL进程的数据转换是计算密集型最大的步骤,而且执行的整个进程完满是由专有ETL引擎在专用效劳器上完成的。
ETL引擎执行数据转换(有些时候还要进行数据质量检查)是基于行级进行的,因此,在整个进程中很容易形成效率瓶颈。
另外,数据必然要在网络移动两次,一次是数据源和ETL效劳器之间,一次是ETL效劳器和目标数据仓库之间。
因此,若是用户想要确保参照完整性,例如通过从数据仓库比较数据发觉违背参照完整性的值,那被参照的数据必然要从目标下载到ETL效劳器,如此就更增加了网络负载及下载时刻并致使额外的性能问题。
2.E-LT
E-LT体系结构结合了手工编码和ETL方式的最正确特性于一个解决方案中。
E-LT方式改变了数据转换发生在哪里和如何处置,它充分利用了开发者的已有技术、数据库引擎和效劳器硬件去达到最大程度的可能性。
事实上,E-LT方式从头部署数据转换步骤在目标数据库系统,改变了操作顺序为:
从数据源表抽取数据,装载表到目标效劳器,然后利用数据库治理系统特有的SQL(nativeSQL)操作在数据库系统上转换数据
E-LT体系结构充分利用了数据库治理系统的能力和吞吐量,而仅仅受限于其部署的效劳器的特性。
因为不需要额外的效劳器、技术和技术来完成操作,E-LT体系结构提供最优的性能和可伸缩性,而且容易治理整个集成系统的基础架构。
.3图形化工具
OracleDataIntegrator的四个图形化用户模块别离是:
1.设计器(Designer):
在那个工具中,用户能够为数据转换和数据完整性概念声明规那么。
数据库和应用系统的元数据能够被导入或概念。
设计器利用元数据和规那么为实际的生产环境生成方案(scenarios)。
所有项目的开发都是通过那个界面完成的,而且它仍是在设计时期,开发人员和元数据治理员的要紧用户工具。
2.操作器(Operator):
在那个工具中,用户在生产环境治理和监控OracleDataIntegrator的任务。
它是为了生产环境的操作者设计的,能够显示执行日记,包括错误数、被处置的行
数、执行的统计信息和被执行的实际代码等等。
在设计时期,开发人员也能够利用操作器进行调试。
这是运行时期的要紧用户工具。
3.拓扑治理器(TopologyManager):
在那个工具中,用户概念基础架构的物理和逻辑体系结构。
通过那个工具,效劳器、方案(schema)和代理被注册在OracleDataIntegrator主资料库中。
它要紧被项目或系统的治理员利用。
4.平安治理器(SecurityManager):
在那个工具中,治理员能够治理用户的账户和权限。
它给OracleDataIntegrator对象和功能分派属性信息和用户权限。
它要紧被平安治理员利用。
此工具很少利用。
.4利用OID构建数据集成的概要步骤与流程
1.[MasterRepositoryCreation]创建主资料库,一样1个即可
2.[TopologyManager]创建工作资料库,能够创建多个,也能够仅创建1个
3.[TopologyManager]创建数据效劳器,每一个Instance或应用创建一个,底下依照用户创建不同的物理架构
4.[TopologyManager]创建逻辑架构,通常与物理架构一一对应,也能够一个逻辑架构对应多个物理架构
5.[Designer]创建项目,导入知识模块,或自己开发知识模块
6.[Designer]创建模型,每一个模型对应到逻辑架构
7.[Designer]创建接口,修改必要的知识模块和选项
8.[Designer]运行接口
9.[Operator]查看和监控运行结果,包括犯错脚本和信息
10.进一步可创建包、方案,并运行
二、OracleDataIntegrator完整例子
相关名词说明
什么是资料库(Repository)
ODI资料库可安装在任何支持ANSIISO89的数据库中。
资料库分两种:
Repository,保留企业所有IT资源的Topology,保留项目和数据模型的平安信息、版本信息,供ODI图形模块等利用。
通常创建一个即可。
MasterRepository要尽可能独立存储,单独的Instance,或单独的Schema。
Repository,保留项目和数据模型,供ODI图形模块等利用。
可创建多个。
一个WorkRepository只能连接一个MasterRepository。
一个Schema只能存储一个WorkRepository,只是MasterRepository倒可与其安装在同一Schema。
注:
Oracle实验室已验证通过的数据库有:
HypersonicSQL、IBMDB2UDB、IBMDB2/400、Informix、MicrosoftSQLServer、Oracle、SybaseASAnywhere、SybaseASEnterprise、SybaseASIQ等。
什么是拓扑(Topology)
TopologyManager要紧用来治理下面5类任务,并将信息存储在主资料库中,供所有模块共享利用。
a)物理体系结构,概念各类技术及其数据效劳器、物理架构、物理代理。
b)逻辑体系结构,概念各类技术及其关联的逻辑架构、逻辑代理。
c)上下文,用来连接物理架构和逻辑架构。
d)语言,不同技术所能采纳的语言特性。
e)资料库,包括主资料库及其附属的工作资料库。
那个地址重点再看几个概念:
●技术和数据类型:
ODI将不同的数据库(Oracle、DB2等)、文件格式(XMLFile等)、应用系统,用不同的“Technology”来表示。
每种技术都有自己支持的“DataType”。
●数据效劳器:
在ODI中,每一个数据库效劳器、JMS消息文件、每组文本文件必需先概念为“DataServer”。
●物理架构:
在数据效劳器下,每一个用户、JMSTopic、文本文件必需概念为一个“PhysicalSchema”。
●物理代理:
在物理体系结构需要概念“PhysicalAgent”,许诺在远程机械上执行ODI任务。
●逻辑架构、逻辑代理是物理架构、物理代理的逻辑组合,方便用户治理和利用。
什么是知识模块
OracleDataIntegrator之因此能适应不同的、多种多样的数据源,灵活有效的完成数据抽取/转换/载入的进程,均是基于其知识模型体系。
KnowledgeModules类似于程序中的插件,OracleDataIntegrator将数据整合的任务抽象出六个组成部份:
1、反向工程RKM,Reverse-engineeringknowledgemodules,用于从数据源读取表及其他对象。
2、日记JKN,Journalizingknowledgemodules,用于为单一或一组表/视图记录新建的和修改的数据。
ODI支持部份数据源的ChangeDataCapture(CDC)功能,前提为ODI项目中启用该模块。
3、加载LKM,Loadingknowledgemodules,用于从数据源抽取数据。
4、检查CKM,Checkknowledgemodules,用于检测抽掏出的源数据的合法性。
5、集成IKM,Integrationknowledgemodules,用于将StagingArea中的数据转换至目标表,基于目标数据库产生对应的转换SQL。
6、效劳SKM,Serviceknowledgemodules,提供将数据以WebServices的方式展现的功能。
环境预备
基础数据库
资料库采纳OracleDatabase10G。
请自行安装。
假定有如下ODITEST数据库实例:
ODITEST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CHIFENG)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=oditest)))
若是是9i之前,因为不支持char类型,需要将\lib\scripts\xml\中的VARCHAR2(%LCHAR)替换为VARCHAR2(%L)。
源系统
创建数据库实例BANKORS,并创建用户sh,然后新建sh下的customers表,此表在例如数据库中ORCL中有,能够从ORCL下导出,然后用sh用户导入到BANKORS中。
创建sh用户并授权:
createusershidentifiedbysh;grantconnect,resourcetosh;grantcreateviewtosh;
注:
为了保证源数据的平安性,故授予用户shconnect,resource权限。
因为在ODI处置数据的进程中,会产生一些中间视图等,故需要授予用户shcreateview权限。
目标系统
此例中采纳ODITEST数据库作为目标数据库,用户为odi:
createuserodiidentifiedbyodidefaulttablespaceusers;grantconnect,resourcetoodi;grantcreatedatabaselinktoodi;grantcreatesynonymtoodi;
作为目标数据库,方便的时候也可直接给予用户odidba权限。
创建资料库
创建用户
创建MasterRepository用户:
createusermasteridentifiedbymasterdefaulttablespaceusers;grantconnect,resourcetomaster;
创建WorkRepository用户:
createuserworkidentifiedbyworkdefaulttablespaceusers;grantconnect,resourcetowork;
注:
也许诺这两个资料库用户在不同的效劳器上。
此例中主资料库用户与工作资料库用户创建在目标数据库ODITEST中。
创建MasterRepository
通过开始菜单→所有程序→Oracle→OracleDataIntegrator→RepositoryManagement→MasterRepositoryCreation启动,并按以下图输入资料库信息,密码为(master)
通过“测试连接”可测试配置是不是正确。
“确信”后开始创建数据库对象。
连接MasterRepository
通过开始菜单→所有程序→Oracle→OracleDataIntegrator→TopologyManager启动,点击新建按钮“
”,并按以下图输入资料库信息(SUPERVISOR密码为SUNOPSIS):
JDBC驱动程序:
URL:
jdbc:
oracle:
thin:
@localhost:
1521:
oditest
通过“测试”可测试配置是不是正确,若是密码过于简单或与用户名相同,可能会报“密码无效”错误。
“确信”后会到登录界面如下:
点击“确信”后会进入到TopologyManager界面。
创建WorkRepository
TopologyManager\资料库\工作资料库\右键\插入工作资料库
在“概念”Tab页,依照以下图输入连接名称、技术、用户和密码:
在“JDBC”Tab页,输入如下信息:
JDBC驱动程序:
URL:
jdbc:
oracle:
thin:
@localhost:
1521:
oditest
通过“测试”测试配置是不是正确。
“确信”后再随后的界面,输入如下信息:
外部ID默以为空,确信后会自动生成,类型选择“开发”。
“确信”后完成WorkRepository的创建。
连接WorkRepository
通过开始菜单→所有程序→Oracle→OracleDataIntegrator→Designer启动,点击新建按钮“
”,并按以下图输入资料库信息(SUPERVISOR密码为SUNOPSIS):
JDBC驱动程序:
URL:
jdbc:
oracle:
thin:
@HUAJHUA:
1522:
ORCL
通过“测试”可测试配置是不是正确,若是密码过于简单或与用户名相同,会报“密码无效”错误。
“确信”后会到登录界面:
“确信”后就进入Designer模块了。
创建物理体系结构
创建上下文(Global)
TopologyManager\上下文\\右键\插入上下文。
显现如下界面,输入名称,代码会默许和名称相同,点击确信即可成功创建一个上下文
创建数据效劳器(SOURCE_BANKORS)
TopologyManager\物理体系结构\技术\Oracle\右键\插入数据效劳器。
●概念数据效劳器名称、DBlink、连接用户名和密码:
注1:
在“OracletoOracle”模式时,“实例/DBLINK”将用于ODI自动创建两个系统间的DBLINK,为了使DBLINK创建成功,需要在目标数据库端配置TNSNAME(=那个地址的“实例/DBLINK”);另外若是来源和目标是同一个数据库,那么DBLINK确实是LOOPBACK的,那个地址的“实例/DBLINK”名字就不能等于SID。
需要另行创建一个与SID不同的DBLINK故那个地址加了“.LOOPBACK”。
注2:
那个概念界面的用户名和密码,用于统连续接那个数据效劳器,通常它的权限比较大,能够访问很多其他用户的数据。
而下面的“物理架构”里面选择的用户名,不是用来连接的,只是一个具体的用户。
ODI要求每一个用户单独设置一个“物理架构”。
●概念JDBC
驱动程序jdbc:
oracle:
thin:
@localhost:
1521:
bankors
创建物理架构
上面步骤确信后,会自动弹出创建物理架构的界面:
那个地址需要选择两个架构(Schema),第一个是DataSchema。
第二个是WorkSchema,什么意思呢?
ELT中的T,需要创建一些工作表等临时对象如错误数据表、视图等,这些对象需要存储在工作Schema下。
简单起见那个地址都选择SH。
其他参数默许即可。
确信后报没有选择上下文的警告,先忽略之。
创建数据效劳器(TARGET_ODITEST)
以一样步骤,创建数据效劳器TARGET_ODITEST、物理架构TARGET_ODITEST.ODI
只只是在创建进程中连接数据库的用户为odi,实例为ODITEST。
结果如下:
创建逻辑体系结构
创建逻辑架构(SOURCE_BANKORS)
TopologyManager\逻辑体系结构\技术\Oracle\右键\插入逻辑架构
按以下图录入命名和上下文,确信后在物理架构那里也会自动添加上下文。
创建逻辑架构(TARGET_ODITEST)
步骤同上。
结果如下:
创建项目
创建项目Example
Designer\项目\右键\插入项目,输入名称Example
导入知识模块
Designer\项目\Example\知识模块\RKM\右键\导入知识模块
文件导入目录选择“%ODIHOME%\oracledi\impexp”
能够逐个选择需要的知识模块,为简单起见,全选后确信。
只是全数导入比较耗时和占空间,看下面的转动条和右下脚的空间占用就明白了。
创建模型
创建模型(Source_Bankors)
Designer\模型\右键\插入模型
1.按以下图内容输入名称、技术、逻辑架构
2.在反向标签页,上下文选择“tieling”,然后点击“反向”按钮
如此,就把sh用户下的表,全数反向工程到咱们的模型中:
创建模型(Target_Oditest)
以一样的逻辑创建Target_Oditest。
创建接口
创建接口table_to_table
Designer\项目\Example\第一个文件夹\接口\右键\插入接口
“概念”标签页,输入名称:
table_to_table
“关系图”标签页,将Target_Oditest模型下的CUSTOMERS拖到“目标数据存储”那个区域;将Source_Bankors模型下的CUSTOMERS拖到“源”那个区域,并让Designer自动映射,结果如下:
3.切换到“流”标签页
选中SS_0,LKM已默许采纳LKMOracletoOracle(DBLINK),咱们需要把下面的AUTO_CREATE_DB_LINK改成是。
注,若是咱们已经在数据库中手工创建了DBLINK,而且名字和概念“数据效劳器”时概念的一样,那个地址就维持默许值否。
选中“目标+临时区域”,能够看到下面已经默许利用了IKMOracleIncrementalUpdate
“操纵”标签页
把默许的CKM改成CKMOracle。
确信后退出“接口”概念界面。
运行接口
运行接口(table_to_table)
Designer\项目名\Example\第一个文件夹\接口\table_to_table\右键\执行
咱们不利用代理,维持上面的选项点击“确信”,将会启动ELT会话。
查看数据
Designer\模型\Target_Oditest\CUSTOMERS\右键\数据
若是一切顺利,就能够够看到上面的结果,数据已经从目的端传送到源端了。
监控和查看会话状态
启动Operator
Operator,选择Designer一样的登录连接“Respository”进行登录
上面是适才正常终止的接口table_to_table的执行会话。
问题诊断
若是显现问题,Operator也提供了比较好的调式方式:
点击犯错的结点,在“说明”标签页,能够看到要执行的代码
在“执行”标签页,能够看到执行的结果和具体的错误信息
关于犯错的会话,能够从头执行,而且,能够先修改“说明”标签页的内容,加入调式信息
创建并运行包
创建包Package1
Designer\项目名\Example\第一个文件夹\包\右键\插入包
名称:
Package1
切换到“关系图”标签页,把“接口”下的“table_to_table”拖进来:
结果如上图,当右键table_to_table接口,能够看到,“第一步”以自动选中了。
运行包Package1
Designer\项目名\Example\第一个文件夹\包\Package1\右键\运行
切换到Operator,若是没有错误的情形下能够看到会话正常完成:
创建并运行方案
生成方案PACKAGE1
Designer\项目名\Example\第一个文件夹\包\Package1\右键\生成方案
运行方案PACKAGE1
Designer\项目名\Example\第一个文件夹\包\Package1\方案\PACKAGE1\版本001\右键\执行
在方案那个地址,执行完能够直接查看运行状况,如上图,不需要切换到Operator。
小结
接口、包、方案之间的关系
1.接口、包、方案
简单的话,如咱们上面的例子,接口、包、方案的内容和运行结果一样。
事实上,接口是ELT大体单元,包类似工作流,用于将接口串接起来,方案是对象的发布版本,可明白得为预编译的。
包中能够嵌套方案,但包中不能嵌套包。
2.6个KM
RKM用于在模型中进行反向工程,把数据库的表概念、约束等导入到ODI中。
SKM用于将接口等发布为WebService。
运行期ODI依照交替执行其他KM,JKM、LKM、IKM、CKM。
3.方案是对象的发布版本,可明白得为预编译的
Variable变量、Procedure进程、Interface接口、Package包都能够发布为方案,方案。
方案能够在Designer中运行,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OracleDataIntegrator 利用 手册
![提示](https://static.bdocx.com/images/bang_tan.gif)