美文网首页Informatica
Informatica基础系列(七)——常见问题、注意事项

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

作者: 野鸟 | 来源:发表于2017-11-10 15:17 被阅读22次

    目录:

    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 的设置方法,如下图所示:

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

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

    At 2017.11.10

    欢迎关注我的微信公众号:惜福 / xifu_forever,微信扫一扫即可关注:

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/vcbbmxtx.html