Informatica基础系列(五)——参数与变量
目录:
Informatica基础系列(一)——Helloworld
Informatica基础系列(三)——表达式、筛选、查找组件
正文:
今天继续分享 Infa,这次给大家介绍一下 Infa 的参数和变量的使用方法。参数和变量让程序变得很灵活,比如我们有一个在很多地方都要用到的值,就可以绑定到一个参数上,如果要修改这个值,只需要修改一个地方,其他引用参数的地方就会一并修改掉。下面就看看 Infa 中的参数和变量是怎么使用的:
1. 参数的使用
1.1 存放目录
参数文件并没有规定一定要放到哪个目录下面,我们一般在 Server 端的根目录(/server/infa_shared/)新建一个 Folder,比如 "ParamFiles"。我们在1.3 小结会给 Session 或 Workflow 指定参数路径。
1.2 参数类别
Infa 参数按照作用域不同可分为:全局类型和局部类型,局部类型可以指定在某一个 Session 或 Workflow 下使用,先看下参数是怎么定义,如下图所示:
可以看到全局参数需要标明 "[Global]",另外如果定义的是数据库连接的参数,前缀必须带 "$DBConnection_";如果是限定在 Session 内使用,格式应为 "[FolderName.SessionName]";如果是 Workflow 范围的参数,格式为 [FolderName.WF:WorkflowName]。
1.3 设置路径
参数文件的路径在 Session 或 Workflow 上指定,比如下面是在 Session 上设置的截图:
下面截图则是 Workflow 上的设置位置:
当然,Session 上设置的参数就不能跨 Session 使用,而 Workflow 则可以跨 Session 使用,因为一个 Workflow 可能包含多个 Session。不过 Session 可以设置为可重用,各有各的好处,视具体场景而定。
1.4 数据库连接
数据库的连接可以设置为参数,在 Workflow 中用参数指定,一般 Workflow 中的 Source、Target、Lookup 都需要指定 DB 连接,设置方法如下图所示:
2. 变量的使用
2.1 常用的变量使用方法
接着是变量的使用,比较常用的变量是用在 Mapping 里,选中 Mapping 菜单,如下图所示:
这里我们设置了两个变量,为了实现增量同步的需求,这两个变量保存的每一次同步的数据里的 Id、UpdateTime 的最大值,这样我们在下次取数据的时候就可以该值作为下一批数据的时间戳来取。当然,我们需要在 Mapping 中,对这两对变量做赋值,如下图所示:
上图红框内的语句是设置这批数据最大的值给变量。
2.2 另一种变量使用方法
上述的变量是需要在 Mapping 先定义再使用的,有一种方法是不需要定义,在 Workflow 运行时临时赋值,直接使用的。比如下面的 Mapping 里我没有定义变量,直接在 Source Filter 中使用,如下图所示:
再看看 Workflow 的截图:
上图红框内的 Session 的作用是从 DB 中读取时间窗的两个值(StartTime,EndTime),然后 load 到文本文件,然后在该 Session 执行成功后,给两个变量赋值,这样,我们就拿到这两个变量的值了。
今天就到这,下次给大家分享环境的迁移,一般我们在测试环境上开发,然后发布到生产环境,就会用到这部分内容。
At 2017.11.07
欢迎关注我的微信公众号:惜福 / xifu_forever,微信扫一扫即可关注: