工作总结ODI开发

上传人:沈*** 文档编号:140163711 上传时间:2022-08-23 格式:DOC 页数:77 大小:2.74MB
收藏 版权申诉 举报 下载
工作总结ODI开发_第1页
第1页 / 共77页
工作总结ODI开发_第2页
第2页 / 共77页
工作总结ODI开发_第3页
第3页 / 共77页
资源描述:

《工作总结ODI开发》由会员分享,可在线阅读,更多相关《工作总结ODI开发(77页珍藏版)》请在装配图网上搜索。

1、工作总结ODI开发作 者:付 朋项 目: 青啤PTS/MDM项目技术负责人: 荣耀/何莺日 期:五月 28, 2022Note: Title, Subject, Last Updated Date, Reference Number, and Version are marked by a Word Bookmark so that they can be easily reproduced in the header and footer of documents. When you change any of these values, be careful not to accident

2、ally delete the bookmark. You can make bookmarks visible by selecting Tools-OptionsView and checking the Bookmarks option in the Show region.目录工作总结i目录ii概述3工作总结- -ODI开发4ODI开发工作小结4ODI环境搭建5ODI架构搭建12ODI 代理创立14ODI基本开发18CDC接口开发36KM(知识模块)基本46附录61附录I :表空间创立脚本61附录II:触发器脚本61附录III:JKM客户化62更改历史65Note: To update

3、 the table of contents, put the cursor anywhere in the table and press F9. To change the number of levels displayed, select the menu option InsertIndex and Tables, make sure the Table of Contents tab is active, and change the Number of Levels to a new value.概述工作总结重要是描述我在青岛啤酒MDM项目和PTS项目4个月以来的学到技术和工作感

4、悟。重要是对ODI开发进行一次总结,描述对ODI技术开发的结识和理解。更多ODI开发技术可参阅Oracle Data Integrator应用指南文档。技术 目前接触的大部分都是与数据有关的开发,也许在技术方面学习和理解比较片面。1. 在MDM项目学到的技术:接口开发、ODI基本开发、FORM个性化、FORM基本开发、HTML报表开发等;2. 在PTS项目学到的技术:ODI环境搭建及CDC开发、RTF报表开发等。业务对业务的理解重要方式是和业务顾问进行交流,在EBS界面上跑业务流程等。1MDM项目业务结识:集中对数据进行管理,数据原则化,流程固化。2PTS项目业务结识:通过条码达到产品的追溯。

5、工作总结- -ODI开发重要是对在项目上学到的技术进行总结。注:如有错误或疑问,请人们欢迎提出和指正。ODI开发工作小结简朴论述在项目做过的ODI开发及有关信息ODI开发业务背景重要波及ODI开发的项目:青啤MDM项目和PTS项目。青啤MDM项目:青啤MDM系统大部分基本数据(如物料、物料类别等)都是从ERP系统获取的(初始化数据),然后在MDM系统中维护这些数据,并实时同步到ERP系统中。这些初始化数据和同步数据的迁徙媒介都是ODI。青啤PTS项目:PTS项目数据分为基本数据和业务数据,都采用ODI使这些数据流转在ERP、Data Center、总PTS、分PTS、CDCPTS等系统间。OD

6、I组件ODI重要是如下组件构成的:资料库(Repository):Master Repository、Work Repository。 设计工具,重要用如下设计工具:Topology Manager :描述物理和逻辑构架,在主资料库中标示服务器、Schema、代理。Security Manager :管理ODI顾客及权限,可以给配备文献及顾客访问对象的权限。Designer:是ODI开发的重要组件,创立和执行DataStores、Interfaces、Procedure、Packages,客户化KM等操作Operator:管理和监控数据转换任务的执行状况,可用于调试。筹划代理(Schedule

7、 Agent):属于Runtime组件,由于ODI采用E-LT架构,因此Schedule Agent只用来调度执行ELT任务,其数据转换引擎很少用到。此外尚有三个需要单独安装的组件:Metadata Navigator、Lightweight Designer、Public Web Services。ODI接口ODI接口重要分为两类:静态接口和动态接口。静态接口用于数据初始化,只在接口运营初期执行一次。动态接口用于数据维护,是实时性的。在MDM项目中,采用的是一般动态接口:基于静态接口,指定数据筛选字段(常用字段last_update_date)和筛选规则(last_update_datesy

8、sdate - 1)。在PTS项目中,采用的是CDC动态接口:基于静态接口,添加订阅者,生成日记。KM(知识模块)ODI的知识模块重要分为几种大类(RKM,CKM,LKM,IKM,SKM),其中最重要的是LKM(load KM)和IKM(Integration KM)RKM: RKM:完毕从源系统和目的系统的数据构造的反向工程来形成数据模型的功能。CKM:完毕数据质量检查。 JKM:日记记录知识模块,记录单个表或视图等中的新数据和更新的数据。 LKM:完毕从源数据库数据加载到临时表。 IKM:完毕从临时表的数据加载到目的表。 SKM:完毕ODI和WEB服务接口的功能。 SKM(Service

9、KM):Web服务知识模块,可以使用该知识模块来生成Web服务调用。ODI环境搭建ODI开发环境进行ODI开发的基本。创立ODI顾客ODI顾客就是指数据库为ODI开发而创立的顾客,就是说ODI通过此顾客连接数据库,又是ODI的Work Schema。ODI顾客权限较大,能否访问其她顾客的数据。如果某个顾客的数据需要进行ODI开发,那么这些数据的增删改查操作权限都得赋给ODI顾客。而ODI开发会波及到源系统和目的系统,那么需要分别为这些系统创立ODI顾客。创立脚本如下:- 创立ODI顾客(Work Schema)- 源系统 ERPcreate user soau identified by so

10、au default tablespace soau_data;grant connect,resource to soau; grant create database link to soau; grant create synonym to soau;- 目的系统 MDMcreate user soau identified by soau default tablespace soau_data;grant connect,resource to soau; grant create database link to soau; grant create synonym to soau

11、;阐明:1、 ODI顾客统一命名,以便,易于管理;2、 源目的和目的系统角色可互换(源系统作为目的系统,目的系统作为源系统),但是需要保证同一数据模型必须单向ODI开发;3、 源/目的系统建立物料架构时,如下两处地方需要设立为ODI顾客:创立资料库ODI在ERP系统搭建环境,其TNS信息为:BEST=(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1522) (CONNECT_DATA= (SID=BEST) ) )l 资料库概念:摘自Oracle Data Integrator应用指南Master Repository,保存公司所有IT资源

12、的Topology,保存项目和数据模型的安全信息、版本信息,供ODI图形模块等使用。一般创立一种即可。Master Repository要尽量独立存储,单独的Instance,或单独的Schema。Work Repository,保存项目和数据模型,供ODI图形模块等使用。可创立多种。一种Work Repository只能连接一种Master Repository。一种Schema只能存储一种Work Repository,但是Master Repository倒可与其安装在同一Schema。阐明:在哪个服务器上创立资料库是没有明确规定,可按项目需求来,本案例是在ERP服务器创立资料库(因素是

13、MDM数据库没有创立表空间的权限)。l 创立主资料库(Master Repository) ERP1、 创立Master Repository顾客create user soam identified by soam default tablespace users; grant connect, resource to soam;2、 创立Master Repository通过开始菜单Master Repository Creation启动(或ODI安装目录下的ODIoracledibinrepcreate.bat),并按下图输入资料库信息:JDBC:Driver oracle.jdbc.d

14、river.OracleDriver URL jdbc:oracle:thin:1522:BEST顾客/密码:soam/soam注:蓝颜色选中区域为ERP服务器TNS信息。点击按钮,如果浮现连接成功信息,点击OK。3、 连接Master Repository(创立主资料库连接“soamFP”)通过开始菜单Topology Manager启动(或ODI安装目录下的ODIoracledibintopology.bat),点击新建按钮,并按下图输入资料库信息:顾客/密码为SUPERVISOR/SUNOPSIS点击Test按钮,如果连接成功,点击OK,这样连接主资料库创立成功了。阐明:1、 顾客/密码

15、为什么输入SUPERVISOR/SUNOPSIS ? 顾客/密码其实是Security Manager Users,就是说安全管理顾客才有权限连接主资料库,此类顾客作为Security Repository Connections Users。ODI提供了一种默认的安全管理顾客SUPERVISOR/SUNOPSIS,如果你不懂得有哪些顾客可以使用,那么可选择默认的SUPERVISOR/SUNOPSIS。疑问:如果ODI初次搭建开发环境,是不是顾客/密码必须使用默认的SUPERVISOR/SUNOPSIS?2、 如果想自己创立顾客/密码,然后使用,该如何操作?前提是ODI已经搭建了开发环境,至少

16、有个Security Repository Connections顾客。登录已有的Designer,点击菜单中的(或ODI安装目录下的ODIoracledibinsecurity.bat)进入如下界面:通过添加自己需求的顾客信息,就可以使用了。更多顾客安全管理设立可参阅: l 创立工作资料库(Work Repository) ERP1、 创立Work Repository顾客create user soaw identified by soaw default tablespace users; grant connect, resource to soaw;2、 创立Work Reposit

17、ory创立存储连接“soamFP”成功后,界面显示如下点击OK按钮进入Security Manager窗口,点击菜单按钮,进入Topology Manager窗口,并切换至Repositories TAB页, 点击Insert Work Respository,就进入了创立工作资料库界面了,分别在Definition和JDBC TAB页输入如下信息,点击按钮Test,测试成功后,点击OK,弹出窗口,输入信息如下,点击OK,Work Repository创立完毕了。3、 连接Work Repository(创立工作资料库连接“soawFP”)开始菜单Designer启动(或ODI安装目录下的OD

18、Ioracledibindesigner. bat),点击新建按钮,并按下图输入资料库信息:顾客/密码为SUPERVISOR/SUNOPSIS点击Test按钮,测试连接成功后,点击OK到登录界面,选择创立好的工作资料库连接“soamFP”,点击OK进入Designer模块。ODI架构搭建ODI中所使用的数据模型基本是逻辑架构,而逻辑架构相应了物理架构。物理架构属于数据服务器。创立数据服务器Topology ManagerPhysical ArchitectureTechnologiesOracle右键Insert Data ServerConnection那一栏中的User/Password,

19、输入的是ODI顾客/密码:soau/soau。Instance/dblink(Data Server) 特别阐明 - Oracle to Oracle 模式1、 Instance/dblink作用简朴的说Instance/dblink其实就是两个数据库(源数据库和目的数据库)间建立DBLINK的媒介。当执行ODI接口时,ODI会根据源数据服务器的Instance/dblink信息匹配目的服务器tnsnames.ora文献中TNSNAME,如果匹配成功,ODI会自动根据TNS信息与源数据库之间创立DBLINK;如果匹配不成功,表达没有明确DBLINK建立对象,DBLINK创立后无法正常连接,导致

20、ODI接口执行会抛出错误信息:TNS:could not resolve the connect identifier specified因此输入Instance/dblink(Data Server)信息前,请保证在目的服务器tnsnames.ora文献中已经添加源服务器TNS信息。2、 Instance/dblink输入规定在目的数据库的$ORACLE_HOMEnetworkadmin文献夹下,tnsnames.ora文献中必须有源数据库的一种TNS,而Instance/dblink(Data Server)必须填相应的TNSNAME。例如案例创立的是ERP系统的数据服务器,那么Insta

21、nce/dblink(Data Server)必须输入MDM系统TNS文献中相应ERP系统的TNSNAME:点击Test按钮,测试成功后,点击OK,创立ERP系统的数据服务器完毕了。用相似的方式创立MDM系统的数据服务器。创立物理架构上面环节拟定后,会自动弹出创立物理架构的界面:阐明:Schema 和 Work Schema的区别Schema(架构)是指数据源所在,也就是我们需要抽取的数据源或者是要把数据放进去的数据源;Work Schema(工作架构) 是指ODI开发寄存临时表的地方。一般会指定某个Schema为Work Schema,例如案例中的SOAU,就是说所有系统的ODI开发都是规定

22、使用SOAU Schema。而Schema可按照需求来选择,例如ERP系统有多维数据库开发(即多种客户化顾客)例如CUX、BSM、HADF等,都需要进行ODI开发,那么可以建立相相应的物理架构:ERP System.CUX、ERP System.BSM、ERP System.HADF等。本案例中我们创立的是物理架构是ERP System.CUX。点击OK按钮,会浮现一种警告(提示需要指定上行文,由于逻辑架构还没创立,可以先忽视),点击OK物理架构的创立就完毕了。用相似的方式创立MDM系统的物理架构。创立逻辑架构Topology ManagerLogical ArchitectureTechno

23、logiesOracle右键Insert Logic Schema为了使物理架构和逻辑架构的相应关系更直观,逻辑架构命名和物理架构一致:ERP System.CUX, 点击OK,即可完毕逻辑架构的创立。同步物理架构Context TAB页也会自动添加上下文。用相似的方式创立MDM系统的逻辑架构。ODI 代理创立启动代理(Agent)开始菜单Agent(或ODI安装目录下的ODIoracledibinagent.bat) 启动代理创立物理代理Topology ManagerPhysical ArchitectureAgents右键Insert Agent将本机设立为ODI代理。如图所示,Name

24、:FP Agent Host:127.0.0.1Port:20910(默认) Maximum number of sessions supported:100如果代理有效,点击Test按钮,显示测试成功界面。测试成功,点击OK。创立逻辑代理Topology ManagerLogical ArchitectureAgents右键Insert Logical Agent输入如下信息:Name:FP Agent Physical Agents选择FP Agent点击OK,逻辑代理创立完毕。测试代理代理创立好了,需要进行测试。择一种开发好的接口或过程,点击执行,弹出如下窗口Agent选择需要测试的代理

25、:FP Agent。点击OK,执行接口,并切换到Operator查看执行成果发现接口执行成功了,表白代理创立成功。启动筹划代理(Scheduler Agent) 编辑配备文献在Win CMD下使用Agent编译两个顾客的密码:目录是ODI安装目录D:ODIODIoracledibinodiparams.bat右键编辑,注意修改如下内容:set ODI_SECU_DRIVER=oracle.jdbc.driver.OracleDriverset ODI_SECU_URL=jdbc:oracle:thin:1522:BESTset ODI_SECU_USER=soamset ODI_SECU_EN

26、CODED_PASS=eSyXEmZlSzy2VL9mAxu8yset ODI_SECU_WORK_REP=SOAMFPset ODI_USER=SUPERVISORset ODI_ENCODED_PASS=fDyX.TBY03lah6frR1Br启动筹划代理D:ODIODIoracledibinagentscheduler.bat注:报错信息是未定义代理。因素是ERP(BEST环境)服务器,没有设立代理服务器,ODI是无法创立ERP代理。本章节创立的代理是本机代理,而ODI资料库等信息都是建立在ERP(BEST环境)的,因此无法创立ERP代理,启动ERP筹划代理就会抛出上图的错误信息。由于临

27、时ERP测试环境没有代理服务器,也没有创立代理服务器的权限。故启动筹划代理的研究有机会继续研究。ODI基本开发ODI架构创立完毕后,就可以进行ODI的基本开发,重要是项目、模型、接口、包等ODI基本要素的建立。ODI基本开发案例:青啤MDM项目ERP-MDM的ODI开发。创立项目(Projects)由于本ODI开发总结选用的案例是青啤MDM项目中ERP-MDM的ODI开发:源系统是ERP,目的系统式MDM。那么项目可命名为:TsingTaoMDM,并将该项目下的First Folder重新命名为ERP-MDM。点击Designer组件的Projects TAB 页图标,新建Project,命名

28、为TsingTaoMDM。注:这个Project是指ODI开发项目,本案例将青啤MDM项目作为ODI开发项目,可将青啤MDM项目所有ODI开发都放在这个Project里面。固然也可以更细或更广的划分,例如在青啤正式的ODI开发中,所有的ODI开发都放在TSINGTAO里面,并没有很细的划分;而在Oracle Data Integrator应用指南中,直接用ORCL_DEMO的ODI开发作为Project,划分得很细。点击OK按钮,左侧栏会显示新建的Project将First Folder重新命名为ERP-MDM,就完毕了项目的创立。效果如下图,导入知识模块 (KM)DesignerTsingT

29、aoMDMKnowledge ModulesRKM右键Import Knowledge Modules文献选择你ODI安装目录下的ODIoraclediimpexp,将下面的文献所有选中,点击OK,导入时间较长。也可以只选中你所需要导入的KM文献。创立模型(Models)点击Designer组件的Models TAB 页图标,新建Models Folder,命名为ERP System,点击OK即可完毕Model Folder的创立,右键已经创立的Model Foder:ERP System, 选择Inser Model,输入如下信息,点击OK,ERP系统的Model创立完毕了。用相似的方式创立

30、MDM系统的Model。反向数据存储(Datastores)反向的数据存储,是ODI接口开发的前提。反向分为两种:原则反向和客户化反向。此章节描述了原则反向,客户化反向波及了RKM,将在KM(知识模块)基本章节RKM中进行具体的阐明。案例:ERP-MDM物料初始化ODI接口开发。l 源系统的Datastores反向案例注意事项:青啤所有视图都创立在APPS顾客下,也就说 CUX_MTL_SYSTEM_ITEMS_INIT_V数据源在APPS Schema,而不是在CUX Schema。如果在CUX Schema下反向会导致反向出来Datastore是没有构造的,如下图所示,那么在做CUX_MT

31、L_SYSTEM_ITEMS_INIT_V反向之前我们需要建立一种为视图反向的物理架构和逻辑架构:ERP System.APPS。按照ODI开发规定,还需要创立相应的ERP System.APPS模型,本次案例没有将其独立出来。这个案例告诉我们,反向Datastores选择的物理架构的Schema必须是数据源Schema,否则反向会浮现上面的问题。反向前准备:CREATE synonym cux.cux_mtl_system_items_init_v FOR apps.cux_mtl_system_items_init_v;CREATE synonym soau.cux_mtl_system_

32、items_init_v FOR apps.cux_mtl_system_items_init_v;建立反向ERP系统视图的物理架构和逻辑架构(参照ODI架构搭建章节):ERP System.APPS,建立成功后如下图,DesignerModelsERP System 右键模型ERP System.CUX,选择Edit,(或双击模型)选择Reverse(反向) TAB页,输入如下信息,Definition TAB 页:Reverse TAB 页:点击按钮,稍等半晌,Datastore就反向出来了,如图所示,l 目的系统的Datastores反向反向前准备:CREATE synonym soau

33、.cux_mtl_system_items_b FOR cux.cux_mtl_system_items_b;GRANT SELECT,INSERT,UPDATE,DELETE ON cux.cux_mtl_system_items_b TO soau;阐明: Datastores反向失败因素分析1、 保证待反向的表/视图是属于目前Schema(数据源)。2、 保证ODI的Work Schema(SOAU)顾客能访问到反向数据存储的数据源。创立和执行接口(Interfaces)ODI接口开发是ODI开发的核心。基本接口一般用于ODI数据初期导入,运营一次。 创立接口DesignerProjec

34、tssingTaoMDMERP-MDMInterfaces 右键Insert Interface输入如下信息,Definition TAB页 Name:ERP-MDM.CUX_MTL_SYSTEM_ITEMS_BDiagram TAB页Flow TAB页:源系统Datastore选择默认原则Oracle的LKM:LKM Oracle to Oracle (DBLINK)目的系统Datastore选择默认原则Oracle的IKM:IKM Oracle Incremental Update其她默认即可。点击OK,创立接口完毕。 执行接口(DesignerProjectssingTaoMDMERP-

35、MDMInterfacesERP-MDM.CUX_MTL_SYSTEM_ITEMS_B) 右键创立好的接口 选择Excute执行完,去Operator查看执行成果同步检测目的系统数据库数据与否导入成功,创立和执行过程(Procedures) 创立过程DesignerProjectssingTaoMDMERP-MDMProcedures 右键Insert Procedure输入如下信息,Definition TAB页Name:ERP-MDM.IMPOTR_ITEMS点击图上图标,弹出窗口,输入如下信息Name:Import itemsSchema:ERP System.APPSCommand:b

36、egin apps.CUX_ITEM_IMPORT_PKG.IMPORT_ITEMS;end;阐明:Command中的调用apps.CUX_ITEM_IMPORT_PKG.IMPORT_ITEMS是客户化的ERP-MDM物料初始化API,API是创立在APPS顾客下的,因此上面的Schema选择ERP System.APPS。点击OK,Procedure创立完毕了。 执行过程(DesignerProjectssingTaoMDMERP-MDMProceduresMDM-ERP.IMPORT_ITEMS) 右键创立好的过程 选择Excute执行后,切换到Operator查看执行成果登录到目的系统

37、数据库(MDM)查看Product表中与否有需要导入的物料信息。SELECT * FROM mtl_system_items_b;SELECT * FROM mtl_system_items_tl;创立和执行包(Packages)将需要一起执行的接口、过程放在一起打包,让ODI依次执行。 创立包DesignerProjectssingTaoMDMERP-MDMPackages 右键Insert Package输入如下信息,Definition TAB页Name:ERP-MDM.IMPOTR_ITEMDiagram TAB 页选中需要放入包得接口或过程,按住鼠标不放,拖曳到Diagram TAB

38、 页灰色区域中,如图所示用这个方式将接口:ERP-MDM.CUX_MTL_SYSTEM_ITEMS_B和过程:ERP-MDM.IMPOTR_ITEMS拖放到包中,ODI会默认第一种拖到包中的接口或是程序设为包执行的第一步。如果你想设立此外的为第一步执行,可以选中你需设立的接口或过程,右键 选择First Step。然后选择这两个箭头,对包中的接口和视图进行先后顺序的连接。注意,连接的顺序是包执行的顺序。图上表达的是:先执行接口ERP-MDM.CUX_MTL_SYSTEM_ITEMS_B,执行成功会接着执行过程ERP-MDM.IMPOTR_ITEMS;接口执行失败,则执行结束,不会执行过程了。如

39、果想接口执行失败还继续执行过程则连接箭头选择。点击OK,包创立完毕了。如图所示 执行包(DesignerProjectssingTaoMDMERP-MDMPackagesMDM-ERP.IMPORT_ITEMS) 右键创立好的包 选择Excute执行后,切换到Operator查看执行成果如果想理解具体的执行成果,可展开Steps查看。创立和执行方案(Scenarios)创立方案一般用于接口或过程或包按设定的筹划进行执行。这里对包:MDM-ERP.IMPORT_ITEMS创立和执行方案。过程和接口创立和执行方案方式相似。 创立方案(DesignerProjectssingTaoMDMERP-MD

40、MPackagesMDM-ERP.IMPORT_ITEMS) 右键需要创立方案的包 选择 Generate Scenario 如没特殊需求,Name和Version的值默认即可。点击OK,ODI生成了Scenarios文献,展开有刚新建的的Scenario。继续展开Scenario:ERP_MDM_IMPORT_ITEMS,右键 Insert Scheduling输入如下信息Definition TAB页:定义上下文、代理、日记级别、活动期间、执行频率Execution Cycle TAB页:定义执行时的循环次数、循环起始时间、循环间隔等上图定义的是每10分钟执行一次。 执行方案右键创立的方案

41、:ERP_MDM_IMPORT_ITEMS,选择 Execute执行成功后,创立方案的包,就会每10分钟执行一次。CDC接口开发CDC全称Changed Data Capture,捕获变化的数据。CDC概述CDC捕获源数据的变动状况记录到日记表,在传递数据时,只需要根据日记表中记录而无需考虑未变动的数据,大大提高ELT的效率。日记ODI的CDC由日记记录来推动,日记是CDC的一部分,用于记录在数据源上变化(insert、delete、update)的数据。日记记录机制涉及四种要素Journals、Capture processes、Subscribers、Journalizing views。

42、Journals:日记,存储变化的数据的地方,在关系型数据库中一般指的就是表格。Capture processes:捕获进程,用来捕获数据源上的数据变化并写入Journals中,一般指的就是触发器;也可用数据源上可用的专门的捕获程序(例如支持从数据源服务器log获取数据的程序)。Subscribers:订阅者,记录的是需要使用CDC数据的使用者;只有所有的订阅者都使用了CDC数据后,日记内容才干被清除。Journalizing views:日记查看程序,可用于查看日记内的数据内容,并且可获取CDC数据以支持ODI将新数据写入目的数据存储中。设立模型日记(Journalizing)Designe

43、r模型文献(ERP System) 右键 模型(ERP System.CUX ) 选择Edit,选择Journalizing TAB页,设立模型日记,ODI会默认Journalizing Mode为Simple,JKM为JKM Oracle Simple.TsingTaoMDM。没有特殊需求,这个默认设立可以进行ODI的CDC接口开发。但是所选用的案例需要注意:源系统(ERP)的Datastore的数据源是视图。默认的JKM Oracle Simple.TsingTaoMDM是针对表的Datastore,是不能满足我们需求的,本人对这个JKM进行了客户化,具体客户化内容详见KM(只是模块)基本

44、章节,客户化后JKM为:JKM Oracle View_Simple.TsingTaoMDM。阐明:1、简朴(Simple):一般用于单个Datastore(一般就是代表一种表)。2、一致性集(Consistent Set):当一组Datastore采用CDC方式时,为保证数据的前后顺序和完整性制约关系,我们需要告诉ODI按照一定的顺序来抓取,ODI是通过设立Consistency Window来实现的。这样一组Datastore就叫做Consistent Set。此外,ODI建议,如果Subsriber诸多,用Consistent Set有助于提高性能。注:对于一种Datastore来说,S

45、imple和Consistent Set不能同步存在。添加到CDC(Add to CDC)Add to CDC作用是将一种模型标记为可以进行CDC接口开发的模型。Designer模型文献(ERP System) 模型(ERP System.CUX )右键 Datastore(CUX_MTL_SYSTEM_ITEMS_INIT_V)Changed Data CaptureAdd to CDC选择Add to CDC,刷新之后Datastore变为了,多了个黄色的小时钟。注:如果Datastore没有Primary Key,Add to CDC会报错。因此在Add to CDC之前,查看Datas

46、tore与否有Primary Key,没有则需要创立一种。创立CDC接口的时候此Datastore就可以增长日记字段了。如下图所示,如果Datastore没有Add to CDC,上图红色框部分是灰色的,不可选择。添加订阅者(Subscriber(s)添加订阅者意义在于对数据源记录进行insert、delete、update操作时,会给订阅者一条相应的操作记录,ODI会根据Datastores的订阅者信息捕获相应数据,对目的数据源进行一致的操作。Designer模型文献(ERP System) 模型(ERP System.CUX )右键 Datastore(CUX_MTL_SYSTEM_ITE

47、MS_INIT_V)Changed Data CaptureSubscriber Subscriber(s)输入订阅者信息,点击OK,点击OK,进入组件Operator查看添加订阅者与否成功。表达添加订阅者执行成功。附:不妨来理解添加订阅者这个操作,ODI做了些什么?展开核心环节是3和4步,双击3,会发现ODI在Work Schema(SOAU)下创立一种订阅者表:SOAU.SNP_SUBSCRIBERS。表达警告:name is already used by an existing object。我们可以推测,ODI的SOAU工作架构下,所有的订阅者都寄存在这个表中(其实ODI就是将所有订

48、阅者寄存在这个表中)。环节4是注册订阅者,本质就是往SOAU.SNP_SUBSCRIBERS插入一条该订阅者的记录。通过下面的查询SQL,会发现SOAU.SNP_SUBSCRIBERS的确查询到了想要的记录:启动日记(Start Journal)启动日记之前,需要保证JKM与否选择对的。在本总结的案例中,考虑视图Datastoredes的特殊,客户化了原则的JKM,需要选择客户化的JKM,如图所示Designer模型文献(ERP System) 模型(ERP System.CUX )右键 Datastore(CUX_MTL_SYSTEM_ITEMS_INIT_V)Changed Data Ca

49、pture Start Journal点击Start Journal,浮现如下窗口,选择需要启动日记的订阅者ERP-MDM,点击OK,弹出消息框继续点击OK。并进入Operator查看启动日记与否成功。特别阐明:1、 启动日记会删掉目前Datastore所有的日记数据,相称于初始化了该Datastore的日记。因此在正式ODI环境中,启动日记操作需慎用,避免遗留的日记数据丢失。2、 启动日记之前需要考虑:如果待启动日记的Datastore是初次启动日记操作,启动日记是必须的,无需考虑日记数据的丢失;如果不是初次,表达之前已做过启动日记操作,只要添加订阅者即可,无需再次启动日记。误区:初次接触C

50、DC开发觉得添加了订阅者必须启动该订阅者的日记。启动日记本质就是执行了JKM,因此将在KM(知识模块)基本的JKM模块中对启动日记进行具体的探讨。创立CDC接口CDC接口是基于基本接口,添加CDC。复制基本接口:ERP-MDM.CUX_MTL_SYSTEM_ITEMS_B选中复制后的接口,右键Edit重命名为: ERP-MDM.CUX_MTL_SYSTEM_ITEMS_B(CDC)Diagram TAB页选中源系统Datastore:CUX_MTL_SYSTEM_ITEMS_INIT_V,勾上然后选中,设立JRN_SUBSCRIBER = ERP-MDM点击OK保存,CDC接口创立完毕。执行C

51、DC接口和基本接口执行措施相似。为了验证CDC接口的执行精确,对源系统数据源进行修改,添加默认采购员BEST_JULIE。在日记表中查询与否有需要更新的数据,Designer模型文献(ERP System) 模型(ERP System.CUX )右键 Datastore(CUX_MTL_SYSTEM_ITEMS_INIT_V)Changed Data CaptureJournal Data可以看到日记数据如下右键CDC接口,选择Excute,并切换到Operator查询执成果登录目的数据库(MDM),查询与否有数据进行更新了,更新信息与否一致KM(知识模块)基本下面大体对KM基本理解进行一种系

52、统性的阐明,如果想进一步理解KM或客户化KM(较大逻辑修改),需要对Jython有一定的基本。此总结只描述了JKM的客户化开发。RKMRKM用于反向Datastores,在Model中选择。为了更好对RKM进行理解,排除其她操作影响,特意新建一种模型:ERP System.RKM。如图所示,选择Customized(客户化)反向方式,RKM选择Oracle原则RKM:RKM Oracle.TsingTaoMDM。点击,然后进入Operator查看ODI是如何反向Datastores的。Step2和Step3,重要获取数据源中表或者视图信息,对表来说Step3无意义,对视图来说Step2无意义。

53、其实Get XXX环节都是为Datastore的构造进行设计。例如,如果RKM在Step3查到的相应的视图信息,那么Datastore Type为View,如下左边图所示,右图是用Standard方式反向出来的Datastore,会发现Datastore Type是不同样的。其她的Step如果想进行理解,可以将这些环节执行的语句Copy到数据库运营,查看运营成果和语句取值逻辑可以理解ODI想做什么。例如Step4,执行效果(部分)如下,我们可以得出Step4的作用是得到Datastore的Columns。如果想对RKM源码进行理解,DesignerProjectsTsingTaoMDMKMRK

54、M RKM Oracle打开RKM Oracle,双击需要理解的Step,就可以看到源码,例如Get columns,JKM启动(或关闭)日记时执行的KM,在Model选择。Designer模型文献(ERP System) 模型(ERP System.RKM )右键 Edit 选择Journalizing TAB页,选择JKM Oracle Simple.TsingTaoMDM然后执行Datastore:CUX_MTL_SYSTEM_ITEMS_INIT_V的Add to CDCSubscriberStart Journal进入Operator组件,你会发现启动日记失败,双击Step11,查看

55、报错信息:java.sql.SQLException: ORA-25001: cannot create this trigger type on views。解决方案:替代触发器可以建立在多表视图上,我们需要客户化这个JKM,修改Step11的Create trigger源码。复制原则JKM生成JKM名称为:Copy of JKM Oracle Simple,改名为:JKM Oracle View_Simple选择Details TAB页双击上图选中的Create trigger将上图选中区域修改为:create or replace trigger instead of insert or

56、 update or delete on修改后,点击提交,然后点OK,JKM客户化完毕了。其她环节参照CDC接口开发章节中启动日记(Start Journal)。启动日记成功后,查看JKM执行过程这些环节看标题也能大概懂得JKM做了什么,从Step11可以懂得JKM捕获数据是通过数据源表/视图的触发器捕获的。下面以数据源来解析JKM的操作。一方面JKM创立了基于Datastore:CUX_MTL_SYSTEM_ITEMS_INIT_V的触发器,查询SQL:SELECT * FROM dba_objects o WHERE o.OWNER = SOAU AND o.OBJECT_NAME LIK

57、E %CUX_MTL_SYSTEM_ITEMS_INIT_V%AND o.OBJECT_TYPE = TRIGGER;查询成果可以查看下触发器T$CUX_MTL_SYSTEM_ITEMS_INIT_V代码,理解该触发器具体信息。查看SQL:View T$CUX_MTL_SYSTEM_ITEMS_INIT_V由于篇幅过长,触发器代码详见附录II。我们可以看出,对数据源:CUX_MTL_SYSTEM_ITEMS_INIT_V进行Insert、Update、Delete操作都会触发该触发器,并向日记表:SOAU.J$CUX_MTL_SYSTEM_ITEMS_INIT_V插入操作记录。但是通过测试发现

58、,只有对视图进行Insert、Update、Delete操作ODI才会写入日记,而对视图关联的表进行操作却不能触发触发器。这会导致此客户化的JKM在实际ODI开发中没故意义。此处只是演示一下JKM的客户化。附录III中有最简朴的视图(每个关联表的主键都是一致的或不一致主键的表只是作为关联表)的客户化JKM开发脚本,对本案例是可行的。如果想更进一步理解视图JKM客户化研究,可做参照。通过对JKM的理解,复杂视图是无法做到JKM客户化的。CKM 在模型(Models)中添加CKMDesigner模型文献(ERP System) 模型(ERP System.CUX )右键 点击Edit 选择Cont

59、rol TAB页ODI已经默认了原则CKM:CKM Oracle.TsingTaoMDM。Models的CKM检查静态数据一致性:通过设立约束条件,可以清洗、过滤数据,只按需集成数据。 在接口(Interfaces)中添加CKM例如在ODI基本开发的接口ERP-MDM.CUX_MTL_SYSTEM_ITEMS_B添加CKMDesignerProjectssingTaoMDMERP-MDMInterfacesERP-MDM.CUX_MTL_SYSTEM_ITEMS_B 右键 选择EditODI默认的CKM是:CKM Oracle。接口(Interfaces)的CKM在加载过程中检查数据:做数据流

60、程过程中的数据控制,通过将Designer中FLOW_CONTROL选项改为是,可以启用此CKM,如下图。FLOW_CONTROL默认值是YES。下图是CKM在接口中执行成果(部分)LKM在接口中源系统Datastores选择LKM。LKM作用是将远程服务器的源数据下载到ODI临时区。如下图所示接口ERP-MDM.CUX_MTL_SYSTEM_ITEMS_B选择的LKM为了更好的理解LKM,可查看LKM具体信息。如下图所示通过对这些环节的源码理解和执行成果,LKM Oracle to Oracle (DBLINK) 重要环节:其她LKM可类似理解。1、 在目的系统创立连接源系统的DBLINKcreate database link connect to identified by using %=odiR

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!