很早开发的一个调度程序,,在此做个介绍,希望有些用处
概述:由于存储过程执行,需要统一管理及调度,为实现调试策略及日志处理等情况,特制定一简单有效的调试程序。
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 |
|
ETL_META_CHECKPOINT
定义各省市执行成功的时间点
|
序号 |
字段名称 |
字段描述 |
类型 |
长度 |
允许空 |
缺省值 |
|
1 |
STEP_ID |
步骤id |
NUMBER |
16,2 |
Y |
|
|
2 |
PERFORM_TIME |
执行时间点 |
VARCHAR2 |
60 |
Y |
|
|
3 |
ORG_CODE |
省机构代码 |
NUMBER |
11 |
Y |
|
1,统一处理日志,成功标注成功日志,失败标注具体失败原因(oracle内部错误)且能统计出程序的执行时间。
2,存储过程执行依赖策略,当此程序依赖与某其它程序时,其它程序执行失败则此程序不执行。
3,重复调度合理性。所谓合理性为,当一次调度失败后,进行第二次重复设计时,以存储过程为最小粒子,上次执行成功的粒子则不会再执行。
4,支持并发调度操作,在此说的并发,前提为所有存储过程编写时符合并发操作。
5,支持存储过程不同参数。调度中可支持不同参数存储过程调用,建议:用同种参数操作,程序的简单实用性高。
6,元数据管理理愿。 一般可通过配制表管理调度策略。
当编写完一存储过程后, 先定义此过程的中文说明,确定此过程的版本,(所谓版本,为‘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,可确定当前时间是否达到制定的时间间隔规则
(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 |
|
调度方式如下:
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博客 ” ,链接:https://blog.itpub.net/134308/viewspace-761289/ ,如需转载,请注明出处,否则将追究法律责任。