规则分析结果存储方法、规则回溯方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及规则分析结果存储方法及装置、规则回溯方法及装置。
背景技术
随着互联网技术的飞速发展,互联网平台可以向用户提供越来越多的业务。用户可以在互联网平台提供的业务系统中进行多种操作,这种操作可称为事件。出于系统安全等因素的考虑,在业务系统中,需要对事件进行监控,以便及时地发现非法操作,并针对发现的非法操作及时采取应对措施。例如,用户在进行登陆操作时,如果业务系统检测到账号的登录设备与账号的常用登录设备不同,则可以采取增加登录验证的应对措施,来保障用户的账号安全。
在对事件进行监控时,往往会利用预先部署的规则,来对事件进行规则分析,进行规则分析时,会根据事件对应的操作,选择相应的规则来对该事件进行分析。在利用规则对事件进行规则分析后,将会对规则分析的规则分析结果进行存储,现有技术中,会以日志的形式,将规则分析结果进行存储。
日志中的一条日志记录包含某一次规则分析的规则分析结果,由于规则分析结果会包含规则的执行结果以及规则中各个条件的执行结果等多项数据,那么一条日志记录所占用的存储空间是非常大的。随着业务量的增大,利用规则对事件进行的规则分析越来越多,以日志的形式,将规则分析后的规则分析结果进行存储,会耗费大量的存储资源。
发明内容
本申请实施例提供一种规则分析结果存储方法,用以解决现有技术中对规则分析结果进行存储会耗费较多存储资源的问题。
本申请实施例还提供一种规则分析结果存储装置,用以解决现有技术中对规则分析结果进行存储会耗费较多存储资源的问题。
本申请实施例还提供一种规则分析结果存储方法,用以解决现有技术中对规则分析结果进行存储会耗费较多存储资源的问题。
本申请实施例还提供一种规则分析结果存储装置,用以解决现有技术中对规则分析结果进行存储会耗费较多存储资源的问题。
本申请实施例还提供一种规则回溯方法。
本申请实施例还提供一种规则回溯装置。
本申请实施例采用下述技术方案:
一种规则分析结果存储方法,包括:
在利用规则对事件进行规则分析后,根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码;
将所述事件的事件标识和所述事件对应的规则分析结果代码进行存储。
一种信息储存装置,包括:
第一规则分析结果转化单元,用于在利用规则对事件进行规则分析后,根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码;
规则分析结果代码储存单元,用于将所述事件的事件标识和所述事件对应的规则分析结果代码进行存储。
一种规则分析结果代码存储方法,包括:
在利用规则对事件进行规则分析后,根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码;
获取所述规则的规则标识,根据预设的规则标识编码方式,将所述规则标识转化为预定格式的规则标识代码;
将所述事件的事件标识、所述事件对应的规则标识代码和所述事件对应的规则分析结果代码进行存储。
一种规则分析结果储存装置,包括:
第二规则分析结果转化单元,用于在利用规则对事件进行规则分析后,根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码;
规则标识转化单元,用于获取所述规则的规则标识,根据预设的规则标识编码方式,将所述规则标识转化为预定格式的规则标识代码;
代码存储单元,用于将所述事件的事件标识、所述事件对应的规则标识代码和所述事件对应的规则分析结果代码进行存储。
一种规则回溯方法,包括:
接收事件标识和规则标识;
从存储有预定格式的规则分析结果代码和规则标识代码的数据库中,确定与所述事件标识对应的预定格式的规则标识代码和规则分析结果代码;
根据预设的代码解析方式,对确定的预定格式的规则标识代码和规则分析结果代码进行解析,得到规则信息和规则分析结果。
一种规则回溯装置,包括:
标识接收单元,用于接收事件标识和规则标识;
代码确定单元,用于从存储有预定格式的规则分析结果代码和规则标识代码的数据库中,确定与所述事件标识对应的预定格式的规则标识代码和规则分析结果代码;
代码解析单元,用于根据预设的代码解析方式,对确定的预定格式的规则标识代码和规则分析结果代码进行解析,得到规则信息和规则分析结果。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
在利用规则对事件进行规则分析后,通过预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码,然后将所述预定格式的规则分析结果代码进行存储,无需对规则分析结果进行存储。由于所述预定格式的规则分析结果代码所占用的存储空间,要远远小于所述预定格式的规则分析结果代码所表示的规则分析结果所占用的存储空间。相对于现有技术中,在每次进行规则分析后以日志的形式将规则分析结果进行存储的方式,减少了对存储空间的占用,节省了存储资源。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例1提供的一种规则分析结果存储方法的实现流程示意图;
图2为本申请实施例2提供的一种规则分析结果存储方法的实现流程示意图;
图3为本申请实施例2提供的一种预定格式的代码中各部分代码的组合排列示意图;
图4为本申请实施例2提供的一种规则回溯方法的实现流程示意图;
图5为本申请实施例3提供的一种规则回溯方法的具体实现流程示意图;
图6为本申请实施例4提供的一种规则分析结果存储装置的具体结构示意图;
图7为本申请实施例5提供的一种规则分析结果存储装置的具体结构示意图;
图8为本申请实施例6提供的一种规则回溯装置的具体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中,可以根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码,进而可以节省对规则结果进行存储时所耗费的存储资源。
为了便于理解本申请提供的方法,下面首先对规则分析的相关信息进行简单说明,然后再详细介绍本申请提供的规则分析结果存储方法。
规则分析是利用规则对事件进行分析的过程,即判断事件是否符合某一规则。这里所说的规则是由至少一个规则条件组成的、用于判断事件的性质的准则,事件的性质比如可以是恶意性质、非法性质等性质。所述规则条件为用于判断事件中包含的操作的性质的准则,即用于判断事件中包含的操作是否符合该规则条件。由于事件可以是用户在业务系统中执行的多种操作,那么用于对包含多种操作的事件进行分析的规则,会包含多个规则条件。
规则条件在计算机中的具体表现形式为逻辑表达式,这里将用于表达规则条件的逻辑表达式称为规则条件表达式。所述规则条件表达式为由输入参数、比较运算符和比较值构成的判断性语句,用于判断输入参数与比较值之间的关系是否能够满足所述比较运算符。所述输入参数即为事件中包含的操作信息,规则条件表达式用于判断事件中包含的操作是否满足该规则条件,其输出结果为真或假。
例如,规则条件A为判断用户登录地点是否异常的规则条件,具体操作时可以是根据用户当前登录IP地址,确定用户当前登录城市,进而判断用户当前登录城市是否属于用户经常登录的城市,如果不属于,则判定用户登录地点异常。则规则条件A的规则条件名可以是“用户登录地点异常判定条件”,规则条件A的比较运算符为“属于”,规则条件A的比较值为“用户经常登录的城市名”,规则条件表达式可以示意为:“‘输入城市名’‘属于’‘用户经常登录的城市名’”。当给规则条件A输入的城市名不属于用户经常登录的城市名时,规则条件A输出的结果为假,即判定输入的该城市名不符合规则条件A。
同一规则中包含的各个规则条件之间具备一定的逻辑关系,那么,根据各个规则条件之间的逻辑关系,同一规则中包含的规则条件的规则条件表达式之间可以通过逻辑运算符连接,即可构成规则的逻辑表达式,简称规则表达式,其输出结果为真或假。规则的判断结果取决于该规则中包含的各个规则条件的判断结果和各个规则条件之间的逻辑关系。
例如,规则a包含5个规则条件,分别为A、B、C、E和F,根据规则条件A、B、C、E和F之间的逻辑关系,规则a的规则表达式可以表示为“(A and B)or(C and(E or F))”。
基于上述对规则和规则条件的详细描述,可以发现,规则的具体信息会包括规则表达式和规则包含的各个规则条件的具体信息。其中,所述规则包含的各个规则条件的具体信息包括:规则条件名和规则条件表达式等。规则的具体信息可以简称为规则信息,所述规则信息还可以包括规则条件执行顺序和规则创建时间等信息。
在进行规则分析时,会以事件作为规则表达式的输入,规则表达式会对输入的事件进行判断,进而判断输入的事件是否符合规则。具体地,判断事件中包含的各个操作,是否满足与事件对应的规则中的各个规则条件。然后根据规则中各个规则条件对事件中各个操作的判断结果,以及各个规则条件之间的逻辑关系,来判断事件是否满足与该事件对应的规则。
在进行规则分析时,可以根据逻辑表达式的短路特性,选择性运行逻辑表达式中的规则条件。所述逻辑表达式的短路特性,指当逻辑表达式中部分规则条件的计算结果,已经能够确定整个表达式的计算结果时,就不再对表达式中未被运算过的规则条件进行运算,以便节省计算资源。例如,对于表达式“(A and B)or(C and(E or F))”,如果规则条件A和规则条件B的结果为真,则表达式“(A and B)or(C and(E or F))”的结果必定为真,此时便无需执行规则条件C、E、F。
在利用规则对事件进行分析后,即可得到所述规则分析的规则分析结果,所述规则分析的规则分析结果包括:规则表达式执行结果、规则中的规则条件数目、规则中各个规则条件的执行状态和被执行的规则条件的执行结果等信息,其中,所述规则中各个规则条件的执行状态指规则分析过程中规则中包含的各个规则条件是否被执行。
在得到规则分析结果后,将会对规则分析结果进行存储,为了便于后续查看规则分析时所使用的规则的规则信息,在对规则分析结果进行存储时,往往也会对规则分析时所使用的规则的规则信息一起进行存储。
现有技术中,在每一次规则分析结束后,都会以日志的形式存储规则分析的规则分析结果和规则信息,随着业务量的增大,利用规则对事件进行的规则分析越来越多,以日志的形式,将规则分析后的规则分析结果和规则分析时所使用的规则的规则信息进行存储,会耗费大量的存储资源。
需要说明的是,本申请实施例中所述的以日志形式进行存储,指直接将算法的执行结果进行存储。比如,规则表达式执行结果或规则条件执行结果可以是true或false,那么日志中在存储规则表达式执行结果或规则条件执行结果时,会记录为true或者false;在存储规则分析时所使用的规则的规则信息时,日志中会记录规则的规则表达式、规则包含的各个规则条件的具体信息和规则执行顺序等诸多信息。
基于现有技术中在对规则分析结果和规则信息进行存储时会耗费大量的存储资源的问题,本申请提供一种规则分析结果存储方法,以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
为解决现有技术中在对规则分析结果进行存储时会耗费大量的存储资源的问题,本申请实施例1提供一种规则分析结果存储方法。本申请实施例提供的规则分析结果存储方法的执行主体可以是风险监控识别平台。
为便于描述,下文以该方法的执行主体为风险监控识别平台为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为风险监控识别平台只是一种示例性的说明,并不应理解为对该方法的限定。
该方法的实现流程示意图如图1所示,包括下述步骤:
步骤11:在利用规则对事件进行规则分析后,根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码;
所述预定格式的规则分析结果代码可以简化表示所述规则分析结果。
所述预设的规则分析结果编码方式,为将规则分析结果,编码为预定格式的代码的编码规则。
其中,所述规则分析结果,包含至少一项数据;所述规则分析结果编码方式,包含与各项数据对应的各项规则分析结果编码方式。
那么,可以根据预设的、与规则分析结果中包含的各项数据对应的各规则分析结果编码方式,分别将所述规则分析结果中包含的各项数据,转化为各项规则分析结果代码。
步骤12:将所述事件的事件标识和所述事件对应的规则分析结果代码进行存储。
所述事件标识,为用于标识业务系统中发生的事件的标识信息。
本申请实施例中,可以将所述事件的事件标识和所述事件对应的规则分析结果代码存储于数据库中,那么该数据库中的一条数据记录,可以包括某一规则分析过程中分析的事件的事件标识,以及对所述规则分析的规则分析结果进行编码得到的预定格式的规则分析结果代码。
本申请实施例中,为了尽可能地减少对存储空间的占用,所述预定格式的规则分析结果代码所占用的存储空间要小于所述规则分析结果所占用的存储空间,优选的,所述预定格式可以是二进制数格式,即所述预定格式的规则分析结果代码为二进制数格式的代码。需要说明的是,所述预定格式为二进制数格式,只是本申请实施例中为了减少对存储空间的占用,所使用的一种优选方案,本申请不对所述预定格式进行限定。只要所述预定格式的代码能够简化表示所述规则分析结果即可,即只要所述预定格式的规则分析结果代码所占用的存储空间小于所述规则分析结果所占用的存储空间即可。
本申请实施例中,在规则分析结束后,由于所述规则分析结果包括至少一项数据。那么,可以根据预设的、与规则分析结果中包含的各项数据对应的各规则分析结果编码方式,分别将所述规则分析结果中包含的各项数据,转化为各项规则分析结果代码;所述各项规则分析结果代码,分别用于简化表示所述规则分析结果包含的各项数据;所述各分析结果编码方式,分别为将所述各项数据,编码为各项规则分析结果代码的编码方式。
在实际应用中,所述规则分析结果可以包含下述各项数据:规则表达式执行结果、规则中的规则条件数目、规则中各个规则条件的执行状态和被执行的规则条件的执行结果等信息。
在将规则分析结果中的各项数据转换为各项规则分析结果代码时,可以从各项数据中选择期望转换的数据进行转换,得到规则分析结果代码。所述规则分析结果代码包括规则表达式执行结果代码,为了便于后续规则回溯,所述规则分析结果代码还可以包括下述至少一种:规则条件数目代码、规则条件执行状态代码、规则条件执行结果代码。
则,与各项数据对应的各项规则分析结果编码方式,包括:用于将规则表达式执行结果转化为规则表达式执行结果代码的编码方式;用于将规则中的规则条件数目转化为规则条件数目代码的编码方式;用于将规则中各个规则条件的执行状态转化为规则条件执行状态代码的编码方式;用于将被执行的规则条件的执行结果转化为规则条件执行结果代码的编码方式。
以下将详细描述在实际应用中,根据预设的、与规则分析结果中包含的各项数据对应的各规则分析结果编码方式,分别将所述规则分析结果中包含的各项数据,转化为各项规则分析结果代码的过程。
对于规则表达式执行结果而言,规则表达式的执行结果为true或false。本申请实施例中,可以预先设定,用于将规则表达式执行结果转化为规则表达式执行结果代码的编码方式为:用代码1表示规则表达式执行结果为true,用代码0表示规则表达式执行结果为false。相较于现有技术中用true或false来存储规则表达式的执行结果,可以节省存储空间。
对于规则中各个规则条件的执行状态而言,本申请实施例中,可以预先设定,用于将规则中各个规则条件的执行状态转化为规则条件执行状态代码的编码方式为:用代码1表示所述规则分析过程中规则条件被执行过,用代码0表示所述规则分析过程中规则条件未被执行过;按照规则中各个规则条件的执行顺序依次排列各个规则条件的执行状态代码。
例如,规则a的规则表达式示意为“(A and B)or(C and(E or F))”,规则条件执行顺序依次为A、B、C、E、F,在利用规则a对事件λ进行规则分析时,其中规则条件A和规则条件B在本次规则分析过程中被执行过,规则条件C、E、F在本次规则分析过程中未被执行过,则根据预先设定的、用于将规则中各个规则条件的执行状态转化为规则条件执行状态代码的编码方式,可以将本次规则分析过程中各个规则条件的执行状态转化为规则条件执行状态代码:11000。
对于被执行的规则条件的执行结果而言,规则条件表达式的执行结果为true或false,本申请实施例中,可以预先设定,用于将被执行的规则条件的执行结果转化为规则条件执行结果代码的编码方式为:用代码1表示规则条件表达式执行结果为true,用代码0表示规则条件表达式执行结果为false;对于未执行过的规则条件可以不做标记。相较于现有技术中用true或false来存储规则条件表达式的执行结果,可以节省存储空间。
例如,在利用规则a对事件λ进行规则分析时,规则条件A和规则条件B的规则条件表达式的执行结果均为true,则,根据预先设定的、用于将被执行的规则条件的执行结果转化为规则条件执行结果代码的编码方式,可以将本次规则分析的规则条件执行结果表示为规则条件执行结果代码:11。
对于规则中的规则条件数目而言,本申请实施例中,可以预先设定,用于将规则中的规则条件数目转化为规则条件数目代码的编码方式为:用二进制数来表示所述规则中的规则条件数目。
例如,规则a中共计5个规则条件,则用二进制数可以表示为101,即规则条件数目代码为101。
最终得到的规则分析结果代码包括:规则表达式执行结果代码、规则条件数目代码、规则条件执行状态代码和规则条件执行结果代码。
本申请实施例中,在根据预设的规则分析结果编码方式,得到所述各项规则分析结果代码后,可以将所述事件的标识和所述各项规则分析结果代码作为一条数据记录,分别存入数据库的预定字段中,其中所述事件的标识为数据库主键。
需要说明的是,对于规则分析时所使用的规则的规则信息,在将所述事件的标识和所述各项规则分析结果代码进行存储时,可以将该规则信息一起存储。比如,可以将事件标识、规则分析结果代码和规则信息存储于同一数据记录中。
本申请实施例1提供的规则分析结果存储方法,在利用规则对事件进行规则分析后,通过预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码,所述规则分析结果代码的优选格式为二进制数格式,然后将所述预定格式的规则分析结果代码进行存储,无需对规则分析结果进行存储。所述规则分析结果代码的优选格式为二进制数格式,由于所述预定格式的规则分析结果代码所占用的存储空间,要远远小于所述预定格式的规则分析结果代码所表示的规则分析结果所占用的存储空间。相对于现有技术中,在每次进行规则分析后以日志的形式将规则分析结果进行存储的方式,减少了对存储空间的占用,节省了存储资源。
实施例2
为解决现有技术中在对规则分析结果进行存储时会耗费大量的存储资源的问题,本申请实施例2提供一种规则分析结果存储方法。本申请实施例提供的规则分析结果存储方法的执行主体可以是风险监控识别平台。
为便于描述,下文以该方法的执行主体为风险监控识别平台为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为风险监控识别平台只是一种示例性的说明,并不应理解为对该方法的限定。
基于本申请实施例1中所描述的规则分析结果存储方法,即,可以利用代码来表示规则分析结果,进而在存储时减少对存储空间的占用,那么,在利用规则对事件进行规则分析后,对于所述规则分析时所使用的规则的规则信息,在进行存储时,同样可以通过以存储代码的方式来存储。
该方法的实现流程示意图如图2所示,包括下述步骤:
步骤21:在利用规则对事件进行规则分析后,根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码;
本申请实施例2中,根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码的过程,与实施例1中所描述的根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码的过程相似,实施例2中没有介绍到的其他一些步骤可以参见实施例1中的相关描述,此处不再赘述。
步骤22:获取所述规则的规则标识,根据预设的规则标识编码方式,将所述规则标识转化为预定格式的规则标识代码;
本申请实施例中,所述规则标识为用于标识所述规则的标识。所述规则标识编码方式,为用于将所述规则标识转化为,用于简化表示所述规则标识的规则标识代码的编码规则。
本申请实施例中,可以预先为规则信息生成用于标识规则信息的规则标识,即预先建立规则标识与规则信息之间的对应关系。所述规则标识可以唯一标识所述规则信息,为了便于根据规则信息的规则标识确定规则信息,可以以规则标识作为数据库主键,将规则标识和该规则标识所标识的规则信息作为一条数据记录,预先存储于第一数据库中。用于存储规则标识和规则信息的数据库比如可以是MySQL数据库。
本申请实施例中,在新的规则被创建时,就可以为所述新的规则生成规则标识,然后将所述新的规则的规则信息和生成的规则标识,作为一条数据记录插入所述第一数据库中;在原有的规则被修改时,同样可以为被修改的规则生成规则标识,然后将所述被修改的规则的规则信息和生成的规则标识,作为一条数据记录插入所述第一数据库中。
例如,所述第一数据库为MySQL数据库,规则a在MySQL数据库中的数据记录如表1所示。
表1
在实际应用中,开发人员在将规则编写完成或修改完成后,可以使用快照存储技术,将规则信息存储到所述第一数据库中。
在实际应用中,对于规则标识而言,为了保证规则标识的可读性,开发人员在编写规则后,在给编写的规则分配规则标识时,一般会将规则标识的格式定义为十进制。那么,为了在对规则标识进行存储时,能够尽可能地节省存储资源,可以根据预设的规则标识编码方式,将所述规则标识转化为预定格式的规则标识代码。所述预定格式比如可以是二进制数格式。
例如,规则a的规则标识2618为十进制数格式,那么可以将2618转化为101000111010的二进制数格式,然后将101000111010作为规则a的规则标识代码进行存储。
步骤23:将所述事件的事件标识、所述事件对应的规则标识代码和所述事件对应的规则分析结果代码进行存储。
在预先建立规则标识与规则信息的对应关系后,在利用规则对事件进行规则分析后,便可以根据预先建立的规则标识与规则信息间的对应关系,确定规则分析时利用的规则的规则标识,并将确定的规则标识转化为规则标识代码。然后可以将所述事件的事件标识、所述事件对应的所述规则分析结果代码和所述事件对应的所述规则标识进行存储。在进行存储时,可以将所述事件的标识、所述规则标识和所述各项规则分析结果代码作为一条数据记录,分别写入数据库的预定字段中,其中以所述事件的标识做为数据库主键。
本申请实施例中,将所述事件的标识、所述规则标识代码和所述各项规则分析结果代码作为一条数据记录,分别写入数据库的预定字段中,相较于将所有数据写入同一字段中而言,会占用较多的存储空间。为了进一步节省存储空间,可以按照预设的代码组合方式,将所述规则标识代码和所述各项规则分析结果代码组合成预定格式的代码。然后将所述预定格式的代码写入所述第二数据库的一个字段中。
在进行代码组合时,可以为所述规则标识代码和所述各项规则分析结果代码分别分配预定长度的存储位数,并按照预定的排列顺序进行组合,以便于后续可以根据所述预定的排列顺序,得到所述规则标识代码和所述各项规则分析结果代码。
在实际应用中,当所述各项规则分析结果代码包含规则表达式的执行结果代码、规则条件数目代码、规则条件执行状态代码和规则条件执行结果代码时,可以为规则标识代码分配32位二进制位,为规则表达式的执行结果代码分配1位二进制位,为规则条件数目代码分配32位二进制位,为规则条件执行状态代码分配N位二进制位,为规则条件执行结果代码分配M位二进制位。其中N为规则条件的数目,M为被执行的条件的数目,每个二进制位占用的存储空间为1比特(bit)。所述规则标识代码和所述各项规则分析结果代码在进行组合时的排列顺序如图3所示。
需要说明的是,所述事件标识为随机分配的字符串,所述事件标识的格式可以是二进制数格式,也可以不是,本申请实施例中不对事件标识的格式进行限定。
例如,在利用规则a对事件λ进行规则分析后,规则a的规则标识代码为101000111010;规则a的规则表达式的执行结果代码为1;规则a的规则条件数目代码为101;规则a的规则条件执行状态代码为11000;规则a的规则条件执行结果代码为11。在将各部分代码组合成预定格式的代码时,由于规则a的规则条件数目为5,那么可以为规则条件执行状态代码分配5位二进制位,为规则条件执行结果代码分配2位二进制位。然后按照从左到右的顺序,依次排列规则标识代码、规则表达式的执行结果代码、规则条件数目代码、规则条件执行状态代码、规则条件执行结果代码,得到预定格式的代码为:000000000000000000001010001110101000000000000000000000000000001011100011。事件λ的事件标识为c2975c602ee7b42ab76a90445e549fb5。
在将所述事件标识和所述预定格式的代码存储到第二数据库时,为了方便后续扩充第二数据库的存储空间,所述第二数据库可以是分布式数据库。所述分布式数据库比如可以是Hbase数据库,那么,可以将事件标识做为数据库中的key,将预定格式的代码做为数据库中的value,进行存储。
例如,在利用规则a对事件λ进行规则分析后,事件λ的事件标识和预定格式的代码在Hbase数据库中的存储记录如表2所示。其中route对应预定格式的代码,time对应该条数据的存储时间。
表2
为了进一步减少所述预定格式的代码对存储空间的占用,可以对所述预定格式的代码进行压缩,然后再将所述压缩代码和所述事件的标识,存储到预设的第二数据库中。由于二进制压缩技术已经是相对成熟的相关技术,本申请实施例中对此不再赘述。
本申请实施例提供的规则分析结果存储方法,通过将用于简化表示规则分析结果和规则信息的预定格式的代码进行存储,相对于现有技术中将规则分析结果和规则信息进行存储,大大减少了对存储空间的占用,节省了存储资源,同时,本申请实施例中,相对于现有技术中将规则分析结果和规则信息写入存储器中,在将预定格式的代码写入存储器中时,会大大减少对网络输入/输出(IO,Input/Output)的占用。
需要说明的是,本申请实施例中所述规则信息也可称为规则路径,本申请实施例提供的规则路径存储方法,可以从两个维度对规则路径进行存储,一个维度是规则信息的维度,即预先建立规则标识与规则信息间的对应关系,在存储规则路径时,只需将规则信息的规则标识进行存储;另一维度是规则分析结果的维度,即对规则分析的规则分析结果以二进制的方式存储。这样,将规则路径中的规则信息与规则分析结果解耦,无需在存储路径中存储规则信息,大大降低了存储空间的占用,节省了存储资源。
本申请实施例中,在以规则分析结果代码的形式将规则分析结果存储到第二数据库中后,可以对第二数据库中存储的规则分析结果进行规则回溯分析,所述规则回溯分析包括规则回溯阶段和规则分析结果分析阶段。其中,所述规则回溯指从存储有规则分析结果的存储器中确定规则分析结果的过程;所述规则分析结果分析,指在完成规则回溯后,对规则回溯阶段确定的规则分析结果进行分析的过程。规则回溯分析的目的是,根据规则分析结果,确定规则分析对事件产生的影响,然后对规则进行优化。
本申请实施例中,在进行规则回溯时,可以从存储有规则分析结果代码的数据库中确定规则分析结果。
当数据库中存储的数据为本申请实施例提供的规则分析结果存储方法存储的预定格式的规则标识代码和规则分析结果代码时。那么,本申请实施例提供的规则回溯方法的实现流程示意图如图4所示,包括下述步骤:
步骤S201:接收事件标识和规则标识;
步骤S202:从存储有预定格式的规则分析结果代码和规则标识代码的数据库中,确定与所述事件标识对应的预定格式的规则标识代码和规则分析结果代码;
所述规则分析结果代码,为通过本申请实施例中提供的规则分析结果存储方法所存储的规则分析结果代码;
如果所述预定格式的规则标识代码和规则分析结果代码包含于预定格式的代码中,即在存储代码时,是将规则标识代码和规则分析结果代码组合为预定格式的代码后存储的。那么可以从存储有预定格式的代码的数据库中,确定与所述事件标识对应的预定格式的代码,然后根据预设的预定格式代码解析方式,对确定的预定格式的代码进行解析,得到与所述事件标识对应的预定格式的规则标识代码和规则分析结果代码。
其中,预定格式代码解析方式为,将预定格式的代码解析为预定格式的规则标识代码和规则分析结果代码的方式。在对预定格式的代码进行解析时,可以根据对规则标识代码和规则分析结果代码进行组合的代码组合方式,得到对预定格式的代码进行解析的方式,然后对预定格式的代码进行解析,即可得到规则标识代码和规则分析结果代码。
步骤S203:根据预设的代码解析方式,对确定的预定格式的规则标识代码和规则分析结果代码进行解析,得到规则信息和规则分析结果。
具体地,首先,可以根据预设的规则标识代码解析方式,对规则标识代码进行解析得到规则标识。规则标识代码解析方式为,将规则标识代码转化为规则标识的方式。在对规则标识代码进行解析时,可以根据将规则标识转化为规则标识代码的规则标识编码方式,得到对规则标识代码进行解析的方式,然后对规则标识代码进行解析,即可得到规则标识。
然后,判断解析出的规则标识和接收到的规则标识是否相同。本申请实施例中,由于同一事件可能会被不止一个规则进行分析,那么,为了确定当前解析的预定格式的代码是否为期望分析的数据,在分析某一规则对某一事件的影响时,会判断解析出的规则标识和接收到的规则标识是否相同。
若判断结果为是,则根据解析出的规则标识,从存储有规则信息的数据库中确定规则信息。若判断结果为否,则证明当前解析的预定格式的代码不是期望分析的预定格式的代码,无需对规则分析结果和规则信息进行确定。
最后,根据确定的规则信息,利用预设的规则分析结果代码解析方式,对确定的预定格式的规则分析结果代码进行解析,得到规则分析结果。其中,所述规则分析结果代码解析方式,为用于解析所述规则分析结果代码的解析规则。在对所述各项规则分析结果代码进行解析时,可以根据对规则分析结果进行转化的各规则分析结果编码方式,得到对所述各项规则分析结果代码进行解析的方式,然后对所述各项规则分析结果代码进行解析,即可得到所述各项规则分析结果代码对应的各项数据作为规则分析结果。
需要说明的是,为了保证规则分析结果和规则信息的合法性,可以将确定的规则信息中的规则条件数目和规则分析结果代码中的规则条件数目进行比较,如果两个数目相同,则可以认为得到的规则分析结果是合法的。
本申请实施例中,在根据接收到的规则标识和事件标识确定出规则分析结果和规则信息后,便可以对确定出的规则分析结果和规则信息进行分析,比如查看该规则是否对事件判断错误,并确定错误原因,以便对规则进行优化。
本申请实施例提供的规则回溯方法,可以利用存储有规则分析结果代码的数据库确定规则分析结果,由于存储有规则分析结果代码的数据库中的数据量要远远小于存储有规则分析结果的日志的数据量,且数据库的查询效率要高于日志的查询效率,相对于现有技术中,从存储有规则分析结果的日志中确定规则分析结果的方式,确定规则分析结果的速度更快,规则回溯的效率更高。
实施例3
基于前述实施例2详细叙述了本申请的发明构思,为了便于更好的理解本申请的技术特征、手段和效果,下面对基于本申请提出的规则分析结果存储方法存储的规则分析结果,进行规则回溯的方法做进一步说明,从而形成了本申请的又一个实施例。
本申请实施例3中规则回溯过程与实施例2中所述规则回溯过程相似,实施例3中没有介绍到的其他一些步骤可以参见实施例2中的相关描述,此处不再赘述。
在对该方案的实现方式进行详细介绍前,先对该方案的实施场景进行简单介绍。
该实施场景中,需要分析实施例2中所述的利用规则a对事件λ进行规则分析的结果是否正确,其中,用于表示该规则分析的规则分析结果和规则信息的预定格式的代码存储于第二数据库中,如表2所示;规则a的具体信息存储于第一数据库中,如表1所示。
基于上述场景,实施例3中实现规则回溯的过程如图5所示,包括下述步骤:
步骤31:接收规则a的规则标识和事件λ的事件标识;
其中,接收到的规则a的规则标识为2618,事件λ的事件标识为c2975c602ee7b42ab76a90445e549fb5。
步骤32:根据事件λ的事件标识,从存储有预定格式的代码的第二数据库中,确定与所述事件λ的事件标识对应的预定格式的代码;
如表2所示,确定的预定格式的代码为000000000000000000001010001110101000000000000000000000000000001011100011。
步骤33:根据预设的代码解析方式,对确定的预定格式的代码进行解析,得到规则标识代码和各项规则分析结果代码;
具体可以根据预设的代码组合方式,得到对预设的代码进行解析的方式,利用预设的代码组合方式得到的预定格式的代码的结构如图3所示,那么我们便可以对确定的预定格式的代码进行解析。解析得到的规则标识代码为101000111010;规则表达式的执行结果代码为1;规则条件数目代码为101;规则条件执行状态代码为11000;规则条件执行结果代码为11。
步骤34:根据解析出的规则标识,从存储有规则信息的第一数据库中确定规则信息;
确定的规则信息如表1所示。
步骤35:判断解析出的规则标识和接收到的规则标识是否相同,判断结果为相同;
解析得到的二进制数格式的规则标识代码为101000111010,将该规则标识代码转化为十进制数格式为2618,输入的十进制数格式的规则标识也为2618,即两者相同。
步骤36:根据预设的代码解析方式,对规则分析结果代码中的规则条件数目进行解析,并判断规则信息中的规则条件数目和规则分析结果中的规则条件数目是否相同,判断结果为相同;
规则条件数目代码为101,将其转化为十进制为5,规则信息中规则条件数目为5,即规则信息中的规则条件数目和规则分析结果中的数目相同。
步骤37:根据预设的代码解析方式,对所述各项规则分析结果代码进行解析,得到所述各项规则分析结果代码对应的各项数据作为规则分析结果;
可以根据各规则分析结果编码方式,得到对所述各项规则分析结果代码进行解析的方式,然后对所述各项规则分析结果代码进行解析,即可得到所述各项规则分析结果代码对应的各项数据作为规则分析结果;
具体地,由于预先设定的用于将规则表达式执行结果转化为规则表达式执行结果代码的编码方式为:用代码1表示规则表达式执行结果为true,用代码0表示规则表达式执行结果为false。那么,规则a的规则表达式对事件λ的执行结果代码为1,可以得到规则a的规则表达式对事件λ的执行结果为true,即事件λ满足规则a。
同样,规则条件数目5。规则条件执行状态为:规则条件A和规则条件B被执行,规则条件C、E、F未被执行;被执行的规则条件的执行结果代码为规则条件A的执行结果为true,规则条件B的执行结果为true。
这样,便得到了规则a对事件λ进行规则分析的规则分析结果和规则信息。
本申请实施例3提供的规则回溯方法,可以利用存储有规则分析结果代码的数据库确定规则分析结果,由于存储有规则分析结果代码的数据库中的数据量要远远小于存储有规则分析结果的日志的数据量,且数据库的查询效率要高于日志的查询效率,相对于现有技术中,从存储有规则分析结果的日志中确定规则分析结果的方式,确定规则分析结果的速度更快,规则回溯的效率更高。
实施例4
为解决现有技术中在对规则分析结果进行存储时会耗费大量的存储资源的问题,本申请实施例4提供一种规则分析结果存储装置。该规则分析结果存储装置的结构示意图如图6所示,主要包括下述功能单元:
第一规则分析结果转化单元41,用于在利用规则对事件进行规则分析后,根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码;
规则分析结果代码储存单元42,用于将所述事件的事件标识和所述事件对应的规则分析结果代码进行存储。
上述装置实施例的具体工作流程是,在利用规则对事件进行规则分析后,首先,所述第一规则分析结果转化单元41根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码,然后所述规则分析结果代码储存单元42将所述事件的事件标识和所述事件对应的规则分析结果代码进行存储。
本申请实施例中,对规则分析结果进行存储的实施方法有很多中,在一种实施方式中,当所述规则分析结果,包含至少一项数据时,所述规则分析结果编码方式,包含与各项数据对应的各项规则分析结果编码方式;
则,所述第一规则分析结果转化单元41,具体用于根据预设的、与规则分析结果中包含的各项数据对应的各规则分析结果编码方式,分别将所述规则分析结果中包含的各项数据,转化为各项规则分析结果代码。
在一种实施方式中,所述规则分析结果代码包括规则表达式执行结果代码
在一种实施方式中,所述规则分析结果代码还包括下述代码中的至少一种:规则条件数目代码、规则条件执行状态代码和规则条件执行结果代码。
为了减少预定格式的规则分析结果代码所占用的存储空间,所述预定格式为二进制数格式。
本申请实施例4提供的规则分析结果存储装置,在利用规则对事件进行规则分析后,通过预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码,然后将所述预定格式的规则分析结果代码进行存储,无需对规则分析结果进行存储。由于所述预定格式的规则分析结果代码所占用的存储空间,要远远小于所述预定格式的规则分析结果代码所表示的规则分析结果所占用的存储空间。相对于现有技术中,在每次进行规则分析后以日志的形式将规则分析结果进行存储的方式,减少了对存储空间的占用,节省了存储资源。
实施例5
为解决现有技术中在对规则分析结果进行存储时会耗费大量的存储资源的问题,本申请实施例5提供一种规则分析结果存储装置。该规则分析结果存储装置的结构示意图如图7所示,主要包括下述功能单元:
第二规则分析结果转化单元51,用于在利用规则对事件进行规则分析后,根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码;
规则标识转化单元52,用于获取所述规则的规则标识,根据预设的规则标识编码方式,将所述规则标识转化为预定格式的规则标识代码;
代码存储单元53,用于将所述事件的事件标识、所述事件对应的规则标识代码和所述事件对应的规则分析结果代码进行存储。
上述装置实施例的具体工作流程是:在利用规则对事件进行规则分析后,首先,所述第二规则分析结果转化单元51根据预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码;然后所述规则标识转化单元52会获取所述规则的规则标识,并根据预设的规则标识编码方式,将所述规则标识转化为预定格式的规则标识代码;最后由所述代码储存单元53将所述事件的事件标识、所述事件对应的规则标识代码和所述事件对应的规则分析结果代码进行存储。
本申请实施例中,对规则分析结果进行存储的实施方法有很多中,为了方便后续规则回溯时快速地查找所述规则标识和所述规则信息,在一种实施方式中,所述规则标识和所述规则信息存储于第一数据库中;所述规则标识和所述规则信息之间具有一一对应关系。
在一种实施方式中,所述规则信息包括:规则表达式和规则包含的各个规则条件的具体信息。
那么,所述规则标识转化单元52,具体用于从所述第一数据库中获取所述规则对应的规则标识。
为了进一步减少代码所占用的存储空间,在一种实施方式中,所述装置还包括代码组合单元54,用于按照预设的代码组合方式,将所述规则标识代码和所述规则分析结果代码组合成预定格式的代码。
为了进一步减少代码所占用的存储空间,在一种实施方式中,所述代码存储单元53,具体用于将所述事件的事件标识和所述事件对应的所述预定格式的代码进行存储。
为了便于后续规则回溯时查找所述预定格式的代码,所述代码存储单元53,具体用于将所述事件的事件标识和所述事件标识对应的所述预定格式的代码作为一条数据记录,写入预设的第二数据库中。
为了进一步减少代码所占用的存储空间,在一种实施方式中,所述代码存储单元53,具体用于对所述预定格式的代码执行数据压缩操作,得到压缩代码;将所述事件的事件标识和所述事件对应的所述压缩代码进行存储。
本申请实施例5提供的规则分析结果存储装置,在利用规则对事件进行规则分析后,通过预设的规则分析结果编码方式,将所述规则分析的规则分析结果,转化为预定格式的规则分析结果代码,然后将所述预定格式的规则分析结果代码进行存储,无需对规则分析结果进行存储。由于所述预定格式的规则分析结果代码所占用的存储空间,要远远小于所述预定格式的规则分析结果代码所表示的规则分析结果所占用的存储空间。相对于现有技术中,在每次进行规则分析后以日志的形式将规则分析结果进行存储的方式,减少了对存储空间的占用,节省了存储资源。
实施例6
为了便于对利用本申请提出的规则分析结果存储装置所存储的规则分析结果进行回溯,本申请实施例6提供一种规则回溯装置。该规则回溯装置的结构示意图如图8所示,主要包括下述功能单元:
标识接收单元61,用于接收事件标识和规则标识;
代码确定单元62,用于从存储有预定格式的规则分析结果代码和规则标识代码的数据库中,确定与所述事件标识对应的预定格式的规则标识代码和规则分析结果代码;所述规则分析结果代码,是通过本申请实施例提供的规则分析结果存储方法所存储的规则分析结果代码;
代码解析单元63,用于根据预设的代码解析方式,对确定的预定格式的规则标识代码和规则分析结果代码进行解析,得到规则信息和规则分析结果。
上述装置实施例的具体工作流程是,所述标识接收单元61接收事件标识和规则标识,然后所述代码确定单元62从存储有预定格式的规则分析结果代码和规则标识代码的数据库中,确定与所述事件标识对应的预定格式的规则标识代码和规则分析结果代码,最后代码解析单元63会根据预设的代码解析方式,对确定的预定格式的规则标识代码和规则分析结果代码进行解析,得到规则信息和规则分析结果。
本申请实施例中,规则回溯的实施方法有很多种,在一种实施方式中,所述代码解析单元63具体包括:规则标识代码解析子单元S631、规则标识判断子单元S632、规则信息确定子单元S633和规则分析结果确定子单元S634,其中:
所述规则标识代码解析子单元S631,用于根据预设的规则标识代码解析方式,对规则标识代码进行解析得到规则标识;
所述规则标识判断子单元S632,用于判断解析出的规则标识和接收到的规则标识是否相同;
所述规则信息确定子单元S633,用于在判断结果为是时,根据解析出的规则标识,从存储有规则信息的数据库中确定规则信息;
所述规则分析结果确定子单元S634,用于根据确定的规则信息,利用预设的规则分析结果代码解析方式,对确定的预定格式的规则分析结果代码进行解析,得到规则分析结果。
在一种实施方式中,所述预定格式的规则标识代码和规则分析结果代码包含于预定格式的代码中;
则,所述代码确定单元62,具体用于从存储有预定格式的代码的数据库中,确定与所述事件标识对应的预定格式的代码,并根据预设的预定格式代码解析方式,对确定的预定格式的代码进行解析,得到与所述事件标识对应的预定格式的规则标识代码和规则分析结果代码。
本申请实施例6提供的规则回溯装置,可以利用存储有规则分析结果代码的数据库确定规则分析结果,由于存储有规则分析结果代码的数据库中的数据量要远远小于存储有规则分析结果的日志的数据量,且数据库的查询效率要高于日志的查询效率,相对于现有技术中,从存储有规则分析结果的日志中确定规则分析结果的方式,确定规则分析结果的速度更快,规则回溯的效率更高。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。