DataStage系列教程 (Change Capture)
Change Capture可以比较具有相同列的数据集的差异,得出一个数据集(After)在另一个数据库(Before)的基础上产生的哪些变化。变化类型如表1:
| 变化代码 | 变化 | 中文说明 |
| 0 | no change | 无变化 |
| 1 | insert | 新增 |
| 2 | delete | 删除 |
| 3 | edit | 有变化 |
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)的更多相关文章
- DataStage系列教程 by Bluebreeze
突发奇想,用了这么久的DataStage,想要写点东西祭奠那逝去的岁月.希望可以坚持一直写完. DataStage系列教程 (Change Capture) DataStage系列教程 (Pivot_ ...
- DataStage系列教程 (Slowly Changing Dimension)缓慢变化维
BI中维表的增量更新一般有2种: Type 1:覆盖更改.记录的列值发生变化,直接update成最新记录. Type 2:历史跟踪更改.记录值发生变化,将该记录置为失效,再insert一条新的记录. ...
- DataStage系列教程 (Pivot_Enterprise 行列转换)
有人提到Pivot_Enterprise这个组件,之前没有用过,今天捣腾了会,写下来供以后参考,如果有什么不对的,还请多指出,谢谢! Pivot_Enterprise主要用来进行行列转换. 1 示例 ...
- CRL快速开发框架系列教程三(更新数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- 【ASP.NET Identity系列教程(一)】ASP.NET Identity入门
注:本文是[ASP.NET Identity系列教程]的第一篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...
- 【ASP.NET Identity系列教程(二)】运用ASP.NET Identity
注:本文是[ASP.NET Identity系列教程]的第二篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...
- 【ASP.NET Identity系列教程(三)】Identity高级技术
注:本文是[ASP.NET Identity系列教程]的第三篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...
- Unity3D脚本中文系列教程(十三)
http://dong2008hong.blog.163.com/blog/static/469688272014032334486/ Unity3D脚本中文系列教程(十二) ◆ function G ...
- jquery系列教程4-事件操作全解
点击打开: jquery系列教程1-选择器全解 jquery系列教程2-style样式操作全解 jquery系列教程3-DOM操作全解 jquery系列教程4-事件操作全解 jquery系列教程5-动 ...
随机推荐
- Java/android 里ClassName.this和this的使用
如果在内部类里面用this就是指这个内部类的实例,而如果用OuterClassName.this就是它外面的那个类的实例 ClassName.this这个用法多用于在nested class(内部类) ...
- Net Core MVC6 RC2 启动过程分析
入口程序 如果做过Web之外开发的人,应该记得这个是标准的Console或者Winform的入口.为什么会这样呢?.NET Web Development and Tools Blog ASP.NET ...
- The Personal Touch Client Identification 个性化接触 客户识别
w服务器要知道和谁在交谈. HTTP The Definitive Guide Web servers may talk to thousands of different clients simul ...
- EasyUI 的常见标签
1. Resizable 属性 原理: 页面加载完毕后,EasyUI主文件会扫描页面上的每个标签,判断这些标签的class值是否以"easyui-"开头, 如果是,则拿到之后的部分 ...
- 为golang程序使用pprof远程查看httpserver运行堆栈,cpu耗时等信息
pprof是个神马玩意儿? pprof - manual page for pprof (part of gperftools) 是gperftools工具的一部分 gperftools又是啥? Th ...
- 怎样将Arranged_2压入General_Polygon_set_2中
Thursday, March 14, 2013 How to Jam an Arrangement_2 into a General_polygon_set_2 I spent about thre ...
- oracle RMAN复制数据库
列出创建副本数据库的目的 • 选择用于复制数据库的方法 • 使用RMAN 复制数据库 • 使用RMAN 备份复制数据库 • 基于正在运行的实例复制数据库 使用副本数据库 • 使用副本数据库可执行以 ...
- mysql lock
http://blog.chinaunix.net/uid-21505614-id-289450.html http://bbs.csdn.net/topics/340127237 http://ww ...
- linux文件修改管理
Linux文件系统的层次结构 Linux文件系统的树状结构 目录是什么 顶层根目录的表示 文件系统中的两个特殊目录 Linux系统中的一些重要的目录 bin目录 sbin目录 家目录 dev目录 et ...
- SQL Server 数据分页查询
最近学习了一下SQL的分页查询,总结了以下几种方法. 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据.(数据太少,就每页5 ...