一种监控方法、设备以及存储介质与流程

文档序号:31706401发布日期:2022-10-01 11:32阅读:60来源:国知局
一种监控方法、设备以及存储介质与流程

1.本技术涉及数据处理技术领域,尤其涉及一种监控方法、设备以及存储介质。


背景技术:

2.随着计算机技术的飞速发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性和实时性要求,也对技术提出了更高的要求。在数据处理领域中,通常通过对不同应用系统对应的数据库中的数据是否存在异常来确定产品全链路应用系统的可靠性。目前,不同的产品全链路应用系统可对应同一区域同一服务器下的同一数据库或不同数据库,或不同区域不同服务器下的不同数据库,因此,异常数据监控规则常分为以下几类:a.单表内规则;b.同库跨表规则;c.同同一区域同一服务器下跨库跨表规则;d.跨区域跨服务器跨库表规则。针对a和b两种类型的规则进行监控时,可以直接执行结构化查询语言数据库(structured query language,sql)规则。针对c类型的规则进行监控时,通过申请数据库用户权限即可同时访问多个库,执行时本质同a和b两种类型的规则监控是一样的。而针对d类的规则进行监控时,由于数据库部署在不同服务器集群,无法直接联表查询,目前生产上的技术是通过将不同服务器集群下需要访问的数据库中的数据抽取到数据仓库工具(hive)中,然后执行网络面向对象的查询语言(hibernate query language,hql)进行联表查询监控。
3.但是,目前针对d类规则进行监控时,由于需要从多个不同数据库中分别抽取数据至hive中,才能进行数据分析,导致数据分析的实时性较差,且数据抽取过程中消耗的运算资源较高,使监控分析过程的效率较低。
4.申请内容
5.为解决上述技术问题,本技术实施例期望提供一种监控方法、设备以及存储介质,解决了目前针对跨服务器跨数据库的监控过程的监控分析效率较低的问题,实现了一种实时对跨服务器跨数据库的监控方法,无需将数据从不同数据库中抽取至hive中,降低了运算资源的消耗,提高了监控分析过程的效率。
6.本技术的技术方案是这样实现的:
7.第一方面,一种监控方法,所述方法包括:
8.确定用于对目标产品进行异常监控的待运行规则;
9.解析所述待运行规则,得到待访问数据库标识和待访问数据表标识;
10.基于所述待访问数据库标识和所述待访问数据表标识,确定所述待运行规则的所属类型;
11.若所述所属类型为目标类型,基于所述待访问数据库标识和所述待访问数据表标识,获取对应的至少一个目标数据库的数据库属性信息;
12.基于所述数据库属性信息,生成目标引擎;
13.通过所述目标引擎,针对至少一个所述目标数据库执行所述待运行规则,以实现对所述目标产品的监控。
14.第二方面,一种监控设备,所述设备包括:存储器、处理器和通信总线;其中:
15.所述存储器,用于存储可执行指令;
16.所述通信总线,用于实现所述处理器和所述存储器之间的通信连接;
17.所述处理器,用于执行所述存储器中存储的监控程序,实现如上述任一项所述的监控方法的步骤。
18.第三方面,一种存储介质,所述存储介质上存储有监控程序,所述监控程序被处理器执行时实现如上述任一项所述的监控方法的步骤。
19.本技术实施例中,通过确定用于对目标产品进行异常监控的待运行规则后,解析待运行规则,得到待访问数据库标识和待访问数据表标识,然后基于待访问数据库标识和待访问数据表标识,确定待运行规则的所属类型,若所属类型为目标类型,基于待访问数据库标识和待访问数据表标识,获取对应的至少一个目标数据库的数据库属性信息,基于数据库属性信息,生成目标引擎,并通过目标引擎,针对至少一个目标数据库执行待运行规则,以实现对目标产品的监控。这样,通过对用于进行监控的待运行规则进行解析后确定得到的待运行规则的所属类型,并在所属类型为目标类型时,根据待运行规则涉及的至少一个目标数据库的数据库属性信息生成目标引擎,以通过目标引擎来执行待运行规则,实现监控操作,解决了目前针对跨服务器跨数据库的监控过程的监控分析效率较低的问题,实现了一种实时对跨服务器跨数据库的监控方法,无需将数据从不通过数据库中进行抽取至hive中,降低了运算资源的消耗,提高了监控分析过程的效率。
附图说明
20.图1为本技术实施例提供的一种监控方法的流程示意图;
21.图2为本技术实施例提供的另一种监控方法的流程示意图;
22.图3为本技术实施例提供的又一种监控方法的流程示意图;
23.图4为本技术另一实施例提供的一种监控方法的流程示意图;
24.图5为本技术另一实施例提供的另一种监控方法的流程示意图;
25.图6为本技术另一实施例提供的又一种监控方法的流程示意图;
26.图7为本技术实施例提供的一种应用场景示意图;
27.图8为本技术实施例提供的一种监控设备的结构示意图。
具体实施方式
28.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
29.本技术的实施例提供一种监控方法,参照图1所示,方法应用于监控设备,该方法包括以下步骤:
30.步骤101、确定用于对目标产品进行异常监控的待运行规则。
31.在本技术实施例中,监控设备可以是服务器设备,也可以是服务集群。目标产品可以是业务产品,例如可以是金融领域中的各业务产品,示例性的,可以是金融领域中的贷款业务产品。待运行规则为用于对目标产品进行监控的已有规则,在一些应用场景下,可以称为存量规则。
32.步骤102、解析待运行规则,得到待访问数据库标识和待访问数据表标识。
33.在本技术实施例中,对待运行规则进行解析分析,确定待运行规则中涉及到的需要进行访问的数据库,得到待访问数据库标识,以及待运行规则中具体涉及到的数据表,从而的待访问数据表标识。
34.步骤103、基于待访问数据库标识和待访问数据表标识,确定待运行规则的所属类型。
35.在本技术实施例中,对待访问数据库标识和待访问数据表标识进行分析,确定待运行规则的所属类型。待运行规则可以根据其访问的数据库是否跨服务区域来进行划分,具体可以划分为两类:一类为非跨服务区域类型,另一种为跨服务区域类型。
36.步骤104、若所属类型为目标类型,基于待访问数据库标识和待访问数据表标识,获取对应的至少一个目标数据库的数据库属性信息。
37.在本技术实施例中,目标类型为跨服务区域类型。在待运行规则的所属类型为跨服务区域类型时,根据待访问数据库标识和待访问数据表标识,确定对应的至少一个目标数据库,并获取对应的至少一个目标数据库的数据库属性信息。目标数据库的数据库属性信息可以是用于访问数据库时所需的信息,以及目标数据库所属的环境信息等。
38.步骤105、基于数据库属性信息,生成目标引擎。
39.在本技术实施例中,根据待运行规则对应的至少一个目标数据库的数据库属性信息,生成目标引擎,以便后续通过目标引擎执行待运行规则,实现实时监控。
40.步骤106、通过目标引擎,针对至少一个目标数据库执行待运行规则。
41.其中,通过目标引擎,针对至少一个目标数据库执行待运行规则,以实现对目标产品的监控。
42.在本技术实施例中,通过生成的目标引擎,将待运行规则转换为可运行规则,并执行可运行规则,实现待运行规则的执行,以对目标产品的进行监控。
43.本技术实施例中,通过确定用于对目标产品进行异常监控的待运行规则后,解析待运行规则,得到待访问数据库标识和待访问数据表标识,然后基于待访问数据库标识和待访问数据表标识,确定待运行规则的所属类型,若所属类型为目标类型,基于待访问数据库标识和待访问数据表标识,获取对应的至少一个目标数据库的数据库属性信息,基于数据库属性信息,生成目标引擎,并通过目标引擎,针对至少一个目标数据库执行待运行规则,以实现对目标产品的监控。这样,通过对用于进行监控的待运行规则进行解析后确定得到的待运行规则的所属类型,并在所属类型为目标类型时,根据待运行规则涉及的至少一个目标数据库的数据库属性信息生成目标引擎,以通过目标引擎来执行待运行规则,实现监控操作,解决了目前针对跨服务器跨数据库的监控过程的监控分析效率较低的问题,实现了一种实时对跨服务器跨数据库的监控方法,无需将数据从不同数据库中抽取至hive中,降低了运算资源的消耗,提高了监控分析过程的效率。
44.基于前述实施例,本技术的实施例提供一种监控方法,参照图2所示,该方法应用于监控设备,该方法包括以下步骤:
45.步骤201、确定用于对目标产品进行异常监控的待运行规则。
46.在本技术实施例中,监控设备获取当前针对目标产品的已有的用于异常监控的待运行规则。
47.步骤202、解析待运行规则,得到待访问数据库标识和待访问数据表标识。
48.在本技术实施例中,监控设备对待运行规则进行解析,确定得到待运行规则中包括的待访问数据库标识和待访问数据表标识。其中,待访问数据库标识是用于唯一标识对应的数据库的标识信息,例如可以是数据库名称、数据库编号等;待访问数据表标识是用于唯一标识对应的数据表的标识信息,例如可以是数据表名称、数据表编号等。
49.步骤203、基于待访问数据库标识和待访问数据表标识,确定待运行规则的所属类型。
50.在本技术实施例中,对待访问数据库标识和待访问数据表标识进行分析,确定对应的数据库和数据表所属的服务区域。若待访问数据库标识对应的数据库和待访问数据表标识对应的数据表均在同一服务区域,确定待运行规则的所属类型为非跨服务区域类型;若待访问数据库标识对应的数据库和待访问数据表标识对应的数据表在多个服务区域,确定待运行规则的所属类型为跨服务区域类型。
51.步骤204、若所属类型为目标类型,基于待访问数据库标识和待访问数据表标识,确定待访问的至少一个目标数据库。
52.在本技术实施例中,在所属类型为非跨服务区域类型时,直接执行待运行规则即可。在所属类型为目标类型即跨服务区域类型时,确定待访问数据表标识所属的数据库和待访问数据库标识对应的数据库,然后对确定的数据库进行去重处理,得到待访问的至少一个目标数据库。
53.步骤205、遍历至少一个目标数据库对应的测试环境,得到数据库属性信息。
54.在本技术实施例中,对至少一个目标数据库对应的测试环境进行遍历分析,获取每一目标数据库的数据库属性信息。每一目标数据库的数据库属性信息例如可以是每一目标数据库对应的测试环境、数据中心节点(data center node,dcn)区域、网际互连协议(internet protocol,ip)、端口(port)、用户名(user)、密码(password)等。
55.步骤206、基于数据库属性信息,生成目标引擎。
56.在本技术实施例中,基于至少一个目标数据库的数据库属性信息,生成目标引擎,目标引擎可以是联合(federated)引擎。
57.步骤207、通过目标引擎,针对至少一个目标数据库执行待运行规则,以实现对目标产品的监控。
58.在本技术实施例中,通过目标引擎,将待运行规则转换为可执行规则代码来进行运行,实现对目标产品的监控。
59.基于前述实施例,在本技术其他实施例中,参照图3所示,监控设备执行步骤206之后,还用于执行步骤208:
60.步骤208、基于数据库属性信息,生成与目标引擎对应的引擎数据表。
61.其中,引擎数据表用于记录待运行规则对应的数据表的特征信息。
62.在本技术实施例中,基于至少一个目标数据库的数据库属性信息,生成目标引擎对应的引擎数据表,用于记录待运行规则对应的全部数据的特征信息,保证目标引擎可以访问的源数据。
63.对应的,步骤207由步骤207a来实现:
64.步骤207a、通过目标引擎,基于引擎数据表,执行待运行规则。
65.在本技术实施例中,通过目标引擎访问引擎数据表中记录的访问数据源,执行待运行规则,实现监控操作。
66.基于前述实施例,在本技术其他实施例中,参照图4所示,监控设备执行步骤207之后,还用于执行步骤209~210:
67.步骤209、若按照预设时间间隔检测到待运行规则存在更新的情况,通过目标引擎基于更新后的待运行规则,更新引擎数据表。
68.在本技术实施例中,监控设备按照预设时间间隔对待运行规则进行检测,检测是否有更新,更新包括规则新增、规则减少、和/或规则修改等情况。目标引擎基于更新后的待运行规则,更新引擎数据表的过程具体可以是:目标引擎对更新后的待运行规则进行解析,确定得到更新后的待运行规则对应的至少一个参考数据库,并确定至少一个参考数据库的数据库属性信息来更新引擎数据表。
69.步骤210、通过目标引擎记录更新引擎数据表的更新时间。
70.在本技术实施例中,通过目标引擎记录更新引擎数据表的更新时间,这样,可以通过引擎数据表的更新时间来检测待运行规则是否存在更新的情况。
71.基于前述实施例,在本技术其他实施例中,参照图5所示,监控设备执行捕捉209之后,还用于执行步骤211:
72.步骤211、通过目标引擎,基于更新后的引擎数据表,执行更新后的待运行规则。
73.在本技术实施例中,步骤211的实现过程可以参照步骤207a的具体实现过程,此处不再详细赘述。
74.基于前述实施例,在本技术其他实施例中,步骤207a可以由步骤a11~a13来实现:
75.步骤a11、通过目标引擎基于待运行规则和引擎数据表,生成运行策略。
76.在本技术实施例中,目标引擎对待运行规则和引擎数据表,根据运行策略生成的要求,对待运行规则和引擎数据表进行分析,进而生成得到运行策略。
77.步骤a12、通过目标引擎基于运行策略,生成目标执行语句。
78.在本技术实施例中,目标引擎根据生成的运行策略,生成对应的目标执行语句。需说明的是,运行策略是针对不同的服务区域生成的,因此,生成的目标执行语句包括针对不同服务区域的执行语句。
79.步骤a13、通过目标引擎,执行目标执行语句,以实现待运行规则的执行。
80.在本技术实施例中,目标引擎执行目标执行语句时,将不同服务区域的执行语句分发至不同服务区域对应的节点,通过对应的节点执行对应的执行语句,实现待运行规则的执行。
81.基于前述实施例,在本技术其他实施例中,步骤a11可以由步骤a111~a116来实现:
82.步骤a111、从引擎数据表中,确定属于同一服务区域下同一虚拟区域对应的至少一个数据库的至少一个第一数据表。
83.在本技术实施例中,对引擎数据表中记录的数据表进行分组,一种分组方式为确定属于同一服务区域下同一虚拟区域对应的至少一个数据库中的至少一个第一数据表。
84.步骤a112、基于待运行规则,对至少一个第一数据表进行组合,得到第一策略。
85.在本技术实施例中,按照待运行规则中至少一个第一数据表中的关系,对至少一
个第一数据表进行组合,得到第一策略。
86.步骤a113、从引擎数据表中,确定属于不同服务区域下,不同虚拟区域对应的至少一个数据库的至少一个第二数据表。
87.在本技术实施例中,对引擎数据表中记录的数据表进行分组,另一种分组方式为确定属于不同服务区域下不同虚拟区域对应的至少一个数据库中的至少一个第二数据表。
88.步骤a114、基于待运行规则,对至少一个第二数据表进行组合,得到第二策略。
89.在本技术实施例中,按照待运行规则中至少一个第二数据表中的关系,对至少一个第二数据表进行组合,得到第二策略。
90.步骤a115、从引擎数据表中,确定虚拟区域对应的服务区域只有1个的第三数据表。
91.在本技术实施例中,确定只属于1个服务区域的不同虚拟区域下的第三数据表。
92.步骤a116、基于待运行规则,确定第三数据表为第三策略。
93.其中,运行策略包括第一策略、第二策略和第三策略。
94.在本技术实施例中,直接将第三数据表确定为第三策略,无需进行组合处理。
95.基于前述实施例,在本技术其他实施例中,参照图6所示,监控设备执行步骤207之后,还用于执行步骤212~214:
96.步骤212、通过目标引擎,输出执行结果。
97.其中,执行结果为目标引擎执行待运行规则得到的。
98.在本技术实施例中,目标引擎执行目标执行语句后,得到对应的执行结果,目标引擎输出执行结果,可以将执行结果进行显示处理。
99.步骤213、若基于执行结果确定目标产品存在异常,通过目标引擎确定至少一个异常数据规则。
100.在本技术实施例中,对执行结果进行分析,确定执行结果表明目标产品存在异常或执行结果指示目标产品存在异常,通过目标引擎确定待运行规则中出现异常的规则,得到至少一个异常数据规则。
101.步骤214、通过目标引擎基于至少一个异常数据规则和预设异常修复方式,执行异常修复操作。
102.在本技术实施例中,预设异常修复方式为用于对数据进行预设的修复方式,例如可以是修数方式,也可以是清理方式,还可以是修数方式和清理方式,其中,修数方式是对数据进行修正的方式,清理方式是对异常数据进行清理的方式。这样,目标引擎确定得到至少一个异常数据规则后,采用预设异常修复方式对至少一个异常数据规则对应的数据进行处理,实现异常修复操作。
103.基于前述实施例,在本技术其他实施例中,步骤214可以由步骤214a~214d来实现:
104.步骤214a、通过目标引擎确定每一异常数据规则涉及的至少一个列表对象。
105.在本技术实施例中,对每一异常数据规则进行分析,确定每一异常数据规则中涉及的至少一个列表对象。例如列表对象可以是列表的列表标识信息。
106.步骤214b、通过目标引擎从至少一个目标数据库中确定每一列表对象具有关联关系的关联规则,得到目标关联规则。
107.在本技术实施例中,对至少一个目标数据库进行分析,确定与每一列表对象具有关联关系的关联对象,根据关联对象确定对应的关联规则,这样,可以确定得到至少一个异常数据规则对应的全部关联规则,记为目标关联规则。
108.步骤214c、通过目标引擎基于至少一个异常数据规则和目标关联规则,得到待修复规则。
109.在本技术实施例中,对至少一个异常数据规则和目标关联规则进行分析处理,确定得到待修复规则。
110.步骤214d、通过目标引擎基于待修复规则和预设异常修复方式,执行异常修复操作。
111.在本技术实施例中,目标引擎针对待修复规则对应的数据采用预设异常修复方式对应的修复方式进行处理,实现异常修复操作。
112.需说明的是,在一些应用场景中,在执行步骤214d之前,可以先将待修复规则对应的数据进行备份处理,以便后续出现故障时,进行上滚操作,或者针对异常修复操作出现的故障进行修复故障分析处理。
113.基于前述实施例,在本技术其他实施例中,步骤214c可以由以下步骤来实现:通过目标引擎按照属于同一服务区域的规则分为一组的关系,对至少一个异常数据规则和目标关联规则进行分组,得到待修复规则。
114.在本技术实施例中,目标引擎按照将属于同一服务区域的规则分为一组的分组关系,将至少一个异常数据规则和目标关联规则进行分组处理,得到待修复规则。其中,至少一个异常数据跪着和目标关联规则中有重复的规则时,需进行去重处理。
115.基于前述实施例,在本技术其他实施例中,步骤214d可以由步骤b11~b12,或步骤b13~b14,或步骤b15~b16来实现:
116.步骤b11、若预设异常修复方式为修数方式,通过目标引擎获取待修复规则对应的预设修复规则。
117.在本技术实施例中,在预设异常修复方式为修数方式时,目标引擎获取待修复规则对应的预设修复规则,其中,预设修复规则是待修复规则中针对每一规则预先设定的对其对应的数据进行更新(update)的规则。
118.步骤b12、通过目标引擎执行预设修复规则,以实现异常修复操作。
119.在本技术实施例中,目标引擎执行待修复规则对应的预设修复规则,实现对待修复规则对应的数据进行对应的修复处理。例如,是将待修复规则对应的异常数据替换为预设修复规则中规定的数据。
120.步骤b13、若预设异常修复方式为清理方式,通过目标引擎执行针对待修复规则对应的数据清理操作。
121.其中,异常修复操作包括数据清理操作。
122.在本技术实施例中,在预设异常修复方式为清理方式时,目标引擎执行用于对待修复规则对应的数据进行数据清理的操作,例如可以是将待修复规则对应的数据进行删除的操作。
123.步骤b14、若预设异常修复方式包括修数方式和清理方式,通过目标引擎获取待修复规则对应的预设修复规则。
124.步骤b15、通过目标引擎执行预设修复规则后,执行数据清理操作。
125.在本技术实施例中,在预设异常修复方式包括修数方式和清理方式时,这两种修复方式通常具有处理优先级顺序,以保证最终处理的数据的准确性,通常设置为修数方式的处理优先级高于清理方式,即在执行过程中,需针对待修复规则执行修数方式对应的修复处理,然后再执行清理方式对应的修复处理。但在一些应用场景下,也可以设置清理方式的优先级高于修数方式的优先级,具体可以根据实际应用场景来确定。
126.基于前述实施例,在本技术其他实施例中,监控设备执行步骤214d之后,还用于执行步骤214e:
127.步骤214e、若监测到目标产品异常,通过目标引擎重复执行步骤“若基于执行结果确定目标产品存在异常,通过目标引擎确定至少一个异常数据规则”,直至测到目标产品正常,结束异常修复操作。
128.在本技术实施例中,若监控设备执行步骤214d之后,检测到目标产品正常,即针对目标产品的监控无异常情况,表明异常已排除,则此次异常修复操作结束,否则,若检测到目标产品仍然存在异常时,还需重复执行步骤213~214对应的内容,直至检测到目标产品无异常才结束异常修复操作。
129.基于前述实施例,在本技术其他实施例中,本技术实施例提供一种监控方法,包括:
130.步骤c11、存量规则判断是否出现跨服务区域,若跨服务区域,执行步骤c12,否则,执行步骤c14。
131.其中,跨服务区域的一种应用场景示意图可以参照图7所示,对应的存量规则可以记为rac=ta1 join tc1;rbc=tb1 join tc1,其中,rac为服务区域1中的ta1和服务区域2中的tc1连接得到,实现了服务区域1和服务区域2的跨区域访问,同理rbc为服务区域1中的tb1和服务区域2中的tc1连接得到。在确定存量规则为跨服务区域的规则时,可以采用预设的标识信息对其进行标识,以便后续进行分析。
132.步骤c12、引擎初始化。
133.其中,确定存量规则对应的各个数据库后,对各个数据库的测试环境进行遍历,获取数据库(data base,db)信息。db信息至少包括测试环境、dcn区域、ip、port、user、password等信息。通常情况下,这些信息可以从配置管理数据库(configuration management database,cmdb)的配置中心获取得到,在本地也进行存储时,可以直接从本地获取得到。
134.示例性的,跨服务区域的存量规则涉及1个应用程序数据管理(application data management,adm)区域和2个dcn区域,部署在不同服务区域dbset1和dbset2上时,对应的db信息可以记为:dbset1:源环境k,区域adm,库glpdb,ip:10.1.1.1,port:3301,user:user1,passwd:xxx,表t1;dbset2:源环境k,区域dcn,库cpsdb,ip:10.1.1.2,port:3302,user:user2,passwd:xxx,表t2。
135.步骤c13、通过引擎执行存量规则。
136.其中,首先,根据环境信息和dcn区域信息,创建federated引擎,其中,federated引擎包括用于决策的主(master)节点和与多个服务区域对应的从(slave)节点,同时,还根据环境信息和dcn信息,创建了federated引擎对应的federated表,其中,federated表的映
射规则可以为源库名_源表名_区域名。在此过程中,federated引擎与存量规则对应的各数据库之间建立有映射关系。
137.其次,federated引擎根据存量规则和federated表生成不同的运行策略,步骤如下:
138.1)解析存量规则生成规则区域列表,得到federated表。例如,存量规则涉及的federated表中部分区域数据库如下表所示;其中,t1表:表示在虚拟区域a0,该虚拟区域只有1个逻辑区域;t2表:表示在虚拟区域b0,该虚拟区域有2个逻辑区域;t3表和t4表:表示在同一虚拟区域c0,有两个不同服务数据库。
139.逻辑区域虚拟区域库表a1a0db1t1b1b0db2t2b2b0db2t2c1c0db3t3c2c0db3t3c1c0db4t4c2c0db4t4
140.2)根据federated表生成运行策略。其中,生成运行策略包括:策略1、策略2和策略3;其中,策略1为同一虚拟区域,不同服务区域下,同一逻辑区域的组合,如t3和t4表进行join时,生成的组合有(c1,c1)和(c2,c2);策略2为不同虚拟区域,不同服务区域下,需要分别进行逻辑区域的组合,如t2和t3表进行join时,生成的组合有(b1,c1)、(b1,c2)、(b2,c1)和(b2,c2);策略3为如果该表对应的虚拟区域的逻辑区域只有1个,则只需进行1次组合,如t1表单独查询时,则生成的组合有(a1)。
141.3)基于运行策略,迭代替换存量规则,生成引擎可执行语句。
142.其中,在迭代替换存量规则,生成引擎可执行语句时,迭代替换的方式和federated表创建原则保持一致。示例性的,替换前的存量规则如下所示:
143.select count(1)from
144.(select a,b from db1.t1)t1
145.join
146.(select a,b from db2.t2)t2
147.on t1.a=t2.a
148.where t1.c=

xx’;
149.对应的,替换后,按照策略组合拆分出2个组合(a1,b1)和(a1,b2),两条规则对应的引擎可执行语句如下所示:
150.select count(1)from
151.(select a,b from fedlink_db1_a1.t1)t1
152.join
153.(select a,b from fedlink_db2_b1.t2)t2
154.on t1.a=t2.a
155.where t1.c=

xx’;
156.select count(1)from
157.(select a,b from fedlink_db1_a1.t1)t1
158.join
159.(select a,b from fedlink_db2_b2.t2)t2
160.on t1.a=t2.a
161.where t1.c=

xx’;
162.需说明的是,在生成引擎可执行语句时,需对存量规则涉及的每个虚拟区域的库表都进行遍历,直至生成所有策略组合对应的引擎可执行语句。
163.最后,federated引擎并行运行引擎可执行语句,实现存量规则的执行过程。
164.步骤c14、执行存量规则。
165.基于前述实施例,在本技术其他实施例中,federated引擎执行步骤c13之后,还用于执行以下步骤:
166.步骤c15、每隔预设时间间隔检测存量规则是否更新,若存量规则存在更新,对federated引擎和federated表也进行同步更新,然后执行更新后的存量规则。
167.基于前述实施例,在本技术其他实施例中,federated引擎执行步骤c13或步骤c15之后,还用于执行以下步骤:
168.步骤c16、输出规则运行结果。
169.其中,federated引擎根据生成策略组合交分区域交叉展现,如果有任一组合运行结果不满足异常校验条件,则确定规则运行结果为规则检查失败。示例性的,上述拆分出的两个规则组合(a1,b1)和(a1,b2),如果(a1,b1)运行结果校验失败,(a1,b2)运行校验成功,则仍判定该存量规则校验失败。
170.步骤c17、如果规则运行结果为校验失败,确定至少一个异常数据规则。
171.首先,通过存量规则中涉及异常规则的表字段逐步迭代反关联查找出规则对应的关键字(key)。
172.其次,先进行单库多key提取,并查找单库中相似的关联规则。示例性的,假设跨服务区域的存量规则为r1,则对应的1)提取r1涉及的表列表t_num;2)如果t_num的数量为1,假设表列表t_num为t1时,查找表t1的关联主键、索引,然后反查该表列表t1所属的数据库下关联的所有关键字key、关联表和异常字段值列表集合,得到单库中的关联规则;如果t_num的数量大于1,则将规则r1拆分为多个子查询,如r1涉及表t1,t2和t3时,可以拆分为针对表t1、t2和t3的3个子查询规则,每个子查询获取关联规则的过程与t_num的数量为1时的过程相同。
173.示例性的,查找表t1的关联主键、索引,然后反查该表列表t1所属的数据库下关联的所有关键字key、关联表和异常字段值列表集合,得到单库中的关联规则的具体过程可以表示为:1)按照t1表反查出的关键字集合t:[k1,k2,k3];2)根据关键字k集合和r1中的原始字段集合sc[c1,c2,c3],异常字段集合c:[c1,c2],查找规则库相似的关联规则涉及的关联表集合:[t1,t2,t3],其中,相似关联规则表判定方法为:

首先生成表链表,当前规则r1的t1作为顶点,

查找包含t1表的第一层关联规则节点列表
[0174]
l1r[r2,r3,

],及其关联规则表取交集集合l1t[t1,t2,t3],需说明的是,为
[0175]
了避免扫描全量规则库,查找关联规则链表的向下取的节点数等于初始t_num,如
此重复,直到生成的表链表的节点都遍历完,关联规则判定查找完成,即可得到最终单库t1对应的关联规则为:{k:[k1,k2,k3],t:[t1,t2,t3],c:[c1,c2]}。
[0176]
最后,对存量规则对应的多个数据库的关联规则取并集,得到最终的至少一个异常数据规则。
[0177]
步骤c18、确定异常修复方式包括修数方式和清理方式。
[0178]
步骤c19、确定至少一个异常数据规则对应的预设修复规则。
[0179]
其中,查找规则库中,匹配k值的预设修复规则集合rk,匹配t值的预设修复规规则集合rt,再根据异常字段集合c{c1,c2}在rk和rt中过滤出单表t1的预设修复规则。示例性的,r1规则记为:select count(1)from cpsdb.t1where c1 is null and c2=0and c3='a';对应的,r1规则对应的预设修复规则为:update cpsdb.t1 set c1=0,c2=1where c1 is null and c2=0and c3='a';r1规则对应的预设修复规则表明的是在检测到c1为空、c2为0,c3为a时,将c1更新为0,c2更新为1。
[0180]
步骤c20、在执行预设修复规则之前,为了保留现场或追溯异常场景,先将至少一条异常数据规则对应的异常数据进行备份。
[0181]
步骤c21、执行至少一条异常数据规则对应的预设修复规则。
[0182]
其中,执行至少一条异常数据规则对应的预设修复规则时,需确定是否关联影响到其他数据表,如果发现异常,继续重复步骤c17。优先执行步骤c19中确定得到的预设修复规则,直至最终确定得到的全部被预设修复规则执行后,使检测结果成功为止。
[0183]
步骤c22、修数方式执行完成后,继续自动执行清理方式,直至清理方式执行完成后检测监控成功,本次异常数据修复完成,否则,重复执行步骤c17至c22。
[0184]
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
[0185]
本技术实施例中,通过确定用于对目标产品进行异常监控的待运行规则后,解析待运行规则,得到待访问数据库标识和待访问数据表标识,然后基于待访问数据库标识和待访问数据表标识,确定待运行规则的所属类型,若所属类型为目标类型,基于待访问数据库标识和待访问数据表标识,获取对应的至少一个目标数据库的数据库属性信息,基于数据库属性信息,生成目标引擎,并通过目标引擎,针对至少一个目标数据库执行待运行规则,以实现对目标产品的监控。这样,通过对用于进行监控的待运行规则进行解析后确定得到的待运行规则的所属类型,并在所属类型为目标类型时,根据待运行规则涉及的至少一个目标数据库的数据库属性信息生成目标引擎,以通过目标引擎来执行待运行规则,实现监控操作,解决了目前针对跨服务器跨数据库的监控过程的监控分析效率较低的问题,实现了一种实时对跨服务器跨数据库的监控方法,无需将数据从不同数据库中抽取至hive中,降低了运算资源的消耗,提高了监控分析过程的效率。
[0186]
基于前述实施例,本技术的实施例提供一种监控设备,该监控设备可以应用于图1~6对应的实施例提供的监控方法中,参照图8所示,该监控设备3可以包括:处理器31、存储器32和通信总线33,其中:
[0187]
存储器32,用于存储可执行指令;
[0188]
通信总线33,用于实现处理器31和存储器32之间的通信连接;
[0189]
处理器31,用于执行存储器32中存储的监控程序,以实现参照图1~6对应的实施
例提供的方法实现过程,此处不再赘述。
[0190]
基于前述实施例,本技术的实施例提供一种计算机可读存储介质,简称为存储介质,该计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如图1~6对应的实施例提供的监控方法实现过程,此处不再赘述。
[0191]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0192]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0193]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0194]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0195]
以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1