版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.:.;任务总结付朋第 PAGE * Arabic 65 页共 NUMPAGES 65页 任务总结ODI开发作 者:付 朋项 目: 青啤PTS/MDM工程技术担任人: 光彩/何莺日 期: SAVEDATE MMMM d, yyyy January 13, 2021Title, 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 documen
2、ts. When you change any of these values, be careful not to accidentally delete the bookmark. You can make bookmarks visible by selecting Tools-OptionsView and checking the Bookmarks option in the Show region.目录 TOC o 2-3 任务总结 PAGEREF _Toc314234935 h i目录 PAGEREF _Toc314234936 h ii概述 PAGEREF _Toc31423
3、4937 h 3任务总结- -ODI开发 PAGEREF _Toc314234938 h 4ODI开发任务小结 PAGEREF _Toc314234939 h 4ODI环境搭建 PAGEREF _Toc314234940 h 5ODI架构搭建 PAGEREF _Toc314234941 h 12ODI 代理创建 PAGEREF _Toc314234942 h 14ODI根底开发 PAGEREF _Toc314234943 h 18CDC接口开发 PAGEREF _Toc314234944 h 36KM(知识模块)根底 PAGEREF _Toc314234945 h 46附录 PAGEREF _
4、Toc314234946 h 61附录I :表空间创建脚本 PAGEREF _Toc314234947 h 61附录II:触发器脚本 PAGEREF _Toc314234948 h 61附录III:JKM客户化 PAGEREF _Toc314234949 h 62更改历史 PAGEREF _Toc314234950 h 65To update the table of contents, put the cursor anywhere in the table and press F9. To change the number of levels displayed, select the
5、menu option InsertIndex and Tables, make sure the Table of Contents tab is active, and change the Number of Levels to a new value.PAGE 2概述任务总结主要是描画我在青岛啤酒MDM工程和PTS工程4个月以来的学到技术和任务感悟。主要是对ODI开发进展一次总结,描画对ODI技术开发的认识和了解。更多ODI开发技术可参阅文档。技术 目前接触的大部分都是与数据相关的开发,能够在技术方面学习和了解比较片面。在MDM工程学到的技术:接口开发、ODI根底开发、FORM个性化、
6、FORM根底开发、HTML报表开发等;在PTS工程学到的技术:ODI环境搭建及CDC开发、RTF报表开发等。业务对业务的了解主要方式是和业务顾问进展交流,在EBS界面上跑业务流程等。1MDM工程业务认识:集中对数据进展管理,数据规范化,流程固化。2PTS工程业务认识:经过条码到达产品的追溯。任务总结- -ODI开发主要是对在工程上学到的技术进展总结。注:如有错误或疑问,请大家欢迎提出和指正。ODI开发任务小结简单表达在工程做过的ODI开发及相关信息ODI开发业务背景主要涉及ODI开发的工程:青啤MDM工程和PTS工程。青啤MDM工程:青啤MDM系统大部分根底数据(如物料、物料类别等)都是从ER
7、P系统获取的(初始化数据),然后在MDM系统中维护这些数据,并实时同步到ERP系统中。这些初始化数据和同步数据的迁徙媒介都是ODI。青啤PTS工程:PTS工程数据分为根底数据和业务数据,都采用ODI使这些数据流转在ERP、Data Center、总PTS、分PTS、CDCPTS等系统间。ODI组件ODI主要是以下组件组成的:资料库(Repository):Master Repository、Work Repository。 设计工具,主要用以下设计工具:Topology Manager :描画物理和逻辑构架,在主资料库中标示效力器、Schema、代理。Security Manager :管理O
8、DI用户及权限,可以给配置文件及用户访问对象的权限。Designer:是ODI开发的主要组件,创建和执行DataStores、Interfaces、Procedure、Packages,客户化KM等操作Operator:管理和监控数据转换义务的执行情况,可用于调试。方案代理(Schedule Agent):属于Runtime组件,由于ODI采用E-LT架构,所以Schedule Agent只用来调度执行ELT义务,其数据转换引擎很少用到。另外还有三个需求单独安装的组件:Metadata Navigator、Lightweight Designer、Public Web Services。ODI
9、接口ODI接口主要分为两类:静态接口和动态接口。静态接口用于数据初始化,只在接口运转初期执行一次。动态接口用于数据维护,是实时性的。在MDM工程中,采用的是普通动态接口:基于静态接口,指定数据挑选字段(常用字段last_update_date)和挑选规那么(last_update_datesysdate - 1)。在PTS工程中,采用的是CDC动态接口:基于静态接口,添加订阅者,生成日志。KM(知识模块)ODI的知识模块主要分为几个大类(RKM,CKM,LKM,IKM,SKM),其中最重要的是LKM(load KM)和IKM(Integration KM)RKM: RKM:完成从源系统和目的系
10、统的数据构造的反向工程来构成数据模型的功能。CKM:完成数据质量检查。 JKM:日志记录知识模块,记录单个表或视图等中的新数据和更新的数据。 LKM:完成从源数据库数据加载到暂时表。 IKM:完成从暂时表的数据加载到目的表。 SKM:完成ODI和WEB效力接口的功能。 SKM(Service KM):Web效力知识模块,可以运用该知识模块来生成Web效力调用。ODI环境搭建ODI开发环境进展ODI开发的根底。创建ODI用户ODI用户就是指数据库为ODI开发而创建的用户,就是说ODI经过此用户衔接数据库,又是ODI的Work Schema。ODI用户权限较大,能否访问其他用户的数据。假设某个用户
11、的数据需求进展ODI开发,那么这些数据的增删改查操作权限都得赋给ODI用户。而ODI开发会涉及到源系统和目的系统,那么需求分别为这些系统创建ODI用户。创建脚本如下:- 创建ODI用户(Work Schema)- 源系统 ERPcreate 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;- 目的系统 MDMcreate user so
12、au identified by soau default tablespace soau_data;grant connect,resource to soau; grant create database link to soau; grant create synonym to soau;阐明:ODI用户一致命名,方便,易于管理;源目的和目的系统角色可交换(源系统作为目的系统,目的系统作为源系统),但是需求保证同一数据模型必需单向ODI开发;源/目的系统建立物料架构时,如下两处地方需求设置为ODI用户:创建资料库ODI在ERP系统搭建环境,其TNS信息为:BEST=(DESCRIPTIO
13、N= (ADDRESS=(PROTOCOL=tcp)(HOST=erpdemo.tsingtao)(PORT=1522) (CONNECT_DATA= (SID=BEST) ) )资料库概念:摘自Master Repository,保管企业一切IT资源的Topology,保管工程和数据模型的平安信息、版本信息,供ODI图形模块等运用。通常创建一个即可。Master Repository要尽能够独立存储,单独的Instance,或单独的Schema。Work Repository,保管工程和数据模型,供ODI图形模块等运用。可创建多个。一个Work Repository只能衔接一个Master
14、Repository。一个Schema只能存储一个Work Repository,不过Master Repository倒可与其安装在同一Schema。阐明:在哪个效力器上创建资料库是没有明确要求,可按工程需求来,本案例是在ERP效力器创建资料库(缘由是MDM数据库没有创建表空间的权限)。创建主资料库(Master Repository) ERP创建Master Repository用户create user soam identified by soam default tablespace users; grant connect, resource to soam;创建Master Re
15、pository经过开场菜单Master Repository Creation启动(或ODI安装目录下的ODIoracledibinrepcreate.bat),并按以下图输入资料库信息:JDBC:Driver oracle.jdbc.driver.OracleDriver URL jdbc:oracle:thin:erpdemo.tsingtao:1522:BEST用户/密码:soam/soam注:蓝颜色选中区域为ERP效力器TNS信息。点击按钮,假设出现衔接胜利信息,点击OK。衔接Master Repository创建主资料库衔接“soamFP经过开场菜单Topology Manager
16、启动(或ODI安装目录下的ODIoracledibintopology.bat),点击新建按钮,并按以下图输入资料库信息:用户/密码为SUPERVISOR/SUNOPSIS点击Test按钮,假设衔接胜利,点击OK,这样衔接主资料库创建胜利了。阐明:用户/密码为什么输入SUPERVISOR/SUNOPSIS ? 用户/密码其实是Security Manager Users,就是说平安管理用户才有权限衔接主资料库,这类用户作为Security Repository Connections Users。ODI提供了一个默许的平安管理用户SUPERVISOR/SUNOPSIS,假设他不知道有哪些用户可
17、以运用,那么可选择默许的SUPERVISOR/SUNOPSIS。疑问:假设ODI初次搭建开发环境,是不是用户/密码必需运用默许的SUPERVISOR/SUNOPSIS?假设想本人创建用户/密码,然后运用,该如何操作?前提是ODI曾经搭建了开发环境,至少有个Security Repository Connections用户。登录曾经有的Designer,点击菜单中的(或ODI安装目录下的ODIoracledibinsecurity.bat)进入如下界面:经过添加本人需求的用户信息,就可以运用了。更多用户平安管理设置可参阅: HYPERLINK xchunlnei.blog.sohu/118954
18、775.html xchunlnei.blog.sohu/118954775.html 创建任务资料库(Work Repository) ERP创建Work Repository用户create user soaw identified by soaw default tablespace users; grant connect, resource to soaw;创建Work Repository创建存储衔接“soamFP胜利后,界面显示如下点击OK按钮进入Security Manager窗口,点击菜单按钮,进入Topology Manager窗口,并切换至Repositories TAB
19、页, 点击Insert Work Respository,就进入了创建任务资料库界面了,分别在Definition和JDBC TAB页输入如下信息,点击按钮Test,测试胜利后,点击OK,弹出窗口,输入信息如下,点击OK,Work Repository创建完成了。衔接Work Repository创建任务资料库衔接“soawFP开场菜单Designer启动(或ODI安装目录下的ODIoracledibindesigner. bat),点击新建按钮,并按以下图输入资料库信息:用户/密码为SUPERVISOR/SUNOPSIS点击Test按钮,测试衔接胜利后,点击OK到登录界面,选择创建好的任务资
20、料库衔接“soamFP,点击OK进入Designer模块。ODI架构搭建ODI中所运用的数据模型根底是逻辑架构,而逻辑架构对应了物理架构。物理架构属于数据效力器。创建数据效力器Topology ManagerPhysical ArchitectureTechnologiesOracle右键Insert Data ServerConnection那一栏中的User/Password,输入的是ODI用户/密码:soau/soau。Instance/dblink(Data Server) 特别阐明 - Oracle to Oracle 方式Instance/dblink作用简单的说Instance/
21、dblink其实就是两个数据库(源数据库和目的数据库)间建立DBLINK的媒介。当执行ODI接口时,ODI会根据源数据效力器的Instance/dblink信息匹配目的效力器tnsnames.ora文件中TNSNAME,假设匹配胜利,ODI会自动根据TNS信息与源数据库之间创建DBLINK;假设匹配不胜利,表示没有明确DBLINK建立对象,DBLINK创建后无法正常衔接,导致ODI接口执行会抛出错误信息:TNS:could not resolve the connect identifier specified所以输入Instance/dblink(Data Server)信息前,请确保在目的
22、效力器tnsnames.ora文件中曾经添加源效力器TNS信息。Instance/dblink输入要求在目的数据库的$ORACLE_HOMEnetworkadmin文件夹下,tnsnames.ora文件中必需有源数据库的一个TNS,而Instance/dblink(Data Server)必需填对应的TNSNAME。例如案例创建的是ERP系统的数据效力器,那么Instance/dblink(Data Server)必需输入MDM系统TNS文件中对应ERP系统的TNSNAME:点击Test按钮,测试胜利后,点击OK,创建ERP系统的数据效力器完成了。用一样的方式创建MDM系统的数据效力器。创建物
23、理架构上面步骤确定后,会自动弹出创建物理架构的界面:阐明:Schema 和 Work Schema的区别Schema(架构)是指数据源所在,也就是我们需求抽取的数据源或者是要把数据放进去的数据源;Work Schema(任务架构) 是指ODI开发存放暂时表的地方。普通会指定某个Schema为Work Schema,比如案例中的SOAU,就是说一切系统的ODI开发都是规定运用SOAU Schema。而Schema可按照需求来选择,比如ERP系统有多维数据库开发(即多个客户化用户)比如CUX、BSM、HADF等,都需求进展ODI开发,那么可以建立相对应的物理架构:ERP System.CUX、ER
24、P System.BSM、ERP System.HADF等。本案例中我们创建的是物理架构是ERP System.CUX。点击OK按钮,会出现一个警告(提示需求指定上行文,由于逻辑架构还没创建,可以先忽略),点击OK物理架构的创建就完成了。用一样的方式创建MDM系统的物理架构。创建逻辑架构Topology ManagerLogical ArchitectureTechnologiesOracle右键Insert Logic Schema为了使物理架构和逻辑架构的对应关系更直观,逻辑架构命名和物理架构一致:ERP System.CUX, 点击OK,即可完成逻辑架构的创建。同时物理架构Context
25、 TAB页也会自动添加上下文。用一样的方式创建MDM系统的逻辑架构。ODI 代理创建启动代理(Agent)开场菜单Agent(或ODI安装目录下的ODIoracledibinagent.bat) 启动代理创建物理代理Topology ManagerPhysical ArchitectureAgents右键Insert Agent将本机设置为ODI代理。如下图,Name:FP Agent Host:127.0.0.1Port:20910(默许) Maximum number of sessions supported:100假设代理有效,点击Test按钮,显示测试胜利界面。测试胜利,点击OK。创
26、建逻辑代理Topology ManagerLogical ArchitectureAgents右键Insert Logical Agent输入如下信息:Name:FP Agent Physical Agents选择FP Agent点击OK,逻辑代理创建完成。测试代理代理创建好了,需求进展测试。择一个开发好的接口或过程,点击执行,弹出如下窗口Agent选择需求测试的代理:FP Agent。点击OK,执行接口,并切换到Operator查看执行结果发现接口执行胜利了,阐明代理创建胜利。启动方案代理(Scheduler Agent)编辑配置文件在Win CMD下运用Agent编译两个用户的密码:目录是
27、ODI安装目录D:ODIODIoracledibinodiparams.bat右键编辑,留意修正以下内容:set ODI_SECU_DRIVER=oracle.jdbc.driver.OracleDriverset ODI_SECU_URL=jdbc:oracle:thin:erpdemo.tsingtao:1522:BESTset ODI_SECU_USER=soamset ODI_SECU_ENCODED_PASS=eSyXEmZlSzy2VL9mAxu8yset ODI_SECU_WORK_REP=SOAMFPset ODI_USER=SUPERVISORset ODI_ENCODED_
28、PASS=fDyX.TBY03lah6frR1Br启动方案代理D:ODIODIoracledibinagentscheduler.bat注:报错信息是未定义代理。缘由是ERP(BEST环境)效力器,没有设置代理效力器,ODI是无法创建ERP代理。本章节创建的代理是本机代理,而ODI资料库等信息都是建立在ERP(BEST环境)的,所以无法创建ERP代理,启动ERP方案代理就会抛出上图的错误信息。由于暂时ERP测试环境没有代理效力器,也没有创建代理效力器的权限。故启动方案代理的研讨有时机继续研讨。ODI根底开发ODI架构创建完成后,就可以进展ODI的根底开发,主要是工程、模型、接口、包等ODI根底
29、要素的建立。ODI根底开发案例:青啤MDM工程ERP-MDM的ODI开发。创建工程(Projects)由于本ODI开发总结选取的案例是青啤MDM工程中ERP-MDM的ODI开发:源系统是ERP,目的系统式MDM。那么工程可命名为:TsingTaoMDM,并将该工程下的First Folder重新命名为ERP-MDM。点击Designer组件的Projects TAB 页图标,新建Project,命名为TsingTaoMDM。注:这个Project是指ODI开发工程,本案例将青啤MDM工程作为ODI开发工程,可将青啤MDM工程一切ODI开发都放在这个Project里面。当然也可以更细或更广的划分
30、,比如在青啤正式的ODI开发中,一切的ODI开发都放在TSINGTAO里面,并没有很细的划分;而在中,直接用ORCL_DEMO的ODI开发作为Project,划分得很细。点击OK按钮,左侧栏会显示新建的Project将First Folder重新命名为ERP-MDM,就完成了工程的创建。效果如以下图,导入知识模块 (KM)DesignerTsingTaoMDMKnowledge ModulesRKM右键Import Knowledge Modules文件选择他ODI安装目录下的ODIoraclediimpexp,将下面的文件全部选中,点击OK,导入时间较长。也可以只选中他所需求导入的KM文件。
31、创建模型(Models)点击Designer组件的Models TAB 页图标,新建Models Folder,命名为ERP System,点击OK即可完成Model Folder的创建,右键曾经创建的Model Foder:ERP System, 选择Inser Model,输入如下信息,点击OK,ERP系统的Model创建完成了。用一样的方式创建MDM系统的Model。反向数据存储(Datastores)反向的数据存储,是ODI接口开发的前提。反向分为两种:规范反向和客户化反向。此章节描画了规范反向,客户化反向涉及了RKM,将在KM(知识模块)根底章节RKM中进展详细的阐明。案例:ERP-
32、MDM物料初始化ODI接口开发。源系统的Datastores反向案例本卷须知:青啤一切视图都创建在APPS用户下,也就说 CUX_MTL_SYSTEM_ITEMS_INIT_V数据源在APPS Schema,而不是在CUX Schema。假设在CUX Schema下反向会导致反向出来Datastore是没有构造的,如以下图所示,那么在做CUX_MTL_SYSTEM_ITEMS_INIT_V反向之前我们需求建立一个为视图反向的物理架构和逻辑架构:ERP System.APPS。按照ODI开发要求,还需求创建对应的ERP System.APPS模型,本次案例没有将其独立出来。这个案例通知我们,反向
33、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_items_init_v FOR apps.cux_mtl_system_items_init_v;建立反向ERP系统视图的物理架构和逻辑架构(参考ODI架构搭建章节):ERP System.APPS,建立胜利后如以下图,DesignerModel
34、sERP System 右键模型ERP System.CUX,选择Edit,(或双击模型)选择Reverse(反向) TAB页,输入如下信息,Definition TAB 页:Reverse TAB 页:点击按钮,稍等片刻,Datastore就反向出来了,如下图,目的系统的Datastores反向反向前预备:CREATE synonym soau.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
35、;阐明: Datastores反向失败缘由分析确保待反向的表/视图是属于当前Schema(数据源)。确保ODI的Work Schema(SOAU)用户能访问到反向数据存储的数据源。创建和执行接口(Interfaces)ODI接口开发是ODI开发的中心。根底接口普通用于ODI数据初期导入,运转一次。创建接口DesignerProjectssingTaoMDMERP-MDMInterfaces 右键Insert Interface输入如下信息,Definition TAB页 Name:ERP-MDM.CUX_MTL_SYSTEM_ITEMS_BDiagram TAB页Flow TAB页:源系统Da
36、tastore选择默许规范Oracle的LKM:LKM Oracle to Oracle (DBLINK)目的系统Datastore选择默许规范Oracle的IKM:IKM Oracle Incremental Update其他默许即可。点击OK,创建接口完成。执行接口(DesignerProjectssingTaoMDMERP-MDMInterfacesERP-MDM.CUX_MTL_SYSTEM_ITEMS_B) 右键创建好的接口 选择Excute执行完,去Operator查看执行结果同时检测目的系统数据库数据能否导入胜利,创建和执行过程(Procedures)创建过程DesignerPr
37、ojectssingTaoMDMERP-MDMProcedures 右键Insert Procedure输入如下信息,Definition TAB页Name:ERP-MDM.IMPOTR_ITEMS点击图上图标,弹出窗口,输入如下信息Name:Import itemsSchema:ERP System.APPSCommand:begin apps.CUX_ITEM_IMPORT_PKG.IMPORT_ITEMS;end;阐明:Command中的调用apps.CUX_ITEM_IMPORT_PKG.IMPORT_ITEMS是客户化的ERP-MDM物料初始化API,API是创建在APPS用户下的,
38、所以上面的Schema选择ERP System.APPS。点击OK,Procedure创建完成了。执行过程(DesignerProjectssingTaoMDMERP-MDMProceduresMDM-ERP.IMPORT_ITEMS) 右键创建好的过程 选择Excute执行后,切换到Operator查看执行结果登录到目的系统数据库(MDM)查看Product表中能否有需求导入的物料信息。SELECT * FROM mtl_system_items_b;SELECT * FROM mtl_system_items_tl;创建和执行包(Packages)将需求一同执行的接口、过程放在一同打包,让
39、ODI依次执行。创建包DesignerProjectssingTaoMDMERP-MDMPackages 右键Insert Package输入如下信息,Definition TAB页Name:ERP-MDM.IMPOTR_ITEMDiagram TAB 页选中需求放入包得接口或过程,按住鼠标不放,拖曳到Diagram TAB 页灰色区域中,如下图用这个方式将接口:ERP-MDM.CUX_MTL_SYSTEM_ITEMS_B和过程:ERP-MDM.IMPOTR_ITEMS拖放到包中,ODI会默许第一个拖到包中的接口或是程序设为包执行的第一步。假设他想设置另外的为第一步执行,可以选中他需设置的接口
40、或过程,右键 选择First Step。然后选择这两个箭头,对包中的接口和视图进展先后顺序的衔接。留意,衔接的顺序是包执行的顺序。图上表示的是:先执行接口ERP-MDM.CUX_MTL_SYSTEM_ITEMS_B,执行胜利会接着执行过程ERP-MDM.IMPOTR_ITEMS;接口执行失败,那么执行终了,不会执行过程了。假设想接口执行失败还继续执行过程那么衔接箭头选择。点击OK,包创建完成了。如下图执行包(DesignerProjectssingTaoMDMERP-MDMPackagesMDM-ERP.IMPORT_ITEMS) 右键创建好的包 选择Excute执行后,切换到Operator
41、查看执行结果假设想了解详细的执行结果,可展开Steps查看。创建和执行方案(Scenarios)创建方案普通用于接口或过程或包按设定的方案进展执行。这里对包:MDM-ERP.IMPORT_ITEMS创建和执行方案。过程和接口创建和执行方案方式一样。创建方案(DesignerProjectssingTaoMDMERP-MDMPackagesMDM-ERP.IMPORT_ITEMS) 右键需求创建方案的包 选择 Generate Scenario 如没特殊需求,Name和Version的值默许即可。点击OK,ODI生成了Scenarios文件,展开有刚新建的的Scenario。继续展开Scenar
42、io:ERP_MDM_IMPORT_ITEMS,右键 Insert Scheduling输入如下信息Definition TAB页:定义上下文、代理、日志级别、活动期间、执行频率Execution Cycle TAB页:定义执行时的循环次数、循环起始时间、循环间隔等上图定义的是每10分钟执行一次。执行方案右键创建的方案:ERP_MDM_IMPORT_ITEMS,选择 Execute执行胜利后,创建方案的包,就会每10分钟执行一次。CDC接口开发CDC全称Changed Data Capture,捕获变化的数据。CDC概述CDC捕获源数据的变动情况记录到日记表,在传送数据时,只需求根据日志表中记
43、录而无需思索未变动的数据,大大提高ELT的效率。日志ODI的CDC由日志记录来推进,日志是CDC的一部分,用于记录在数据源上改动(insert、delete、update)的数据。日志记录机制包括四种要素Journals、Capture processes、Subscribers、Journalizing views。Journals:日志,存储变化的数据的地方,在关系型数据库中普通指的就是表格。Capture processes:捕获进程,用来捕获数据源上的数据变化并写入Journals中,通常指的就是触发器;也可用数据源上可用的专门的捕获程序例如支持从数据源效力器log获取数据的程序。Su
44、bscribers:订阅者,记录的是需求运用CDC数据的运用者;只需一切的订阅者都运用了CDC数据后,日志内容才干被去除。Journalizing views:日志查看程序,可用于查看日志内的数据内容,并且可获取CDC数据以支持ODI将新数据写入目的数据存储中。设置模型日志(Journalizing)Designer模型文件(ERP System) 右键 模型(ERP System.CUX ) 选择Edit,选择Journalizing TAB页,设置模型日志,ODI会默许Journalizing Mode为Simple,JKM为JKM Oracle Simple.TsingTaoMDM。没有
45、特殊需求,这个默许设置可以进展ODI的CDC接口开发。但是所选取的案例需求留意:源系统(ERP)的Datastore的数据源是视图。默许的JKM Oracle Simple.TsingTaoMDM是针对表的Datastore,是不能满足我们需求的,本人对这个JKM进展了客户化,详细客户化内容详见KM(只是模块)根底章节,客户化后JKM为:JKM Oracle View_Simple.TsingTaoMDM。阐明:1、简单Simple:通常用于单个Datastore通常就是代表一个表。2、一致性集Consistent Set:当一组Datastore采用CDC方式时,为保证数据的前后顺序和完好性
46、制约关系,我们需求通知ODI按照一定的顺序来抓取,ODI是经过设置Consistency Window来实现的。这样一组Datastore就叫做Consistent Set。此外,ODI建议,假设Subsriber很多,用Consistent Set有助于提高性能。注:对于一个Datastore来说,Simple和Consistent Set不能同时存在。添加到CDC(Add to CDC)Add to CDC作用是将一个模型标志为可以进展CDC接口开发的模型。Designer模型文件(ERP System) 模型(ERP System.CUX )右键 Datastore(CUX_MTL_SY
47、STEM_ITEMS_INIT_V)Changed Data CaptureAdd to CDC选择Add to CDC,刷新之后Datastore变为了,多了个黄色的小时钟。注:假设Datastore没有Primary Key,Add to CDC会报错。所以在Add to CDC之前,查看Datastore能否有Primary Key,没有那么需求创建一个。创建CDC接口的时候此Datastore就可以添加日志字段了。如以下图所示,假设Datastore没有Add to CDC,上图红色框部分是灰色的,不可选择。添加订阅者(Subscriber(s)添加订阅者意义在于对数据源记录进展ins
48、ert、delete、update操作时,会给订阅者一条对应的操作记录,ODI会根据Datastores的订阅者信息捕获对应数据,对目的数据源进展一致的操作。Designer模型文件(ERP System) 模型(ERP System.CUX )右键 Datastore(CUX_MTL_SYSTEM_ITEMS_INIT_V)Changed Data CaptureSubscriber Subscriber(s)输入订阅者信息,点击OK,点击OK,进入组件Operator查看添加订阅者能否胜利。表示添加订阅者执行胜利。附:无妨来了解添加订阅者这个操作,ODI做了些什么?展开中心步骤是3和4步,
49、双击3,会发现ODI在Work Schema(SOAU)下创建一个订阅者表:SOAU.SNP_SUBSCRIBERS。表示警告:name is already used by an existing object。我们可以推测,ODI的SOAU任务架构下,一切的订阅者都存放在这个表中(其实ODI就是将一切订阅者存放在这个表中)。步骤4是注册订阅者,本质就是往SOAU.SNP_SUBSCRIBERS插入一条该订阅者的记录。经过下面的查询SQL,会发现SOAU.SNP_SUBSCRIBERS确实查询到了想要的记录:启动日志(Start Journal)启动日志之前,需求确保JKM能否选择正确。在本
50、总结的案例中,思索视图Datastoredes的特殊,客户化了规范的JKM,需求选择客户化的JKM,如下图Designer模型文件(ERP System) 模型(ERP System.CUX )右键 Datastore(CUX_MTL_SYSTEM_ITEMS_INIT_V)Changed Data Capture Start Journal点击Start Journal,出现如下窗口,选择需求启动日志的订阅者ERP-MDM,点击OK,弹出音讯框继续点击OK。并进入Operator查看启动日志能否胜利。特别阐明:启动日志会删掉当前Datastore一切的日志数据,相当于初始化了该Datasto
51、re的日志。所以在正式ODI环境中,启动日志操作需慎用,防止遗留的日志数据丧失。启动日志之前需求思索:假设待启动日志的Datastore是初次启动日志操作,启动日志是必需的,无需思索日志数据的丧失;假设不是初次,表示之前已做过启动日志操作,只需添加订阅者即可,无需再次启动日志。误区:初次接触CDC开发以为添加了订阅者必需启动该订阅者的日志。启动日志本质就是执行了JKM,所以将在KM(知识模块)根底的JKM模块中对启动日志进展详细的讨论。创建CDC接口CDC接口是基于根底接口,添加CDC。复制根底接口:ERP-MDM.CUX_MTL_SYSTEM_ITEMS_B选中复制后的接口,右键Edit重命
52、名为: ERP-MDM.CUX_MTL_SYSTEM_ITEMS_B(CDC)Diagram TAB页选中源系统Datastore:CUX_MTL_SYSTEM_ITEMS_INIT_V,勾上然后选中,设置JRN_SUBSCRIBER = ERP-MDM点击OK保管,CDC接口创建完成。执行CDC接口和根底接口执行方法一样。为了验证CDC接口的执行准确,对源系统数据源进展修正,添加默许采购员BEST_JULIE。在日志表中查询能否有需求更新的数据,Designer模型文件(ERP System) 模型(ERP System.CUX )右键 Datastore(CUX_MTL_SYSTEM_IT
53、EMS_INIT_V)Changed Data CaptureJournal Data可以看到日志数据如下右键CDC接口,选择Excute,并切换到Operator查询执结果登录目的数据库(MDM),查询能否有数据进展更新了,更新信息能否一致KM(知识模块)根底下面大致对KM根底了解进展一个系统性的阐明,假设想深化了解KM或客户化KM(较大逻辑修正),需求对Jython有一定的根底。此总结只描画了JKM的客户化开发。RKMRKM用于反向Datastores,在Model中选择。为了更好对RKM进展了解,排除其他操作影响,特意新建一个模型:ERP System.RKM。如下图,选择Customi
54、zed(客户化)反向方式,RKM选择Oracle规范RKM:RKM Oracle.TsingTaoMDM。点击,然后进入Operator查看ODI是如何反向Datastores的。Step2和Step3,主要获取数据源中表或者视图信息,对表来说Step3无意义,对视图来说Step2无意义。其实Get XXX步骤都是为Datastore的构造进展设计。比如,假设RKM在Step3查到的对应的视图信息,那么Datastore Type为View,如下左边图所示,右图是用Standard方式反向出来的Datastore,会发现Datastore Type是不一样的。其他的Step假设想进展了解,可以
55、将这些步骤执行的语句Copy到数据库运转,查看运转结果和语句取值逻辑可以了解ODI想做什么。比如Step4,执行效果(部分)如下,我们可以得出Step4的作用是得到Datastore的Columns。假设想对RKM源码进展了解,DesignerProjectsTsingTaoMDMKMRKM RKM Oracle翻开RKM Oracle,双击需求了解的Step,就可以看到源码,比如Get columns,JKM启动(或封锁)日志时执行的KM,在Model选择。Designer模型文件(ERP System) 模型(ERP System.RKM )右键 Edit 选择Journalizing T
56、AB页,选择JKM Oracle Simple.TsingTaoMDM然后执行Datastore:CUX_MTL_SYSTEM_ITEMS_INIT_V的Add to CDCSubscriberStart Journal进入Operator组件,他会发现启动日志失败,双击Step11,查看报错信息:java.sql.SQLException: ORA-25001: cannot create this trigger type on views。处理方案:交换触发器可以建立在多表视图上,我们需求客户化这个JKM,修正Step11的Create trigger源码。复制规范JKM生成JKM称号为
57、:Copy of JKM Oracle Simple,改名为:JKM Oracle View_Simple选择Details TAB页双击上图选中的Create trigger将上图选中区域修正为:create or replace trigger instead of insert or update or delete on修正后,点击提交,然后点OK,JKM客户化完成了。其他步骤参考CDC接口开发章节中启动日志(Start Journal)。启动日志胜利后,查看JKM执行过程这些步骤看标题也能大约知道JKM做了什么,从Step11可以知道JKM捕获数据是经过数据源表/视图的触发器捕获的。
58、下面以数据源来解析JKM的操作。首先JKM创建了基于Datastore:CUX_MTL_SYSTEM_ITEMS_INIT_V的触发器,查询SQL:SELECT * FROM dba_objects o WHERE o.OWNER = SOAU AND o.OBJECT_NAME LIKE %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由于
59、篇幅过长,触发器代码详见附录II。我们可以看出,对数据源:CUX_MTL_SYSTEM_ITEMS_INIT_V进展Insert、Update、Delete操作都会触发该触发器,并向日志表:SOAU.J$CUX_MTL_SYSTEM_ITEMS_INIT_V插入操作记录。但是经过测试发现,只需对视图进展Insert、Update、Delete操作ODI才会写入日志,而对视图关联的表进展操作却不能触发触发器。这会导致此客户化的JKM在实践ODI开发中没有意义。此处只是演示一下JKM的客户化。附录III中有最简单的视图(每个关联表的主键都是一致的或不一致主键的表只是作为关联表)的客户化JKM开发脚
60、本,对本案例是可行的。假设想更深化了解视图JKM客户化研讨,可做参考。经过对JKM的了解,复杂视图是无法做到JKM客户化的。CKM在模型(Models)中添加CKMDesigner模型文件(ERP System) 模型(ERP System.CUX )右键 点击Edit 选择Control TAB页ODI曾经默许了规范CKM:CKM Oracle.TsingTaoMDM。Models的CKM检查静态数据一致性:经过设立约束条件,可以清洗、过滤数据,只按需集成数据。在接口(Interfaces)中添加CKM例如在ODI根底开发的接口ERP-MDM.CUX_MTL_SYSTEM_ITEMS_B添加
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 材料供应项目组织机构及人员方案
- 氢能储运技术路线对比与产业化瓶颈分析
- 大数据与移动支付在农村金融中的应用-洞察与解读
- 贸易公司绩效考核与薪酬管理方案
- 麻醉手术科术后镇痛满意度月度绩效反馈
- 交通材料进场验收方案
- 加油站吊装顺序组织方案
- 高风险医疗环节不良事件预警
- 高端设备配置与医疗质量关联的实证分析
- 高端CT设备后处理技术的临床应用培训
- 齿轮维修技术协议书
- 中国兽药典三部 2020年版
- 品牌差异化策略分析-全面剖析
- 电梯维修改造施工方案大修
- 智能汽车组合驾驶辅助系统技术规范
- 公立医院成本核算指导手册
- 设备管道保温
- T-CERS 0026-2024 能源企业可持续发展(ESG)披露指标体系和评价导则
- 樊昌信通信原理课后答案
- FMEA手册新中文版(第五版)
- GB/T 44748.1-2024筛分试验第1部分:使用金属丝编织网和金属穿孔板试验筛的方法
评论
0/150
提交评论