Informatica基础系列(二)——更新策略转换组件
目录:
Informatica基础系列(零)——前言
Informatica基础系列(一)——Helloworld
Informatica基础系列(二)——更新策略转换组件
Informatica基础系列(三)——表达式、筛选、查找组件
Informatica基础系列(四)——联结组件、路由组件
Informatica基础系列(五)——参数与变量
Informatica基础系列(六)——发布环境、迁移知识库
Informatica基础系列(七)——常见问题、注意事项
Informatica基础系列(外)——不支持 MySQL Community 版本的解决方案
正文:
距离上次更新已有月余,最近事情比较多,就想利用碎片时间“蚕食”分享,每次分享一点点,最后汇成整体。
今天讲一讲 Infa 的更新策略转换组件(Update Strategy Transformation),以下简称 UST。UST 能够通过条件对源数据进行筛选——个性化处理,比如:一部分数据执行插入,另一部分数据执行更新、删除、拒绝。我们通过一个 demo 介绍它的用法,事先准备 Source、Target 表数据,如下图所示:
需求是要把 Source 表的 Id = 1 插入 Target 表,对 Id = 2 做更新,对 Id = 3 做删除,对 Id = 4 不做任何处理。我们在上次的 Mapping 上直接修改,打开 Designer,将 UST 拖拽到工作区,放置在 SQ 和 Target 中间并连线,如下图所示:
双击 UST,选中 “Properties” 选项卡,点击 “Update Strategy Expression” 右侧向下的箭头——编写更新策略表达式,可以点击 “Validate” 验证语法是否有误:
DECODE(Id, 1, DD_INSERT, 2, DD_UPDATE, 3, DD_DELETE, DD_REJECT)
DECODE 是 Infa 的内置函数,类似于 “switch case”,上面代码的意思是:Id = 1 时,执行 Insert,Id = 2 时执行Update,Id = 3 时执行Delete,否则执行Reject。其中 DD_INSERT/DD_UPDATE/DD_DELETE/DD_REJECT 是 Infa 的常量,分别对应 0,1,2,3。上面代码的 DD_INSERT 也可以用 0 代替。
Mapping 就算开发完毕了,接下来要调整 Workflow,切换到 Workflow 软件窗口,右键相应的 session,点击 “Refresh Mapping” 刷新下 Mapping,这时会看到 session 左上方出现一个倒三角的问号符号:说明 Mapping 已经更新了,如下图所示:
我们先 Ctrl+S 保存下,然后右键 “Edit” session,选中 “Mapping” 选项卡,看到 “Transformation” 已经多了一个 UST,如下图所示:
接着,我们选中 “Properties” 选项卡,将 “Treat source rows as” 设置为 “Data driven”,意思是我们以数据驱动方式操作 Target 记录,即根据代码来决定是更新、插入还是删除等,如下图所示:
不要忘记设置 “Mapping” 下 “Target” 的属性,如下图所示:
我们执行一下工作流,查看运行日志,知道有一条记录被拒绝了,看来我们的 UST 组件有效果了,如下图所示:
再来看下 Target 数据,结果与我们预期一致,如下图所示:
下次分享表达式组件(Expression Transformation),感谢关注,希望对您有益!
At 2017.09.21
欢迎关注我的微信公众号:惜福 / xifu_forever,微信扫一扫即可关注:
Informatica基础系列(二)——更新策略转换组件相关推荐
- Informatica基础系列(一)——Helloworld
目录: Informatica基础系列(零)--前言 Informatica基础系列(一)--Helloworld Informatica基础系列(二)--更新策略转换组件 Informatica基础 ...
- 【C++自我精讲】基础系列二 const
[C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...
- Javascript学习总结 - JS基础系列 二
简述 本系列将持续更新Javascript基础部分的知识,谁都想掌握高端大气的技术,但是我觉得没有一个扎实的基础,我认为一切高阶技术对我来讲都是过眼云烟,要成为一名及格的前端工程师,必须把基础打扎实了 ...
- py基础系列(二):python语言基础(上)
py 基本数据类型 整型 浮点型 复数型(complex) 逻辑型(布尔型) 字符串 字符串的表示 转义字符 字符串的格式化 变量 关键字和标识符 变量 运算符与表达式 运算符 (1)算数运算符 (2 ...
- Java基础系列二:Java泛型
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.泛型概述 1.定 ...
- 计算机专升本基础笔记二 进制转换及二进制运算规则
进制转换及二进制运算规则 什么是进制? 进制就是进位计数制,是人为定义的带进位的计数方法.我们的时间就是六十进制(满60秒进一分钟,满60分钟进1小时):对于任何一种进制-X进制,就表示每 ...
- JVM系列二:GC策略内存申请、对象衰老
JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generatio ...
- WPF基础系列二:控件简介
控件简介 文章目录 控件简介 前言 一.控件 二.控件类型 三.控件详解 1.ContentControl 类 2.HeaderedContentControl 类 3.ItemsControl 类 ...
- shardingsphere 分片策略_ShardingSphere系列(二) 分片策略
本文章适用于初学者demo:或概念理解中策略都在git中打好了tag想要学习那种策略仔细阅读redme即可: 具体代码与明细见:https://github.com/ssy-githup/shardi ...
最新文章
- tcp-ip协议详解二知识进阶
- 《JavaScript 高级程序设计》学习总结六(3)
- 【Python】学习笔记总结3(Python文件操作)
- linux应用与管理,Linux操作系统应用与管理
- Spring boot starter
- python3.6.1+selenium3.0环境安装问题及解决方法
- OpenCV+dlib+Python实现人体五官检测
- Linux网卡驱动教程,linux | 网卡驱动
- 驱动精灵(Driver Genius Professional Edition 2007) v7.1.622 完美注册版(可升级)
- thinkphp5项目--个人博客(五)
- Nature:进化新方式?线粒体DNA会插入我们的基因组
- 如何把字幕文件转换成txt文件或word文档,.ass文件内容怎么提取出来txt文件
- Silverlight游戏设计(Game Design):(六)场景编辑器之开源畅想
- 联想硬盘启动计算机,win7系统联想台式电脑开机提示error 1962无法找到硬盘启动的解决方法...
- pygame之display模块
- 【PC工具】PC好用的迅雷下载版本合集,hash资源下载方法,石皮版迅雷软件去广告优化增强典藏版...
- 腾讯词向量下载链接(Tencent_AILab_ChineseEmbedding.txt)
- Microsoft Office Project 2016使用心得(一)
- 十进制转为二十六进制
- 织梦新建php支持标签,织梦教程:新建php页面且模板支持读取标签