很早开发的一个调度程序,,在此做个介绍,希望有些用处
概述:由于存储过程执行,需要统一管理及调度,为实现调试策略及日志处理等情况,特制定一简单有效的调试程序。
1.1 调度元数据
ETL_META_LOG
主要记录各原子的日志信息
序号 | 字段名称 | 字段描述 | 类型 | 长度 | 允许空 | 缺省值 |
1 | STEP_ID | 步骤id | NUMBER | 16,2 | Y |
|
2 | STEP_NAME | 步骤名称 | VARCHAR2 | 64 | Y |
|
3 | PERFORM_TIME | 执行时间点 | VARCHAR2 | 60 | Y |
|
4 | OUT_ROW | 返回条数 | NUMBER | 16 | Y |
|
5 | START_TIME | 执行开始时间 | DATE | 7 | Y |
|
6 | END_TIME | 执行结束时间 | DATE | 7 | Y |
|
7 | STATE | 结果状态 | CHAR | 1 | Y |
|
8 | OUT_MSG | 结果信息 | VARCHAR2 | 4000 | Y |
|
9 | ORG_CODE | 省机构代码 | NUMBER | 11 | Y |
|
ETL_META_ORG
定义各省市执行版本
序号 | 字段名称 | 字段描述 | 类型 | 长度 | 允许空 | 缺省值 |
1 | ORG_CODE | 省机构代码 | NUMBER | 11 | Y |
|
2 | ORG_NAME | 省机构名称 | VARCHAR2 | 50 | Y |
|
3 | VERSION | 执行版本 | VARCHAR2 | 20 | Y |
|
4 | ORG_FLAG | 选用标志大于1:选用0:不选用 | NUMBER | 4 | Y |
|
5 | ORG_DM | 原系统代码 | VARCHAR2 | 11 | Y |
|
ETL_META_PRC
定义各存储过程信息、版本
序号 | 字段名称 | 字段描述 | 类型 | 长度 | 允许空 | 缺省值 |
1 | STEP_ID | 步骤id | NUMBER | 16,2 | Y |
|
2 | STEP_NAME | 步骤名称 | VARCHAR2 | 64 | Y |
|
3 | PRC_NAME | 存储过程名称 | VARCHAR2 | 100 | Y |
|
4 | PRC_FLAG | 选用标志 大于1:选用 0,作废 | NUMBER | 2 | Y |
|
5 | PARENTSTEP_ID | 父执行结点集 | VARCHAR2 | 200 | Y |
|
6 | VERSION | 版本 | VARCHAR2 | 20 | Y |
|
7 | EXECUTE_SQL | 判断是否可执行,结果必须要为数字,大于零则表示可执行 | VARCHAR2 | 4000 | Y |
|
定义各省市执行成功的时间点
序号 |
字段名称
字段描述
类型
长度
允许空
缺省值
1
STEP_ID
步骤id
NUMBER
16,2
Y
2
PERFORM_TIME
执行时间点
VARCHAR2
60
Y
3
ORG_CODE
省机构代码
NUMBER
11
Y
1.2 调度功能说明
1,统一处理日志,成功标注成功日志,失败标注具体失败原因(oracle内部错误)且能统计出程序的执行时间。
2,存储过程执行依赖策略,当此程序依赖与某其它程序时,其它程序执行失败则此程序不执行。
3,重复调度合理性。所谓合理性为,当一次调度失败后,进行第二次重复设计时,以存储过程为最小粒子,上次执行成功的粒子则不会再执行。
4,支持并发调度操作,在此说的并发,前提为所有存储过程编写时符合并发操作。
5,支持存储过程不同参数。调度中可支持不同参数存储过程调用,建议:用同种参数操作,程序的简单实用性高。
6,元数据管理理愿。 一般可通过配制表管理调度策略。
1.3 调度制定说明
当编写完一存储过程后, 先定义此过程的中文说明,确定此过程的版本,(所谓版本,为‘TAX_CTAIS11’,’TAX_CTAIS20’,‘TAX_SHANGHAI’等等,可自行定义,再者确定此过程依赖的其它过程,
因此在etl_META_prc中可增加一条,step_id为执行的顺序ID,不同版本相同功能定义为同一ID,例如:征收项目分很多版本,且step_id为同一个数字。不同项目不能定义为同一ID。ID为数字型精度为2,不能小于1。
若此过程不基本任何版本,例如汇总数据。则version定义为空。
PRC_FLAG字段定义规则:0:表示不启用,
参数为 (IN_SWJG in number, --省机关代理键
IN_TJSJ_Q in number, --统计时间
IN_TJSJ_Z in number, --统计时间
OUT_ROWNUM OUT NUMBER)
PARENTSTEP_ID字段定义规则:若此程序依赖于step_id 为 1和2两存储过程,则此字段定义为 “1.00,2.00”, 因为精度为2,所以00必须加上。
EXECUTE_SQL 定义是否可执行sql, 制定sql,可确定当前时间是否达到制定的时间间隔规则
1.4 配置说明
(ETL_meta_prc表中定义数据)
STEP_ID | STEP_NAME | PRC_NAME | PRC_FLAG | PARENTSTEP_ID | VERSION | EXECUTE_SQL |
1.00 | 统一视图_增量_登记_纳税人信息 | PCK_TYST_DJ_CTAIS20_ADD.SP_DJ_NSRXX | 0 |
| TAX_CTAIS20 |
|
1.00 | 统一视图_初始化_登记_纳税人资格信息 | PCK_TYST_DJ_CTAIS20_INIT.SP_DJ_NSRXX | 1 |
| TAX_CTAIS20 |
|
2.00 | 统一视图_增量_登记_纳税人资格信息 | PCK_TYST_DJ_CTAIS20_ADD.SP_DJ_NSRZGXX | 0 |
| TAX_CTAIS20 |
|
2.00 | 统一视图_初始化_登记_纳税人资格信息 | PCK_TYST_DJ_CTAIS20_INIT.SP_DJ_NSRZGXX | 1 |
| TAX_CTAIS20 |
|
3.00 | 统一视图_增量_登记_核定征收项目 | PCK_TYST_DJ_CTAIS20_ADD.SP_DJ_HDZSXM | 0 |
| TAX_CTAIS20 |
|
3.00 | 统一视图_初始化_登记_核定征收项目 | PCK_TYST_DJ_CTAIS20_INIT.SP_DJ_HDZSXM | 1 |
| TAX_CTAIS20 |
|
200.00 | 数据仓库_登记_纳税人信息 | PCK_SJCK_DJ.SP_DJ_NSRXX | 1 | 1.00,2.00,3.00 | TAX |
|
201.00 | 数据仓库_登记_纳税人信息汇总 | PCK_SJCK_DJ.SP_DJ_HZ_NSRXX | 1 | 200.00 | TAX |
|
1.5 调度方式
调度方式如下:
etl_common_define. Auto_Run( In_endDate date,
In_prc_flag number,
In_org_flag number);
输入参数为三个,
In_endDate 一般为当天的一个固定时间,精确时分秒 不能为空
In_prc_flag 表示运行ETL_PRC_DEFINE表中prc_flag等于此输入参数的所有存储过程。可输入为空,代表运行所有此字段大于0的存储过程。
In_org_flag 表示运行ETL_org_DEFINE表中org_flag等于此输入参数的所有存储过程。可输入为空,代表运行所有此字段大于0的存储过程。(此参数可灵活实现机构并行调度)。
----问题:针对按地市分区并行统计汇总,如有跨分区数据(如纳税人跨地区变更等)单分区统计数据可能有误
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/134308/viewspace-761289/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/134308/viewspace-761289/