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

Informatica基础系列(零)——前言

Informatica基础系列(一)——Helloworld

Informatica基础系列(二)——更新策略转换组件

Informatica基础系列(三)——表达式、筛选、查找组件

Informatica基础系列(四)——联结组件、路由组件

Informatica基础系列(五)——参数与变量

Informatica基础系列(六)——发布环境、迁移知识库

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

Informatica基础系列(外)——不支持 MySQL Community 版本的解决方案

正文:

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

1. 定时任务 schedule

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


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

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

2. 定期运行 workflow

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

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

3. 手动调整 source、target

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

4. 解决 workflow 失败引起的 schedule 失效问题

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

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

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

5. 哪些可以做成可重用的?

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

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

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

6. Infa 监控报警机制

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

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

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

At 2017.11.10

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值