作业调度及监控设计说明书资料

发布时间:2018-10-19 11:53:50

SPDB CCC调度监控模块

设计说明书

word/media/image3_1.png

文档信息

分发名单

*行动类别:批准,复审,通知,存档,所需行动,参加会议,其它(请指明)

版本历史


1 概述 4

1.1 编写目的 4

1.2 背景 4

1.3 阅读对象 4

2 总体描述 5

2.1 设计目标 5

2.2 设计约束 5

2.2.1 软件运行平台约束 5

3 应用程序设计 6

3.1 架构设计(Architectural Design) 6

3.1.1 应用模块结构 6

3.2 模块_调度 6

3.2.1 功能描述 6

3.2.2 程序结构设计 7

3.2.3 相关数据表(Related Tables) 7

3.3 模块_监控 8

3.3.1 功能描述 8

3.3.2 展示画面 8

3.3.3 相关数据表(Related Tables) 8

3.4 模块_日志 9

3.4.1 功能描述 9

3.4.2 展示画面 9

3.4.3 相关数据表(Related Tables) 9

3.5 模块_系统管理 9

3.5.1 功能描述 9

3.5.2 展示画面 10

3.5.3 相关数据表(Related Tables) 10

4 数据结构定义 12

4.1 集合命令定义表[DISP_COMMAND_DEF] 12

4.2 任务信息表[DISP_TASK_DEF] 13

4.3 任务关系定义表[DISP_TASK_REL] 14

4.4 任务参数定义表[T_CONF_SP_PARA_INFO] 14

4.5 任务变量定义表[T_DATA_VARIABLE] 15

4.6 集合任务运行日志[DISP_COMMAND_RUN_RECORD] 15

4.7 任务运行日志[DISP_TASK_LOG] 16

5 运行过程中相关问题 17

5.1 日志信息查询 17

5.1.1 日志文件命名规则 17

5.1.2 日志文件查询 17

5.1.3 日志表信息查询 17

5.2 任务错误分析及解决 19

6 运行解决案例 20

6.1 源数据重复导致 20

6.1.1 问题分析 20

6.1.2 解决方案 20

6.2 镜像数据库重启导致任务失败 20

6.2.1 问题分析 20

6.2.2 解决方案 20

6.3 无法连接数据库导致任务失败 21

6.3.1 问题分析 21

6.3.2 解决方案 21

6.4 数据库磁盘空间满导致任务失败 21

6.4.1 问题分析 21

6.4.2 解决方案 21

1 概述

该文档主要描述作业调度及监控平台的设计思路及实现方法。

1.1 编写目的

该文档主要描述作业调度及监控平台的设计思路及实现方法。

1.2 背景

浦发银行数据处理系统需要从核心系统、花旗数据集市、催收和反欺诈系统中导入相关数据,然后进行处理,最后再导出给SAS系统。行里原来的方案中仅仅定义了数据导入、导出在行里的Data Stage平台上完成,但没有明确ETL任务的调度、监控。

尽管行里有统一的ETL任务调度、监控平台Automation,但因为多方面原因,本次数据处理系统的调度、监控模块将不能利用现有平台,需要单独开发一套独立模块。

1.3 阅读对象

该文档主要阅读对象:

上海浦发银行相关业务人员

上海浦发银行相关技术人员

安硕科技项目组人员

2 总体描述

2.1 设计目标

作业调度及监控平台要实现如下功能目标

1、 任务的定义,设置;

2、 任务运行的自动调度和手工调度;

3、 任务运行日志的监控纪录;

4、 任务出错后的续跑和回滚;

5、操作界面友好、方便。

2.2 设计约束

因为调度模块需要远程调用DataStageJOB,而DataStage仅仅提供了Windows平台的API接口,所以,调度、监控模块一定要在Windows平台上开发实施。

2.2.1 软件运行平台约束

3 应用程序设计

3.1 架构设计(Architectural Design)

3.1.1 应用模块结构

3.2 模块_调度

3.2.1 功能描述

调度模块的功能主要是读取任务和任务调度信息,然后依次执行相应任务,并随时保存任务执行情况。

任务类型包括四种类型

SPOracle数据库中的存储过程;

DS JOB:通过执行本地DataStage Client命令,调研远程DataStage上的JOB

DOS: 调用DOS命令或者bat文件

SQR

其他

任务执行方式主要分为两种

界面执行方式

后台监控方式

任务的调用类型主要分为三种

任务正常启动:正常启动任务

任务回滚:回滚失败的任务

断点执行:如果任务由于某种情况执行失败,解决问题后,不需要回滚,可采用.

任务启动类型主要分为四种情况

手工任务执行

定时任务执行

循环标志文件

标志文件执行

运行任务可以利用多线程并行执行,同时支持任务之间的依赖关系。

3.2.2 程序结构设计

3.2.3 相关数据表(Related Tables)

列出模块中使用到的数据库表清单及相关说明

3.3 模块_监控

3.3.1 功能描述

监控模块是系统的主界面,主要功能是实时读取任务执行情况,如果任务运行发生异常,报警提示。另外,监控界面中提供手工触发调度功能的方式。

3.3.2 展示画面

展示画面的信息包括:

已经执行完成的任务号、任务名称、开始时间、结束时间、状态;

正在执行的任务号、任务名称、开始时间、状态;

如果任务失败,将弹出一个警示窗口,包括下列信息:

任务号

任务名称

开始时间

出错时间

出错信息

3.3.3 相关数据表(Related Tables)

列出模块中使用到的数据库表清单及相关说明

3.4 模块_日志

3.4.1 功能描述

主要功能是查询任务的历史运行情况。

3.4.2 展示画面

查询条件包括:

任务号

运行日期

运行结果

查询结果包括:

任务号

任务名称

开始时间

结束时间

状态

错误信息

3.4.3 相关数据表(Related Tables)

列出模块中使用到的数据库表清单及相关说明

3.5 模块_系统管理

3.5.1 功能描述

主要功能是配置任务、任务关系以及系统各种参数。

3.5.2 展示画面

3.5.2.1 任务配置

配置任务界面的信息包括:

任务号

任务名称

任务类型

任务参数

任务运行条件

配置任务界面的功能按钮包括:

新增

修改

删除

确定

取消

3.5.2.2 任务关系配置

界面的信息包括:

任务号

父任务

界面的功能按钮包括:

新增

删除

确定

取消

3.5.2.3 参数配置

界面的信息包括:

参数名称

参数值

界面的功能按钮包括:

新增

修改

删除

确定

取消

3.5.3 相关数据表(Related Tables)

列出模块中使用到的数据库表清单及相关说明

4 数据结构定义

4.1 集合命令定义表[DISP_COMMAND_DEF]

4.2 任务信息表[DISP_TASK_DEF]

4.3 任务关系定义表[DISP_TASK_REL]

4.4 任务参数定义表[T_CONF_SP_PARA_INFO]

4.5 任务变量定义表[T_DATA_VARIABLE]

4.6 集合任务运行日志[DISP_COMMAND_RUN_RECORD]

4.7 任务运行日志[DISP_TASK_LOG]

5 运行过程中相关问题

5.1 日志信息查询

日志信息分为日志文件信息以及日志数据表信息

5.1.1 日志文件命名规则

日志文件分为3个文件.分别为Detail,Exception.Debug

Detail:Detail中记录了集合任务以及任务的运行情况

Exception:Exception文件记录了程序在任务执行过程中遇到的异常信息

Debug:任务运行的详细信息

1. 调度程序.exe的日志文件命名(YYYYMMDD为系统当前日期)

Detail:YYYYMMDD_DETAIL.txt

Exception:YYYYMMDD_EXCEPITON.txt

Debug:YYYYMMDD_DEBUG.txt

2. TaskCommand.exe日志文件命名

Detail:YYYYMMDD_TaskCommand_DETAIL.txt

Exception:YYYYMMDD_TaskCommand _EXCEPITON.txt

Debug:YYYYMMDD_TaskCommand_DEBUG.txt

5.1.2 日志文件查询

如果任务出错,可以查看Exception日志文件,找到相关错误信息

查看任务运行信息,可以查看Detail日志文件.

查看任务详细运行信息以及调度程序运行状态信息,可以查看Debug日志文件

5.1.3 日志表信息查询

1. 集合任务运行情况

SELECT COMMANDRUNID AS 运行编号,

COMMANDNO AS 命令编号,

COMMANDNAME AS 命令名称,

TASKDATE 数据日期,

STARTTIME AS 开始时间,

ENDTIME AS 结束时间,

DECODE(COMMANDSTATUS,

3,

'运行失败',

2,

'运行成功',

9,

'等待',

'未知错误') AS 命令运行状态

FROM (SELECT COMMANDRUNID,

DCD.COMMANDNO,

COMMANDNAME,

STARTTIME,

ENDTIME,

DCR.COMMANDSTATUS,

TASKDATE

FROM DISP_COMMAND_RUN_RECORD DCR, DISP_COMMAND_DEF DCD

WHERE DCR.COMMANDNO = DCD.COMMANDNO)

ORDER BY TO_NUMBER(COMMANDRUNID) DESC;

2. 任务运行情况查询

SELECT COMMANDRUNID AS 所属命令编号,

TASKRUNID AS 任务调度编号,

TASKNO AS 任务编号,

TASKNAME AS 任务名称,

TASKDATE AS 数据日期,

STARTDATE || ' ' || STARTTIME AS 开始时间,

ENDDATE || ' ' || ENDTIME AS 结束时间,

DECODE(RUNRESULT,

3,

'运行失败',

2,

'运行成功',

9,

'等待',

'未知错误') AS 运行状态,

REMARKS AS 备注

FROM (SELECT A.*, B.TASKDATE

FROM DISP_TASK_LOG A, DISP_COMMAND_RUN_RECORD B

WHERE A.COMMANDRUNID = B.COMMANDRUNID)

ORDER BY TO_NUMBER(TASKRUNID) DESC;

3. 存储过程运行情况

SELECT LOGSERIALNO AS 日志流水号,

OBJECTCALLERNAME AS 调用对象名,

(TO_DATE(LOGTIME1, 'YYYY-MM-DD hh24:mi:ss') -

TO_DATE(LOGTIME, 'YYYY-MM-DD hh24:mi:ss')) * 3600 * 24 AS 耗时,

LOGTIME1 AS 日志时间1,

LOGTIME AS 日志时间,

LOGINFO AS 日志信息

FROM (SELECT L.*,

LEAD(LOGTIME) OVER(ORDER BY TO_NUMBER(LOGSERIALNO)) AS LOGTIME1

FROM T_LOG_OBJECTEXEC L)

WHERE ROWNUM < 200

ORDER BY TO_NUMBER(LOGSERIALNO) DESC;

5.2 任务错误分析及解决

1. 调度程序自身问题导致任务错误

由于数据环境,程序本身健壮性,完整性,调度程序自身可能会产生部分问题,例如.TaskCommand.exe进程在运行过程中突然在任务管理器中消失.验证方法:右键[我的电脑]->[管理]->应用程序 ,仔细查看其中是否有应用程序异常是关于TaskCommand.

2. 调用任务异常

此类异常一般都是由调度程序抛出,有日志可循,此时,就必须仔细分析异常信息,查询相关任务信息.寻找解决办法.在未找到错误原因前,不要重新启动调度程序,保留异常现场,保存日志文件(最好重命名),有利于相关人员查证.

6 运行解决案例

6.1 源数据重复导致

6.1.1 问题分析

1、 在两次投产演练中,遇到发卡核心的stmt(帐单表中)存在一个账号对应两个帐单日的数据重复现象,导致SAS数据处理sp_etl_sas_ambs 处理失败。

2、 在做SAS数据处理sp_etl_sas_ola处理时,发现SAS_OLA 表主键重复,根据业务需求分析,(授权日期、授权时间、账号)应为业务主键

6.1.2 解决方案

经过和卡中心、卡核心一起核查,发现是历史数据造成,投产后不会存在以上问题。第一个问题的解决方案是把重复的数据删除。第二问题的解决方案是取消主键。

6.2 镜像数据库重启导致任务失败

6.2.1 问题分析

2007-12-16 的批处理中,数据抽取失败,经过分析,有可能是镜像数据库重启,和原DBLINK关联的session失败造成。

6.2.2 解决方案

修改调度程序的连接方式:进程启动时重建连接,执行完毕关闭连接。

6.3 无法连接数据库导致任务失败

6.3.1 问题分析

6.3.2 解决方案

6.4 数据库磁盘空间满导致任务失败

6.4.1 问题分析

2007-11-30 投产演练时,数据库归档日志满了,导致数据处理停止。

6.4.2 解决方案

清除归档日志,数据处理就继续往下进行。

作业调度及监控设计说明书资料

相关推荐