Change Capture可以比较具有相同列的数据集的差异,得出一个数据集(After)在另一个数据库(Before)的基础上产生的哪些变化。变化类型如表1:

变化代码 变化 中文说明
0 no change 无变化
1 insert 新增
2 delete 删除
3 edit 有变化
表1 变化种类

1 JOB示例

如图1,我们最终做出的JOB会是这个样子。它包含3个序列文件组件data_before、data_after、cmp_result;2个排序组件sort_before、sort_after;一个change capture组件cc。

JOB从2个结构相同的源文件抽取数据,最终比较出data_after在data_before上产生了哪些改变,然后将改变存入cmp_result。

图1 JOB示例

2 组件简介

2.1 阶段

阶段选项卡如图2。

图2 阶段选项卡

2.1.1 Change Mode

先介绍一下选项里的Change Mode,它有3种模式,官方解释如下:

All Keys, Explicit Values means that value columns must be defined, but all other columns are key columns unless they are excluded.
Explicit Keys & Values means that key & value columns must be explicitly defined.
Explicit Keys, All Values means that key columns must be defined, but all other columns are value columns unless they are excluded.

我的理解如表2:

模式名称 说明
All Keys, Explicit Values 明确指定值。
这时属性中会出现Excluded Keys和Change Values这2个文件夹,我们需要在这2个文件夹添加属性,或者只指定Change Values。
除了Excluded Keys、Change Values,其他的都是key,用来确定一条记录。
Explicit Keys & Values 明确指定键和值。
我们需要在Change Keys和Change Values文件夹中添加属性。
Explicit Keys, All Values 明确指定键。
需要在Excluded Values和Change Keys填写属性,或者只指定Change Keys。

表2 Change Mode说明

说明:我一般都是采用Explicit Keys, All Values,然后指定数据集的主键,如图2。其他模式您可以自己尝试。

2.2 其他选项

接下来介绍选项。用来确定比对结果输出和是否需要在日志中记录统计信息。

属性 说明
drop output for copy 没有发生变化的记录是否要从输出中删除。
True:删除,即不输出;False:输出。
drop output for delete 在data_after中删除的记录是否要从输出中删除。
即data_after中没有,data_before中有的记录。
drop output for edit data_after和data_before不一致的记录是否要从输出中删除。
drop output for insert data_after中有而data_before中没有的记录。
log statistics 是否在日志中输出统计信息。日志会记录数据集的记录数,新增、删除的记录数等。

3 结果展示

3.1 data_before

code    name    salary  entryDate
001 hong 100 2014-01-12
002 bai 105 2014-01-22
003 wang 110 2014-02-01
004 lan 102 2014-02-02

3.2 data_after

code    name    salary  entryDate
001 hong 120 2014-01-12
002 bai 105 2014-01-22
004 lan 102 2014-02-02
005 hei 103 2014-03-02

3.3 cmp_result

001     hong    120     2014-01-12      3
003 wang 110 2014-02-01 2
005 hei 103 2014-03-02 1

4 附JOB导出文件

点击下载

DataStage系列教程 (Change Capture)的更多相关文章

  1. DataStage系列教程 by Bluebreeze

    突发奇想,用了这么久的DataStage,想要写点东西祭奠那逝去的岁月.希望可以坚持一直写完. DataStage系列教程 (Change Capture) DataStage系列教程 (Pivot_ ...

  2. DataStage系列教程 (Slowly Changing Dimension)缓慢变化维

    BI中维表的增量更新一般有2种: Type 1:覆盖更改.记录的列值发生变化,直接update成最新记录. Type 2:历史跟踪更改.记录值发生变化,将该记录置为失效,再insert一条新的记录. ...

  3. DataStage系列教程 (Pivot_Enterprise 行列转换)

    有人提到Pivot_Enterprise这个组件,之前没有用过,今天捣腾了会,写下来供以后参考,如果有什么不对的,还请多指出,谢谢! Pivot_Enterprise主要用来进行行列转换. 1 示例 ...

  4. CRL快速开发框架系列教程三(更新数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  5. 【ASP.NET Identity系列教程(一)】ASP.NET Identity入门

    注:本文是[ASP.NET Identity系列教程]的第一篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

  6. 【ASP.NET Identity系列教程(二)】运用ASP.NET Identity

    注:本文是[ASP.NET Identity系列教程]的第二篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

  7. 【ASP.NET Identity系列教程(三)】Identity高级技术

    注:本文是[ASP.NET Identity系列教程]的第三篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

  8. Unity3D脚本中文系列教程(十三)

    http://dong2008hong.blog.163.com/blog/static/469688272014032334486/ Unity3D脚本中文系列教程(十二) ◆ function G ...

  9. jquery系列教程4-事件操作全解

    点击打开: jquery系列教程1-选择器全解 jquery系列教程2-style样式操作全解 jquery系列教程3-DOM操作全解 jquery系列教程4-事件操作全解 jquery系列教程5-动 ...

随机推荐

  1. python3在centos6.6上的安装

    建议:在看这个文档操作前,最好先参考一下这个:https://www.cnblogs.com/bookwed/p/10251236.html,是解决pip安装模块时,提示ssl版本低的问题. #提前的 ...

  2. 常见到的runtime exception

    ClassCastException    类转换异常 IllegalArgumentException   非法参数异常 IndexOutOfBoundsException   数组越界异常 Nul ...

  3. jquery Chosen使用

    1,首先去http://harvesthq.github.io/chosen/下载插件. 2,在网页中加入下面的文件. <link rel="stylesheet" href ...

  4. GlusterFS部署

    一.GlusterFS简介 PB级容量.高可用.读写性能.基于文件系统级别共享.分布式.无metadata(元数据)的存储方式. GlusterFS(GNU ClusterFile System)是一 ...

  5. SVM数学原理推导&鸢尾花实例

    //看了多少遍SVM的数学原理讲解,就是不懂,对偶形式推导也是不懂,看来我真的是不太适合学数学啊,这是面试前最后一次认真的看,并且使用了sklearn包中的SVM来进行实现了一个鸢尾花分类的实例,进行 ...

  6. MapReduce Unit Test

    以前用java写MR程序总不习惯写单元测试,就是查错也只是在小规模数据上跑一下程序.昨天工作时,遇到一个bug,查了好久也查出来.估计是业务逻辑上的错误.后来没办法,只好写了个单元测试,一步步跟踪,瞬 ...

  7. epson Robot 指令集合

    ******************************************************************* 目的:定义一个整型数据 原型:Integer varName[( ...

  8. 工作笔记——js前端规范

    去年年末做了一个项目,因为第一次做前端管理职位,第一次做整个项目的前端架构很多东西都不熟悉,作为一次大胆的尝试. js方面的只有一个坑,那就是前端与后端的网络层封装,这一块是在后端的协助下开发的.网络 ...

  9. 搜狗员工用百度算什么,谷歌员工当着老板的面用bing,结果悲剧了!

    之前看到一篇文章,写的是搜狗的员工遇到问题时,用百度,结果网友的评论真是亮瞎眼.今天,W3Cschool小师妹将为大家分享一个类似的故事,那就是谷歌员工当着老板的面,竟然用BING. 这位谷歌员工称, ...

  10. Log4net 自定义字段 写入Oracle 使用ODP.NET Managed驱动

    一.环境说明: 开发工具:vs2010   ,数据库:oracle 11g ,版本:log4net的目前最新版本1.2.13.0    :  Oracle.ManagedDataAccess.dll ...