Oracle Data Integrator 12c----一致性 CDC(Consistent CDC)
一致性 CDC 中引入了变化集的概念。一个变化集中可以包括多个相互存在关联关系(如主外键引用关系)的表。CDC 在捕获和发布一个变化集中的变化时能够保证数据的一致性。这个练习介绍如何使用能够保证一致性的CDC。
1 环境准备
源表:ODI_SRC.DEPT,ODI_SRC.EMP
目标表:ODI_TAG.DEPT, ODI_TAG.EMP
配置拓扑结构见ODI Studio拓扑结构的创建与配置(Oracle)
模型反向工程见:Oracle Data Integrator 12c-模型(Model)和 数据存储(DataStore)
2导入并配置JKM
首先在项目中导入 JKM JKM Oracle Consistent

JKM 是为表生成并捕获日志的知识模块,需要在模型或表上面进行配置。
编辑模型ODI_SRC的日记记录,选择简单日记记录模式,并选择 JKM Oracle Consistent:

3启用 CDC 日记
一致性 CDC 同简单 CDC 在实现方式和功能上都有不同,但是在使用上大致相同。这里还是包含了这几步:添加到 CDC, 订阅 CDC,启动日记。
首先右键模型ODI_SRC→已更改数据捕获→添加到CDC

查看

右键模型ODI_SRC→已更改数据捕获→订户→订阅

在弹出窗口种输入订阅用户,如Consistent,然后添加

点击确定完成订阅。这会启动一个会话。请在 Operator 中检查会话完成情况。

接下启动日记:右键模型ODI_SRC→已更改数据捕获→启动日记

这个操作也会执行一个会话,该会话执行完之后也将会生成一些 CDC 专用的数据库对象。生成的内容同简单 CDC 类似。
4测试是否能够捕获变化
往 DEPT 中插入一行数据数据。
INSERT INTO ODI_SRC.DEPT (DEPTNO, DNAME, LOC) VALUES ('', 'Assitant', 'BOSTON');
查看日记数据

继续插入数据
insert into odi_src.emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values ('', 'miller', 'clerk', '', sysdate, '', null, '');
查看日记数据

然后查询日记表:
SELECT * FROM "ODI_SRC_WORK"."JV$DDEPT";
SELECT * FROM "ODI_SRC_WORK"."JV$DEMP";
可以查询到数据
但是,如果你执行下面的 SQL 查询
SELECT * FROM "ODI_SRC_WORK"."JV$DEPT";
SELECT * FROM "ODI_SRC_WORK"."JV$EMP";
你会发现查询不到内容。这是因为一致性 CDC 提供了按窗口扩展,按用户锁定并访问日记数据的机制。我们需要这种机制来保证在捕获和发布变化数据的时候不违反一致性。
Designer 提供了界面来扩展窗口和锁定订户。
首先从模型 ODI_SRC 的右键弹出菜单中选择扩展窗口:

然后从模型 ODI_SRC 的右键弹出菜单中选择锁定订户:

在弹出的窗口中选择并添加要锁定的订户,然后确定完成锁定:

这两个步骤都会提交一个会话。在 Operator 中查看会话执行情况。然后再查询视图
我们会发现视图中能看到变化数据了。
SELECT * FROM "ODI_SRC_WORK"."JV$DEPT";

SELECT * FROM "ODI_SRC_WORK"."JV$EMP";

5创建接口将变化数据同步到目标
在项目ODI_Exercise中创建接口Consistent_CDC_Dept 和 Consistent_CDC_Emp,这里以Consistent_CDC_Dept 表为例
在关系图中将 ODI_SRC 中的 EMP 添加到源,将 ODI_TRG中的 EMP 添加到目标数据存储,并自动映射。
然后选中源数据存储,选中“仅以进行日记记录的数据”,

指定日志过滤器,过滤器的内容是针对订户的,下面的例子表示当前接口将消费Consistent订户的数据:

其他的和一般的映射相同
然后配置好 LKM(使用LKM SQL TO Oracle),IKM(使用 Oracle Increamental Update),和 CKM。

然后执行两个接口。我们看到变化数据被同步到了ODI_TAG中的DEPT和EMP表中。
但是我们会发现日记数据还在。也就是说对于使用了一致性设置的 CDC,接口同步完数据之后并不会自动清除日记。
我们需要执行另外两个操作来清除已经消费了的日记数据:解除锁定和清除日记。Designer 也提供了执行这两个操作的界面。

6创建一个包完成一个变化集的数据同步
一致性 CDC 会为一个模型创建一个变化集,变化集的名称同模型的名称相同。在ODI_SRC 变化集中包含了2张表:DEPT, EMP。
然后创建一个包CDC_Consistent_Pkg。在关系图中将模型ODI_SRC拖进来。指定类型为日记记录模型,选上扩展窗口和锁定订户,并且添加订户 Consistent:
然后将 Consistent_CDC_Dept 和 Consistent_CDC_Emp拖进来。在最后再将模型 ODI_SRC 拖进来,指定类型为日记记录模型,选上清除日记和取消订户锁定,并且添加订户 Consistent:

7循环执行
在上面的第一个日记记录模型ODI_SRC后面添加OdiWaitForLogData

CDC集的名字可以通过下面的SQL查询
SELECT * FROM "ODI_SRC_WORK"."SNP_CDC_SET";

在上面的第2个日记记录模型ODI_SRC后面添加OdiSleep

设置第一步为第一个模型ODI_SRC
参考:
http://odiexperts.com/cdc-consistent/
Oracle Data Integrator 12c----一致性 CDC(Consistent CDC)的更多相关文章
- Oracle Data Integrator 12c 安装(ODI安装)
Oracle Data Integrator 12c 安装(ODI安装) 企业版安装步骤(包含独立安装步骤) 官网下载Oracle Data Integrator 12cR2 (12.2.1.0.0) ...
- Oracle Data Integrator 12c (12.1.2)新特性
改进特性如下: 基于流程界面的声明式设计 在12c中,以前的接口(interface)已经改为映射(mapping),新的基于流程声明的设计方式更灵活,也更容易使用.在12c中,映射的实现是通过使用J ...
- Manipulating Data from Oracle Object Storage to ADW with Oracle Data Integrator (ODI)
0. Introduction and Prerequisites This article presents an overview on how to use Oracle Data Integr ...
- Oracle Data Integrator 12c----简单CDC(Simple CDC)
Simple CDC最简单的一种 CDC.在这里,每一张 CDC 的表的变化都是独立捕获的,不需要考虑多张存在主外键引用关系的表之间的数据一致性. 1 环境准备 源表:ODI_SRC.DEPT 目标表 ...
- Oracle Goldengate和Oracle Data Integrator的初步认识
免责声明: 本文中使用的部分图片来自于网络,如有侵权,请联系博主进行删除 1. Oracle Glodengate是什么? GoldenGate是oracle的一种基于数据库日志的数据同步软件 ...
- Oracle Data Integrator与OWB的集成及迁移
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- Oracle Data Integrator 12cR1 (12.1.3.0.0)安装过程
Oracle Data Integrator 12cR1 (12.1.3.0.0)安装过程 下载安装文件 Oracle Data Integrator 12cR1 (12.1.3.0.0) http: ...
- Oracle Data Integrator 12c-第一个映射
一.创建"项目" 设计器->项目,点击插入项目图标, 在项目对话框的"定义"标签下输入项目名称如ODI_Exercise ,保存 二.导入知识模块 项目→ ...
- oracle data integrator与大数据平台的集成
在最新版本的ODI中,通过使用各种知识模块,可在统一的界面上实现对传统数据库.hive, pig, spark, hdfs等的ETL操作,满足在同一系统或采用相同的方式实现ETL功能. 详细的内容可参 ...
随机推荐
- .Net Core HTML解析利器之HtmlAgilityPack
一 .HtmlAgilityPack简介 这是一个敏捷的HTML解析器,它构建了一个读/写DOM,并支持简单的XPATH或XSLT(实际上,你实际上并不了解XPATH和XSLT来使用它,不必担心).它 ...
- [转]CENTOS LINUX安装并使用NFS共享文件
FROM :http://www.qiansw.com/centos-linux-nfs.html NFS是linux常用的一种文件分享工具. 下面介绍安装及使用方法. CentOS 5.5 yum ...
- MySQL 查询优化简记
今天尝试对一张MySQL表做查询优化, 500W数据 但是发现加了索引比不加索引使用全表扫描还慢, 上网查, 据说是因为需要回表, 因为没有用到 using index(覆盖索引), 而回表查询是随机 ...
- 10分钟理解Android数据库的创建与使用(附具体解释和演示样例代码)
1.Android数据库简单介绍. Android系统的framework层集成了Sqlite3数据库.我们知道Sqlite3是一种轻量级的高效存储的数据库. Sqlite数据库具有以下长处: (1) ...
- Android ActionBar使用介绍
一.什么是ActionBar 有图有真相,看一下图片就了解的差不多了 对于大多数应用,操作栏可以分割为 4 个不同的功能区域. 1. 应用图标 应用图标是您应用的标志.在应用图标位置摆放您自己的 lo ...
- LeetCode题解:Rotate List
Rotate List Given a list, rotate the list to the right by k places, where k is non-negative. For exa ...
- C# 二种方法控制系统音量/麦克风大小
场景:在做播放设备的时候需要控制音量的大小,下面几种方法将满足你的要求 方法一: 改变系统音量设置 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
- Android -- tools
工具属性 Android 有一个专用的XML命名空间,用于使工具可以记录XML文件里的信息,并且在打包程序的进行把信息剥离到不会带来运行时期和下载大小的负面影响的程度. 这个命名空间的 URI 是 h ...
- 【架构】技术-工具-平台-语言&框架
技术-工具-平台-语言&框架 Techniques | Technology Radar | ThoughtWorks
- mahout安装
mahout是hadoop的一种高级应用.运行mahout需要提前安装好hadoop.hadoop的安装网上很多.而且也不复杂,这里不再讲述.这里默认hadoop已经安装完成. 1:下载二进制解压安装 ...