ODI12C变化数据捕获(CDC)之简单日记模式.doc

上传人:scccc 文档编号:13885057 上传时间:2022-01-25 格式:DOC 页数:17 大小:481.50KB
返回 下载 相关 举报
ODI12C变化数据捕获(CDC)之简单日记模式.doc_第1页
第1页 / 共17页
ODI12C变化数据捕获(CDC)之简单日记模式.doc_第2页
第2页 / 共17页
ODI12C变化数据捕获(CDC)之简单日记模式.doc_第3页
第3页 / 共17页
ODI12C变化数据捕获(CDC)之简单日记模式.doc_第4页
第4页 / 共17页
ODI12C变化数据捕获(CDC)之简单日记模式.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《ODI12C变化数据捕获(CDC)之简单日记模式.doc》由会员分享,可在线阅读,更多相关《ODI12C变化数据捕获(CDC)之简单日记模式.doc(17页珍藏版)》请在三一文库上搜索。

1、0DI12C变化数据捕获(CDC)之简单日记模式李雪锋华东师范大学信息化办公室2018/1/19通过 场景和调度的方式 来实现按计划进行定期同步, 如每五分钟进行一次同 步。但此种方式存在缺陷: 一是同步的固定性, 只能按照规定的同步时间进行同 步,数据发生变化, 但未到同步时间就不会进行同步; 二是要注意在调度中设置 的重复间隔,要保证在下一次同步之前,保证上一次同步已经完成。本处我们介绍 CDC 方式,通过日记模式捕获源数据库的变化,并及时将这 些变化同步到目标数据库中。使用CDC 方式的优势:一是将源数据流简化为仅更改的数据, 可以避免处理流中未更改的数据, 有利于数据同步; 二是进一步

2、提 高实时性, 当源数据发生更改时, 可以及时将更改同步到目标端。 三是触发同步 的条件是数据变化,而不是第一种方式中的定期同步。变化数据捕获(CDC)通过日记(journalizing )模式来实现,ODI支持两种 日记模式:简单日记模式( Simple Journalizing )和一致性集日记模式( Consistent Set Journalizing )。本文我们介绍简单日记模式( Simple Journalizing )。1. 简单日记模式( Simple Journalizing)简单日志模式适用于单表或者虽然是多表,但是表之间的CDC没有顺序问题。通过以下案例来说明:源:服务

3、器192.168.105.25 上的oracle数据库中的scott用户的emp表目标:服务器192.168.105.49 上的mysql数据库中的xfli用户的emp_mysql 表目的:实现源表emp同步到目标表emp_mysql,并通过简单日记模式,当源 数据库数据更改后,及时同步到目标库1.1针对源数据库的模型配置本处模型的配置主要针对 源数据库的,目标数据库的模型无需处理1.1.1日志记录模式及知识模块选择设计器(Designer)-模型- 具体模型文件夹(oracle_xfli )-具体模 型(scott_105.25_emp_model ),双击进入编辑界面在日志记录标签中,日记

4、记录模式:简单;知识模块:JKM Oracle Simple*nt蛙$曲羽舟蘇:i湃挙赔也馨d壬酗撬颤即Hl)初卸KBJ起血 M099 励* *4*二朝rLi _询_:吐3 匸込“+ jWiti:巧戲 aj 湎3 叩讥疝酣SiqJ*ViinUTTli 觀飲91.1.2将数据存储添加到CDC设计器(Designer )-模型- 具体模型文件夹(oracle_xfli )-具体模 型(scott_105.25_emp_model ) -emp,右击选择已更改数据捕获,再选择添加 至U CDC控制订户生瞒映射唱 生咸映射皿的 1卫启动曰记 M陳日记-M切匚删帰 日瀏据导出导入堪)B与导出文件比较r*

5、国嵋辑备注tI卡晏 _uujscor瑶喪 畐由:由:田由丑添加成功后,在数据存储emp上就会出现一个黄色的小闹钟图样-_ Joracle_3eli j 藹 scottlOS. a严使用音EMPti隐藏的埶掘存储1.1.3订阅配置设计器(Designer )-模型- 具体模型文件夹(oracle_xfli )-具体模型(scott 105.25 emp model ) -emp,右击选择已更改数据捕获- 订户- 订7後型旺-my ut一.-赢J or acle_K 自-“癌uuai 刃“-旷隹 +1茅匿 4島店 +1囂並 - i E -*rv-1=1更龍麹拥捕鉄电上订貝生hlMW in ikjo

6、vtC)导岀.-.导入紂与审岀又件比较Q.瘁加到cur 动已记1除曰记一 M ck刪降 曰记频据我们配置订户SUNOPSIS将在映射中使用到点击添加后,点击确定点击确定,运行订户1.1.4CDC 启动设计器(Designer )-模型- 具体模型文件夹(oracle_xfli )-具体模型(scott_105.25_emp_model ) -emp,右击选择已更改数据捕获- 启动日志控制通1己更改数锯藏(Y)k订户程)卜+ ,_,Umysq.l_K述协到rnr申鼻0心1 JA i3i EC Ot生成映肘邙魁) 生戚映射OUT QQ启动曰记rh ”刪除曰记.+喻辱岀-M CDC删粽J*由蟲1导入

7、叫日记埶据.阿 p与D岀艾件ttfe:辽丿,,亠电1律端辑备生选择启动日志后,进入如下界面,将我们之前创建好的订户SUNOPSIS进行添加。将1.1.3创建好的订户添加后确定点击确定,运行日记。当启动成功后,数据存储 emp上的小闹钟图标变成绿色B Iijscotl_105. 2S_empjnodel用者欖型oracle 花1.1+島层庆1.2项目配置1.2.1映射配置(1)物理标签配置设计器(Designer)-项目- 具体项目(如xfli_project )-第一个文件夹- 映射- 具体映射(scott_105.25_emp_xfli_105.49_mysql_emp ),双击 进入编辑界

8、面- 物理标签1勉 3血邸*P_ii 口. 4如此靭,a“*4懈* 口 回席4刖141硕目u t軒組卿JP冷卫剂耶俪=Jmi-娥。:.壯”綁_皿护心沁冃忙 弋葡恥 s-M-:Ii审辆-:f邮L妙心耳加2皿3 WIElMfb3- 5cittJffi.ffi_Ei7_niel謠BP=!輛旨翩出JSJ0歹世迅-SH1讎3氐财師上戒|怖上徭s项目- 具体项目(如xfli_project )-第一个文 件夹- 映射- 具体映射(scott_105.25_emp_xfli_105.49_mysql_emp ),双击 进入编辑界面- 逻辑标签在源数据存储EMP的日记记录中过滤器中保持上述创建的订户SUNOP

9、SISsdo t t_lU5.Fli _LOS._iy3qtl emp自I mt t3 i RAi !*Oeraulli, n eCMP Mil 翩生JP倩总 RiEifint 旳朿華怦 RJi_SUJ3S CRIBER - F 5UNUFSIS p 存 AND iJRW_DATE (1) OdiWaitForLogData 配置需要将 OdiWaitForLogData 设置成“第一步” OdiWaitForLogData 将轮询源数据存储,发现变化数据。如果发现了变化数据则会进入下一步。要配置的属性主要包括:逻辑架构:源数据存储(源表)所对应的逻辑架构轮询间隔:每隔多长时间轮询一次。例子中

10、间隔是1000毫秒(1秒)。订户:CDC的订户名称SUNOPSIS表名称:源数据表empb这个表应该启动了 CDC日志“单元行计数”和“全局行计数用于定义必须要发生多少行变化才进行同步属性能信息侖令高銀备$主版本枳限值1= c*tt_105. 2S_l#gi e*i.rro1000订户EUHOPSIS EMFCDC隼0曰1在例子中,我们都设置为1,表示一旦有变化就同步(2) OdiSleep 配置OdiSleep用来设置执行完映射之后可以等待多长时间再调用OdiWaitForLogData来轮询源数据表。主要配置的参数有:等待延迟:等待的毫秒数。例如本例中1000毫秒(1秒)。GdlSleep

11、 2属性-ea信定佛令 高织 备洼 版本 稅悔衿特延迟1U0U1.3运行及测试1.3.1程序包运行在程序包 CDC_scott_105.25_emp_xfli_105.49_mysql_emp 上右键选择运行,就可以完成程序包的运行。在操作器(operator )中我们可以看到日越本地氏代理)-3- Or cl smAfentl - 15 329 - CCC_scfitt_105.暮_畔沟1_师工-2018-1-20 E.tMJ軒厲賁塑L 0 - OdiWaitFcrUDit I - 2O10-1-ZO 日 04:10329 一直处于运行状态,且一直停留在 OdiWaitForLogData

12、这个状态1.3.2测试接下来我们进行模拟测试,主要涉及源数据存储中新增数据, 更新数据及删除数据132.1在源数据表emp中新增一条数据我们在源数据库表emp中新增一条数据,SQL? insert lutu rmp alucs1 Ccctice1J已创建1仁SQL comnit:提交気成*我们在目标表emp_mysql上进行查看,发现新增数据已经同步到目标表mys q 1 a seiHIhempno1Q19T rl69r KL 177Fxf li1X e己匚her2222SMITHCLERKALLEN a -h a-fcHSALESMANT= J sn r-ta圧 f r cm emp_my

13、I ;1mgra.me | job观察操作器(operator ),我们可以发现当我们在源表中插入一条新的数据,OdiWaitForLogData 检测到数据变化,执行下一步 scott_105.25_emp_xfli_105.49_mysql_emp,将变化数据同步到目标表, 执行完毕 后,再执行Odisleep,执行完毕后,再回到 OdiWaitForLogData 这个状态。亍:-卿i弓轻G煨)-3占妾iQrwlGLUetl -砧- 23 - Cff Mll.l 25活嗣磚-2ClB-t-3J |q(K 117爭RST Qd-I - ZEIP-L-K 10i j Qi - waijre臣

14、呻jtii.怔需jpi門-uiE-1-ai trisr Q ? - 51 up J - 2U13-I-3J S IT tf,” j 4 IT 陆加l - 2C1&-L0 时l制巧t艇蠅M itl_|E. 25Hi J (6 (1 jsqleip舲1.K-TL.在上图中,我们可以看到插入数为1.1.322在源数据表emp中更新一条数据我们在源数据库表emp中更新一条数据,如下SQL update Emp set enape=, jicshuJ where erapiniiQ=llll; 已更新1行。SQL conmit;提交完成。到目标表中查看,发现数据已经更新rry刍q】A sel ett *

15、 from emp_niyiql;+ + + + 一+I ampno | ename | job| mgr |+ + +1111| jcshu | Tea匚hi厂|2222|H m IB IIHHI同时,我们在操作器中也可以看到更新数为1.最后再次回到OdiWaitForLogData 这个状态。1.3.2.3在源数据表emp中删除一条数据我们在源数据库表emp中删除一条数据,如下CQL ds lctc rran emp where enpno*1111 ; 已删除1行。SQL Gonmit ;扌昱交完成*到目标表中查看,发现数据已经删除同时 ,我们 在操 作器中也 可以看到 删除数为 1. 最 后再次回 到OdiWaitForLogData 这个状态。1.4 简单日记模式删除(1)删除创建的CDC包( 2)在映射中物理标签在 源 EMP_1 的一般信息 中不勾选仅已进行日记记录的数 据( 3)在源数据存储 EMP 上删除日志,此时小闹钟标志由绿色变成黄色( 4)删除订阅用户(5)将源数据存储EMP从CDC中删除,此时黄色小闹钟消失参考文献1 journalizing.htm#data_capture_htm

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1