




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 练习说明这个练习介绍最简单的一种 CDC。在这里,每一张 CDC 的表的变化都是独立捕获的,不需要考虑多张存在主外键引用关系的表之间的数据一致性。2 模型-反向工程首先为模型 ORACLE_SH 中的SALES创建主键:选择几个 ID 列作为主键然后通过反向工程将 CHANNELS 添加到 ORACLE_SH 中。然后在 TARGET_TGTWH 中创建关系图:Diagram_TGT从ORACLE_SH 中将 CHANNELS 拖到关系图中,这种方式能在TARGET_TGTWH 中创建 CHANNELS 表,表结构同ORACLE_SH 中的 CHANNELS 相同:将 CHANNELS 重命名为 TGT_CHANNELS,重命名的时候注意将资源名称也修改成TGT_CHANNELS,如下图:然后为 TARGET_TGTWH 生成 DDL选择同步 CHANNELS(不用选择TGT_SALES,因为没有必要在数据库中为事实表创建主键),并且将DDL 脚本生成到 Training_Project.DDL 文件夹中:ODI 自动生成了创建表的 DDL,点击执行创建 TGT_CHANNELS 表:在 Operator 中查看执行结果:3 配置 JKMJKM 是为表生成并捕获日志的知识模块,需要在模型和表上面进行配置。首先在项目中导入 JKM。请导入JKM Oracle 10g Consistent (LOGMINER),JKM Oracle Consistent,JKM Oracle Simple 三个KM:编辑模型ORACLE_SH 的日记记录,选择简单日记记录模式,并选择 JKM Oracle Simple:4 启用 CDCODI 提供简易的界面来启用 CDC,包括下面的步骤:添加到 CDC, 订阅 CDC,启动日记。首先在模型 ORACLE_SH 的弹出菜单中选择添加到 CDC:点击刷新按钮可以看到模型 ORACLE_SH中的表的图表发生了变化,出现了黄色的小时钟:接下来从模型 ORACLE_SH 的弹出菜单中选择启动日记(也可以对某一张表启动日记):对于简单 CDC,启动日记的时候可以输入订阅的用户名。在弹出的窗口中录入订阅的用户名,如 SUNOPSIS,点击添加订户:如果变化数据有多个异步消费者,则可以添加多个订户。点击确定完成:这将会启动一个会话,请在 Operator 中查看会话是否成功完成。这个会话会在数据库中创建一些对象:CDC 的数据字典表(SNP开头),日记表和视图(通常是J$河JV$开头),trigger(通常以T$开头)。完成之后表的图标上的小时钟将变成红色:5 测试是否能够捕获变化SQLPLUS 连接到 Oracle 执行下面的SQL语句:INSERT INTO SH.CHANNELS(CHANNEL_ID,CHANNEL_DESC,CHANNEL_CLASS,CHANNEL_CLASS_ID,CHANNEL_TOTAL,CHANNEL_TOTAL_ID)SELECT-1,Test CDC 1,CHANNEL_CLASS,CHANNEL_CLASS_ID,CHANNEL_TOTAL,CHANNEL_TOTAL_IDFROM SH.CHANNELSWHERE CHANNEL_ID=2;这将往 CHANNELS 中插入一行数据数据。然后查询日记表:select * from SH.j$channels;我们可以看到还没有 COMMIT 的时候变化被捕捉到了日记表。提交变化:COMMIT;这时我们也可以在 ODI 中查看日记数据:6 创建接口将变化数据同步到目标在项目 Training_Project 中创建接口 SPL_CDC_Channel_Int在关系图中将 ORACLE_SH 中的 CHANNEL 添加到源,将 TARGET_TGTWH 中的 CHANNEL 添加到目标数据存储,并自动映射。然后选中源数据存储,选中“仅以进行日记记录的数据”,注意到选中该选项之后,源表会自动增加几个 JRN 开头的列。而且 ODI 会自动添加一个过滤器过滤器的内容是针对订户的,下面的例子表示当前接口将消费SUNOPSIS订户的数据:然后配置好 LKM(使用DBLINK),IKM(使用 Oracle Increamental Update),和 CKM。7 执行 CDC 接口执行SPL_CDC_Channel_Int,并在 Operator 中查看结果,我们看到插入了一条记录。在模型中查看 TARGET_TGTWH 的 CHANNEL 表的数据:我们可以看到变化的数据数据被同步过来了:查看源的日记数据:我们看到已经没有了变化数据:这说明一旦 ODI 接口消费了一张表的变化数据,相应的订户的日记数据将被清空。这种方式非常简单,但是对于多张存在主外键引用关系的表的数据同步将会有可能造成数据不一致的情况。对于这种复杂的情况需要一致性 JKM。8 创建包轮询变化数据变化数据随时都可能生成,因此需要不断的将新的变化同步过去。有两种方法可以完成这个任务。第一种办法可以通过计划实现。例如创建一个计划,每半个小时执行一次同步接口。这样可以每半个小时将变化数据同步到目标。另一个办法是在创建一个包,利用ODI 提供的 CDC 相关的工具轮询日记,一旦有了变化就调用同步接口。第一种办法要注意计划的重复间隔,要保证在重复调用之前,上一次调用已经完成,一般可以用于定期同步的需求。第二种办法则可以满足实时性较高的需求。首先创建一个包:SPL_CDC_Channel_Pkg在关系图中添加用于 CDC 的工具: OdiWaitForLogData。如图配置属性(注意其中的表名称应该是CHANNELS而不是CHANNEL):按上面的配置将每五秒钟轮询 CHANNEL 的日记表,直到发现1条变化记录。最终的关系图如下:完成接口后调用 OdiSleep 等待5秒,然后继续轮询。执行包,我们发现这个包会一直在执行,并处于 OdiWaiteForLogData 这一步。用下面的 SQL 插入数据:INSERT INTO SH.CHANNELS(CHANNEL_ID,CHANNEL_DESC,CHANNEL_CLASS,CHANNEL_CLASS_ID,CHANNEL_TOTAL,CHANNEL_TOTAL_ID)SELECT-2,Test CDC 2,CHANNEL_CLASS,CHANNEL_CLASS_ID,CHANNEL_TOTAL,CHANNEL_TOTAL_IDFROM SH.CH
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 皮鞋制作工班组管理强化考核试卷含答案
- 皮肤管理师安全规程评优考核试卷含答案
- 普朗克《忧郁》的演奏技巧诠释
- 2025年光纤预制棒项目合作计划书
- 生殖健康咨询师诚信考核试卷含答案
- 2025年氧系漂白助剂项目发展计划
- 2025年R1快开门式压力容器操作考试题库附答案
- 塔吊理论考试题及答案
- 2025年放射性废气处置设备项目合作计划书
- 公司股权激励方案范文
- 半导体公司内部管理制度
- 护理事业十五五发展规划(2026-2030)
- 2025循环流化床锅炉水冷壁防磨格栅安装及检验规程
- 自来水安装施工合同4篇
- 输血常识试题及答案
- 省级职业技能大赛2024(高职组)口腔修复工艺赛项规程
- 《生态系统服务评估》课件
- 《系统性红斑狼疮肾炎》课件
- 白象食品测试题及答案
- 食堂满意度测评制度
- 公司管理制度上墙图
评论
0/150
提交评论