前言
版本: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 T
WHERE H.HOSTID = J.HOSTID
AND R.JOBID = J.JOBID
AND R.RunType = T.RunTypeCode
ORDER 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 T
WHERE /*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 的指标