Informatica基础系列(七)——常见问题、注意事项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Informatica基础系列(七)——常见问题、注意事项相关的知识,希望对你有一定的参考价值。

参考技术A

目录:

正文:

这一篇分享 Infa 开发中一些常见的问题以及注意事项,内容比较零碎,有的内容也不再详细介绍,了解有这个功能,开发时可以再深入研究。

Infa workflow 可以设置定时任务 schedule(db 中称 job),以什么样的频率重复执行,什么时候开始,什么时候结束。这样任务可以自动跑,不需要人工干预。schedule 可以做成可复用,但使用范围仅限于当前的 folder。下面看看 schedule 怎么建的,在 workflow 视图,按以下步骤,如下图所示:

当想暂停 schedule 时,可以勾选 "Run on demand"。这部分很简单,不做过多的解释。做好的 schedule 需要设置在 workflow,设置方法如下图所示:

也可以不选择可重用的 schedule,可以勾选 "Non Resuable",设置方法跟 Resuable 的 schedule 是一样的。

在定时执行 workflow 时有一个场景是 schedule 解决不了的,假如我们想在一天之中的某些时间段执行,在另外的时间段不执行,有什么办法?其实,可以在 workflow 利用系统的变量做,点击 session 之间的 线 ,如下图所示:

可以猜到,这个 session 在上午 7 点以后执行,根据系统的参数可以做些其他灵活的控制。

source、target 开始导入后,可能会根据需求调整结构,如果结构调整的比较大,一般重新导入覆盖就可以了。如果调整不大,其实可以手动调整的,比如新增了字段,修改了字段长度,前提是保证与 db 的 table 结构一致,如下图所示:

在设置了 schedule 的 workflow 运行过程中会出现 workflow 出现错误,这时候设置的 scheduled 状态就会变成 unscheduled,也就是不管用了。其实可以采取一种迂回的方法来控制,即用另一个基本不会跑失败的 workflow 去控制实际的业务 workflow,这个控制的 workflow 的作用是启动业务 workflow。说了这么多,不如看看示例,先看下怎么建这个控制 workflow,如下图所示:

首先,拖一个 cmd 组件进来,我们要用它写一段命令,去启动另一个 workflow,编辑 cmd 组件,如下图所示:

可以看到这个 session 将通过 pmcmd 启动业务 workflow,我们再对这个控制 workflow 设置一个 schedule,因为这个 workflow 失败的可能性基本为零,所以可以保证 workflow 的不间断性。

Infa 很多东西都可以做成可复用的,比如 transformation、mapping、session、workflow 等,比如下面是一个 lookup 的复用组件(属于 transformation):

mapping 的复用,称为 maplet,如下图所示:

可以看到这个 maplet 传入了一个参数,通过一个 lookup 组件,输出了两个参数值。开发不同的东西需要切换到不同的视图下,注意看截图中上面的小按钮。workflow 也可以做成 worklet,就是把 workflow 拆成一个个小的,worklet 的开发视图如下图所示:

Infa workflow 的监控还是很有必要,执行失败后如果能推送出来(邮件),就可以及时解决。基本思路是:主要通过记录 session 的执行状况来做,session 可以在执行成功、失败后执行一段脚本,可以将 session 的运行结果记录下来,插入到 Infa 的日志表。session 的设置方法,如下图所示:

其中,$PMFolderName、PMWorkflowName、PMWorkflowRunId、PMSessionName 一看就知道;0 代表成功(自定义),Events__c 是 target 的名字;@numAffectedRows、@numAppliedRows、@numRejectedRows 分别是对 target 的影响记录数、采用记录数、拒绝记录数。

到此为止,Informatica 基础系列就完结了,共 9 篇,每一篇文章都配置了目录,方便系统阅读,希望对您有益,谢谢关注!

At 2017.11.10

以上是关于Informatica基础系列(七)——常见问题、注意事项的主要内容,如果未能解决你的问题,请参考以下文章

Informatica转换组件之表达式转换

Informatica转换组件之表达式转换

「Netty系列」彻底弄清网络七层协议TCP/IPIPTCP(Netty前置一)

JavaScript 系列七:对象

网络基础七层原理(重点)

ES6 系列七:Promise