【故障现象】
Kettle作业执行日志无报错,绩效考核子系统的指标测算结果为空。经查,绩效后台数据库的ODS中间表无当期数据。
【故障分析】
指标测算过程无报错、结果无数据,表明ODS中间表无数据;中间表无数据,表明ETL没有正常采集HIS数据。
HIS数据的采集依赖于三个设置:Kettle作业中定义的HIS数据库连接、作业第二步设置的起止时间、绩效数据库中HIS数据库链接(dblink_his)所指向的服务器。这些设置中任何一个不正确,均可能导致Kettle从HIS中取数时“报错”或“无数据”。
第一个设置主要核对HIS服务器IP地址,测试用户的连通性;第二个查看取数的startdate、enddate时间区间,数据检索的判断条件是大于等于前者,小于后者的半闭半开区间;第三个是确定HIS服务器指向的是哪个库,有无当期数据。
基于此,请依次核对以下几处设置:
【解决步骤】
-
Kettle的“DB连接”中,HIS数据库连接参数的IP地址是否指向某个无当期数据的历史服务器?(即,情况一:走错“路”)
-
Kettle
作业第二步设置的起止时间范围是否有误或者HIS中未给JXKPVIEW用户授予“创建视图”的权限,导致SQL检索无数据?(即,情况二:定错“时”) -
在绩效数据库中核对HIS数据库链接的IP地址,是否指向了与步骤1不同的、无当期数据的历史库?(即,情况三:连错“库”)
-
查看绩效数据库HISVIEW所有者下的Days_set视图,其时间范围是否正确及任一视图是否有数据?
-
查看HIS数据库JXKPVIEW所有者下的Jxkp_dayset视图,其时间范围是否正确及任一视图是否有数据?
-
若上述设置均正确且视图中有数据,则重新运行Kettle的“HIS数据提取”作业,逐个查看每一转换的Read/Write记录数。
【案例小结】
在上述实例中,只有在技术能力强,生产、备用、历史库等多库并存的情况下才会出现第三种“失误”,第二种情况多见于数据库升级或HIS权限变更,而第一种则多见于对绩效系统工作原理不熟悉的极个别情况。




