Datastage 从资料库抽取监控数据

来源:互联网 发布:推广软件拦截 编辑:程序博客网 时间:2024/04/30 05:02

前言

版本:IBM InfoSphere DataStage V11.3.1
操作系统:linux redhat 6.4
数据库版本:Oracle 11.2.0.4.0

目的

本文主要参考IBM 官网从操作数据库抽取监控数据,来通过脚本去进行日常作业维护监控。

简介

在安装 IBM InfoSphere DataStage 时,我们会手动创建或者默认(DB2),创建用户DSODB ,操作数据库 (DSODB):这是存储有关作业运行信息的操作存储库。一旦启用,每此运行作业的时候,有关该运行的数据就会存储在这里。

登录DSODB用户

该用户下表如下:
这里写图片描述

常用脚本

1.此 SQL 查询抽取在特定引擎上运行的所有作业的名称

SELECT H.HostName, --DataStage 引擎或远程系统的名称       J.ProjectName, --工程名称       J.JobName, --作业名称       R.InvocationId, --对于多实例化作业,该字符串用于标识实例       RunMajorStatus --区别已排队、正在运行和已完成的作业运行       FROM DSODB.JobExec J, DSODB.JobRun R, DSODB.Host H WHERE H.HOSTID = J.HOSTID   AND R.JOBID = J.JOBID   AND H.HostName = 'DWTEST';

其中RunMajorStatus 字段类型编码如下:
这里写图片描述
数据展示
这里写图片描述

2.此 SQL 查询抽取任何主机上在启动之后的某一特定时间所有作业的完整状态

SELECT H.HostName,       J.ProjectName,       J.JobName,       R.InvocationId,       S.MajorStatusName,       CAST(R.RunStartTimeStamp AS DATE)  FROM DSODB.JobExec           J,       DSODB.JobRun            R,       DSODB.Host              H,       DSODB.RunMajorStatusRef S WHERE H.HOSTID = J.HOSTID   AND R.JOBID = J.JOBID   AND R.RunMajorStatus = S.MajorStatusCode   AND CAST(R.RunStartTimeStamp AS DATE)>= DATE'2011-09-26' ORDER BY R.RunStartTimeStamp;

数据展现

这里写图片描述

3此 SQL 查询抽取所有运行过的作业的详细信息,并将运行类型显示为可以阅读的字符串

SELECT H.HostName     , J.ProjectName     , J.JobName     , R.InvocationId     , cast(R.RunStartTimeStamp as date)     , T.RunTypeName  -- code converted to a readable name --FROM         DSODB.JobExec  J     , DSODB.JobRun  R     , DSODB.Host  H     , DSODB.RunTypeRef  TWHERE  H.HOSTID = J.HOSTID  AND  R.JOBID = J.JOBID  AND  R.RunType = T.RunTypeCodeORDER BY R.RunStartTimeStamp;

字段RunTypeName 类型如下

这里写图片描述

数据展现

这里写图片描述

4抽取某一特定作业运行的作业运行日志

SELECT       CAST(L.LogTimestamp AS DATE)     , T.LogTypeName           -- 日志事件的消息类型 --     , L.MessageId --消息的标识字符串。例如,IIS-DSEE-TFSC-00010 或 IIS-DSTAGE-RUN-I-0158。     , L.MessageText --记录的消息的完整文本。FROM       DSODB.JobExec  J     , DSODB.JobRun  R     , DSODB.JobRunLog  L     , DSODB.LogTypeRef  TWHERE  /*J.ProjectName = 'ODS'*/  --AND  J.JobName = 'job1name'  --  R.InvocationId = 'id'    R.JOBID = J.JOBID  AND  L.RUNID = R.RUNID  AND  L.LogType = T.LogTypeCode  AND  CAST(R.CreationTimestamp AS DATE)> DATE'2011-09-26'ORDER BY L.EventId;

数据展现

这里写图片描述

5 此 SQL 查询抽取项目中最慢的作业(根据其最后运行)。

SELECT J.JOBNAME,       MAX(CAST(R.RUNSTARTTIMESTAMP AS DATE)) AS LATESTRUN,       MAX(R.ELAPSEDRUNSECS) AS MAXTIME  FROM DSODB.JOBRUN R, DSODB.JOBEXEC J, DSODB.HOST H WHERE R.JOBID = J.JOBID   AND J.HOSTID = H.HOSTID--AND J.PROJECTNAME = 'projectname'-- AND H.HOSTNAME = 'HOSTNAME' GROUP BY J.JOBNAME ORDER BY MAXTIME DESC;

数据展现

这里写图片描述

6 查询作业运行时间源端数据和目标数据

SELECT H.HostName,       J.ProjectName,       J.JobName,       r.RUNTYPE,       R.InvocationId,       cast(R.RunStartTimeStamp as date),--该阶段启动的时间。       cast(r.runendtimestamp as date),--该阶段完成的时间。如果该阶段仍在运行,该列将设为空值。       S1.MajorStatusName,       S2.MinorStatusName,       TotalRowsConsumed,--源阶段链接中的所有行数总计       TotalRowsProduced,--目标阶段链接中的所有行数总计       R.ElapsedRunSecs --阶段所运行的时间长度(以秒计)。该时间长度是根据 StageStartTimeStamp 和 StageEndTimeStamp 列计算得出的。  FROM DSODB.JobExec           J,       DSODB.JobRun            R,       DSODB.Host              H,       DSODB.JobRunParamsView  P,       DSODB.RunMajorStatusRef S1,       DSODB.RunMinorStatusRef S2 WHERE H.HOSTID = J.HOSTID   AND R.JOBID = J.JOBID   AND R.RUNID = P.RUNID      --AND  P.ParamName = 'paramname' AND P.ParamValue = 'paramvalue'   AND R.RunMajorStatus = S1.MajorStatusCode   AND R.RunMinorStatus = S2.MinorStatusCode   and TotalRowsProduced <>0 ORDER BY R.RunStartTimeStamp;

数据展现

这里写图片描述

补充资料
解读 IBM InfoSphere DataStage and QualityStage Operations Console 的指标

0 0
原创粉丝点击