odi教程_simple cdc

odi教程_simple cdc

ID:6027426

大小:1.84 MB

页数:12页

时间:2017-12-31

odi教程_simple cdc_第1页
odi教程_simple cdc_第2页
odi教程_simple cdc_第3页
odi教程_simple cdc_第4页
odi教程_simple cdc_第5页
资源描述:

《odi教程_simple cdc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1练习说明这个练习介绍最简单的一种CDC。在这里,每一张CDC的表的变化都是独立捕获的,不需要考虑多张存在主外键引用关系的表之间的数据一致性。2模型-反向工程首先为模型ORACLE_SH中的SALES创建主键:选择几个ID列作为主键然后通过反向工程将CHANNELS添加到ORACLE_SH中。然后在TARGET_TGTWH中创建关系图:Diagram_TGT从ORACLE_SH中将CHANNELS拖到关系图中,这种方式能在TARGET_TGTWH中创建CHANNELS表,表结构同ORACLE_SH中的CHANNELS相同:将CHANNE

2、LS重命名为TGT_CHANNELS,重命名的时候注意将资源名称也修改成TGT_CHANNELS,如下图:然后为TARGET_TGTWH生成DDL选择同步CHANNELS(不用选择TGT_SALES,因为没有必要在数据库中为事实表创建主键),并且将DDL脚本生成到Training_Project.DDL文件夹中:ODI自动生成了创建表的DDL,点击执行创建TGT_CHANNELS表:在Operator中查看执行结果:1配置JKMJKM是为表生成并捕获日志的知识模块,需要在模型和表上面进行配置。首先在项目中导入JKM。请导入JKMOrac

3、le10gConsistent(LOGMINER),JKMOracleConsistent,JKMOracleSimple三个KM:编辑模型ORACLE_SH的日记记录,选择简单日记记录模式,并选择JKMOracleSimple:1启用CDCODI提供简易的界面来启用CDC,包括下面的步骤:添加到CDC,订阅CDC,启动日记。首先在模型ORACLE_SH的弹出菜单中选择添加到CDC:点击刷新按钮可以看到模型ORACLE_SH中的表的图表发生了变化,出现了黄色的小时钟:接下来从模型ORACLE_SH的弹出菜单中选择启动日记(也可以对某一张

4、表启动日记):对于简单CDC,启动日记的时候可以输入订阅的用户名。在弹出的窗口中录入订阅的用户名,如SUNOPSIS,点击添加订户:如果变化数据有多个异步消费者,则可以添加多个订户。点击确定完成:这将会启动一个会话,请在Operator中查看会话是否成功完成。这个会话会在数据库中创建一些对象:CDC的数据字典表(SNP开头),日记表和视图(通常是J$河JV$开头),trigger(通常以T$开头)。完成之后表的图标上的小时钟将变成红色:1测试是否能够捕获变化SQLPLUS连接到Oracle执行下面的SQL语句:INSERTINTOSH.

5、CHANNELS(CHANNEL_ID,CHANNEL_DESC,CHANNEL_CLASS,CHANNEL_CLASS_ID,CHANNEL_TOTAL,CHANNEL_TOTAL_ID)SELECT-1,'TestCDC1',CHANNEL_CLASS,CHANNEL_CLASS_ID,CHANNEL_TOTAL,CHANNEL_TOTAL_IDFROMSH.CHANNELSWHERECHANNEL_ID=2;这将往CHANNELS中插入一行数据数据。然后查询日记表:select*fromSH.j$channels;我们可以看到还没

6、有COMMIT的时候变化被捕捉到了日记表。提交变化:COMMIT;这时我们也可以在ODI中查看日记数据:1创建接口将变化数据同步到目标在项目Training_Project中创建接口SPL_CDC_Channel_Int在关系图中将ORACLE_SH中的CHANNEL添加到源,将TARGET_TGTWH中的CHANNEL添加到目标数据存储,并自动映射。然后选中源数据存储,选中“仅以进行日记记录的数据”,注意到选中该选项之后,源表会自动增加几个JRN开头的列。而且ODI会自动添加一个过滤器过滤器的内容是针对订户的,下面的例子表示当前接口将

7、消费’SUNOPSIS’订户的数据:然后配置好LKM(使用DBLINK),IKM(使用OracleIncreamentalUpdate),和CKM。1执行CDC接口执行SPL_CDC_Channel_Int,并在Operator中查看结果,我们看到插入了一条记录。在模型中查看TARGET_TGTWH的CHANNEL表的数据:我们可以看到变化的数据数据被同步过来了:查看源的日记数据:我们看到已经没有了变化数据:这说明一旦ODI接口消费了一张表的变化数据,相应的订户的日记数据将被清空。这种方式非常简单,但是对于多张存在主外键引用关系的表的数

8、据同步将会有可能造成数据不一致的情况。对于这种复杂的情况需要一致性JKM。1创建包轮询变化数据变化数据随时都可能生成,因此需要不断的将新的变化同步过去。有两种方法可以完成这个任务。第一种办法可以通过计划实现

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。