datastage怎样使用全局参数

datastage怎样使用全局参数,第1张

每一个JOB都是可以设置很多参数的,就是Designer的那个叫Job Properties的黄色小图标,点它。进去就可以设置很多参数。比如你要a数据库抽取很多表到b数据库,那么你新建一个job,这个job里面新建几个参数,比如:DBuser,DBpwd,DBdsn然后,以OracleEE stage为例,你在properties页签下设置,Password=#DBpwd#,User=#DBuser#,Remote Server=#DBdsn#,这样就设置好了最基本的连接。然后你是抽多张表,那就照着这个JOB进行复制。说到这里其实还没解决你的问题,你想要统一设置!比如哪天数据库换密码了,总不能一个个job去改吧,咋办?

我觉得你可以考虑这么做:每一个JOB的参数都是在运行时,由一个调度程序传进去的。这个程序从一个元数据库里面获取每一个任务的配置信息(这个需要你先建张表,存放每一个任务的信息,包括抽取表名,数据库用户名和密码等等),这样你要修改数据库连接信息的时候,就不需要通过datastage了,从你的元数据库里面修改任务的配置信息就好了。这个工作量要小很多吧。

对于批量修改JOB,我知道的一些情况是把JOB导出成dsx文件或者xml文件,找一个job为例,对比修改前后的dsx文件有哪些不同,然后找出要修改的那一段,做批量替换。

1、导出

例子如下:

$DSHOME/../../Clients/istools/cli/istool export -dom dpapp01 -u edpusr -p edpusr -ar /home/dsadm/LOD_COBS_SVRHA1.isx -ds '-incexec "dpapp01/BRCB_EDP2/Jobs/FS2/COBS/LOD_COBS_SVRHA.pjb"'

详细说明:

【$DSHOME/../../Clients/istools/cli/istool】:istool命令行程序

【export】:指定istool执行导出动作

【-dom】:连接服务器,可使用hostname或者详细IP,例如dpapp01或者193.168.1.1:9080

【-u】:用户

【-p】:密码

【-ar】:导出文件存放全路径(注意需要有写权限)

【-ds】:导出的内容,详细如下:

【-incexec】:指定导出的作业包括可执行文件

【"dpapp01/BRCB_EDP2/Jobs/FS2/COBS/LOD_COBS_SVRHA.pjb"】里各项说明:

dpapp01为hostname

BRCB_EDP2:实际工程名

Jobs/FS2/COBS/:作业所在路径

LOD_COBS_SVRHA.pjb:作业名加后缀,其中并行作业为pjb,服务器作业未sjb

2、导入:

例子如下:

$DSHOME/../../Clients/istools/cli/istool import -dom dpapp01 -u edpusr -p edpusr -ar /home/dsadm/LOD_COBS_SVRHA.isx -ds '"dpapp01/BRCB_EDP"'

详细说明:

【$DSHOME/../../Clients/istools/cli/istool】:istool命令行程序

【import】:指定istool执行导入动作

【-dom】:连接服务器,可使用hostname或者详细IP,例如dpapp01或者192.168.1.1:9080

【-u】:用户

【-p】:密码

【-ar】:导出文件存放全路径(注意需要有写权限)

【-ds】:导入的内容,填写为 hostname/工程名

【-replace】:若要覆盖已有作业,需带上此参数。执行前需备份已有作业。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/7940253.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存