目录:

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基础系列(二)——更新策略转换组件相关推荐

  1. Informatica基础系列(一)——Helloworld

    目录: Informatica基础系列(零)--前言 Informatica基础系列(一)--Helloworld Informatica基础系列(二)--更新策略转换组件 Informatica基础 ...

  2. 【C++自我精讲】基础系列二 const

    [C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...

  3. Javascript学习总结 - JS基础系列 二

    简述 本系列将持续更新Javascript基础部分的知识,谁都想掌握高端大气的技术,但是我觉得没有一个扎实的基础,我认为一切高阶技术对我来讲都是过眼云烟,要成为一名及格的前端工程师,必须把基础打扎实了 ...

  4. py基础系列(二):python语言基础(上)

    py 基本数据类型 整型 浮点型 复数型(complex) 逻辑型(布尔型) 字符串 字符串的表示 转义字符 字符串的格式化 变量 关键字和标识符 变量 运算符与表达式 运算符 (1)算数运算符 (2 ...

  5. Java基础系列二:Java泛型

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.泛型概述 1.定 ...

  6. 计算机专升本基础笔记二 进制转换及二进制运算规则

    进制转换及二进制运算规则   什么是进制?     进制就是进位计数制,是人为定义的带进位的计数方法.我们的时间就是六十进制(满60秒进一分钟,满60分钟进1小时):对于任何一种进制-X进制,就表示每 ...

  7. JVM系列二:GC策略内存申请、对象衰老

    JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generatio ...

  8. WPF基础系列二:控件简介

    控件简介 文章目录 控件简介 前言 一.控件 二.控件类型 三.控件详解 1.ContentControl 类 2.HeaderedContentControl 类 3.ItemsControl 类 ...

  9. shardingsphere 分片策略_ShardingSphere系列(二) 分片策略

    本文章适用于初学者demo:或概念理解中策略都在git中打好了tag想要学习那种策略仔细阅读redme即可: 具体代码与明细见:https://github.com/ssy-githup/shardi ...

最新文章

  1. tcp-ip协议详解二知识进阶
  2. 《JavaScript 高级程序设计》学习总结六(3)
  3. 【Python】学习笔记总结3(Python文件操作)
  4. linux应用与管理,Linux操作系统应用与管理
  5. Spring boot starter
  6. python3.6.1+selenium3.0环境安装问题及解决方法
  7. OpenCV+dlib+Python实现人体五官检测
  8. Linux网卡驱动教程,linux | 网卡驱动
  9. 驱动精灵(Driver Genius Professional Edition 2007) v7.1.622 完美注册版(可升级)
  10. thinkphp5项目--个人博客(五)
  11. Nature:进化新方式?线粒体DNA会插入我们的基因组
  12. 如何把字幕文件转换成txt文件或word文档,.ass文件内容怎么提取出来txt文件
  13. Silverlight游戏设计(Game Design):(六)场景编辑器之开源畅想
  14. 联想硬盘启动计算机,win7系统联想台式电脑开机提示error 1962无法找到硬盘启动的解决方法...
  15. pygame之display模块
  16. 【PC工具】PC好用的迅雷下载版本合集,hash资源下载方法,石皮版迅雷软件去广告优化增强典藏版...
  17. 腾讯词向量下载链接(Tencent_AILab_ChineseEmbedding.txt)
  18. Microsoft Office Project 2016使用心得(一)
  19. 十进制转为二十六进制
  20. 织梦新建php支持标签,织梦教程:新建php页面且模板支持读取标签

热门文章

  1. 阿里优酷面试经历——学无止境
  2. springboot项目里面使用redis出现看不懂的\xac\xed\x00\x05t\x00\解决方法(规范使用)
  3. C语言打印到txt文件
  4. sql语句查询数据变成表格
  5. python程序填空_python练习题-基础巩固-第一周
  6. windows 透明贴图两套体系
  7. 使用mosquitto开发MQTT客户端
  8. 9月Libra开发人员更新-路线图#1
  9. EPP协议(RFC5730翻译)
  10. 维克森林大学计算机专业,维克森林大学研究生读几年?