掌桥专利:专业的专利平台
掌桥专利
首页

一种数据过滤方法、装置、存储介质及电子设备

文献发布时间:2023-06-19 10:41:48


一种数据过滤方法、装置、存储介质及电子设备

技术领域

本发明实施例涉及数据处理技术领域,尤其涉及一种数据过滤方法、装置、存储介质及电子设备。

背景技术

随着计算机应用的快速发展,数据量不断增加,数据的维度也在不断膨胀,因此,在许多应用场景中需要对数据进行过滤,以减小数据流量。

相关技术中,主要基于多模匹配或正则匹配技术对数据进行过滤,然而,该技术只能针对一维数据进行高效过滤,其无法在多维数据上进行逻辑运算。如当需要基于网络地址和端口同时对数据进行过滤时,其只能先基于网络地址数据进行一次过滤后,再基于端口对上次过滤后的数据进行再次过滤,然后根据规则进行逻辑运算,才可以实现多维度数据的过滤,时间复杂度为O(n^2),效率较低。因此,如何快速提升多维度数据的过滤效率变得至关重要。

发明内容

本发明实施例提供一种数据过滤方法、装置、存储介质及电子设备,可以有效提高对多维数据的过滤效率。

第一方面,本发明实施例提供了一种数据过滤方法,包括:

获取至少一个预先设定的数据过滤规则,并分别将各个数据过滤规则拆分成对应的数据过滤子规则;

将待过滤数据分别与各个数据过滤子规则进行匹配,确定与待过滤数据匹配的目标数据过滤子规则;其中,所述待过滤数据为多维数据;

根据所述目标数据过滤子规则及所述目标数据过滤子规则与所述各个数据过滤规则的拆分关系,确定与所述待过滤数据匹配的目标数据过滤规则;

基于所述目标数据过滤规则对所述待过滤数据进行过滤处理。

第二方面,本发明实施例还提供了一种数据过滤装置,包括:

规则拆分模块,用于获取至少一个预先设定的数据过滤规则,并分别将各个数据过滤规则拆分成对应的数据过滤子规则;

规则匹配模块,用于将待过滤数据分别与各个数据过滤子规则进行匹配,确定与待过滤数据匹配的目标数据过滤子规则;其中,所述待过滤数据为多维数据;

目标规则确定模块,用于根据所述目标数据过滤子规则及所述目标数据过滤子规则与所述各个数据过滤规则的拆分关系,确定与所述待过滤数据匹配的目标数据过滤规则;

数据过滤模块,用于基于所述目标数据过滤规则对所述待过滤数据进行过滤处理。

第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的数据过滤方法。

第四方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的数据过滤方法。

本发明实施例提供的数据过滤方案,获取至少一个预先设定的数据过滤规则,并分别将各个数据过滤规则拆分成对应的数据过滤子规则;将待过滤数据分别与各个数据过滤子规则进行匹配,确定与待过滤数据匹配的目标数据过滤子规则;其中,所述待过滤数据为多维数据;根据所述目标数据过滤子规则及所述目标数据过滤子规则与所述各个数据过滤规则的拆分关系,确定与所述待过滤数据匹配的目标数据过滤规则;基于所述目标数据过滤规则对所述待过滤数据进行过滤处理。本发明实施例提供的技术方案,可以降低对数据过滤的时间复杂度,有效提高对多维数据的过滤效率。

附图说明

图1是本发明实施例提供的一种数据过滤方法的流程图;

图2是本发明另一实施例中的一种数据过滤方法的流程图;

图3是本发明另一实施例中的一种数据过滤方法的流程图;

图4是本发明另一实施例中的一种数据过滤装置的结构示意图;

图5是本发明另一实施例中的一种电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。

应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

相关技术中,提出了一种基于构建的二叉树过滤模型对数据进行网络流量过滤的方法,具体的,根据网络地址先在二叉树中查找该地址的规则,然后再基于查找到的规则进行过滤。该数据过滤方法只适用于根据网络地址进行过滤的场景,不适用于对多维数据的过滤,如对包含网络端口和协议的数据进行过滤。相关技术中,还提出了一种根据关键字进行网络流量过滤的方法。该方法需要先抓取网络流量,然后提取关键字,然后根据关键字进行过滤。该方法在提取关键字上有一定的困难,很难准确提取网络流量的关键字,容易出现关键字误识别,而且也不支持对多维数据的过滤。

图1为本发明一实施例提供的一种数据过滤方法的流程图,本发明实施例可适用于对多维数据进行过滤的情况,该方法可以由数据过滤装置来执行,该装置可由硬件和/或软件组成,并一般可集成在电子设备中。如图1所示,该方法具体包括如下步骤:

步骤110,获取至少一个预先设定的数据过滤规则,并分别将各个数据过滤规则拆分成对应的数据过滤子规则。

在本发明实施例中,数据过滤规则为预先配置好的数据过滤条件,其中,数据过滤规则中可以包括由多个维度的数据过滤子规则组成的总的数据过滤规则。数据过滤规则可以为一条,也可以为多条,本发明实施例对数据过滤规则的数量不做限定。

可选的,响应于数据过滤事件被触发,获取至少一个预先设定的数据过滤规则。示例性的,对于由网络(Internet Protocol,IP)地址、端口(port)及协议(Protocol)构成的三维待过滤数据,获取的数据过滤规则可以包括数据过滤规则S1和数据过滤规则S2,其中,S1为:(IP=1.1.1.1||port=80)&&proto=tcp,S2为:!IP=1.1.1.1&&!port=80||!proto=tcp。分别对各个数据过滤规则进行拆分,拆分成对应的数据过滤子规则。其中,拆分后的数据过滤子规则满足预先设定的规则定义。

在本发明实施例中,维度表示待过滤数据的某个属性信息,如网络(InternetProtocol,IP)地址、端口(port)及协议(Protocol),其中,多个维度间存在不同的逻辑关系。具体的,规则定义如下:

维度或关系:由一个或多个单个维度的“或”关系组成,如:IP=1.1.1.1或IP=1.1.1.1||IP=1.1.1.2||IP=1.1.1.3。

维度非关系:由一个“维度或关系”的“非”关系组成,如:!IP=1.1.1.1或!(IP=1.1.1.1||IP=1.1.1.2||IP=1.1.1.3)。

与规则:各维度之间由“与”关系组成,其中,维度内可以由“维度或关系”或“维度非关系”组成,如:IP=1.1.1.1&&port=80&&proto=tcp,IP=1.1.1.1&&(port=80||port=53)&&proto=udp,IP=1.1.1.1&&!port=80&&proto=tcp,IP=1.1.1.1&&!(port=80||port=53)&&proto=udp。

或规则:各维度之间由“或”关系组成;维度内可以由“维度或关系”或“维度非关系”组成,如:IP=1.1.1.1||port=80||proto=tcp,IP=1.1.1.1||(port=80||port=53)||proto=tcp,IP=1.1.1.1||!port=80||proto=tcp,IP=1.1.1.1||!(port=80||port=53)||proto=tcp。

非规则:非规则分两种,“与非规则”和“或非规则”,具体规则如下:

与非规则:由“与规则”的非关系组成,如:!(IP=1.1.1.1&&port=80&&proto=tcp),!(IP=1.1.1.1&&(port=80||port=53)&&proto=tcp),!(IP=1.1.1.1&&!port=80&&proto=tcp),!(IP=1.1.1.1&&!(port=80||port=53)&&proto=tcp)。

或非规则:由“或规则”的非关系组成。如:!(IP=1.1.1.1||port=80||proto=tcp),!(IP=1.1.1.1||(port=80||port=53)||proto=tcp),!(IP=1.1.1.1||!port=80||proto=tcp),!(IP=1.1.1.1||!(port=80||port=53)||proto=tcp)。

规则与规则:由一个以上的“与规则”、“或规则”或“非规则”的与关系组成,如:S1、S2、S3为任意“与规则”、“或规则”或“非规则”,规则与规则为:S1&&S2&&S3。

规则或规则:由一个以上的“与规则”、“或规则”或“非规则”的或关系组成,如:S1、S2、S3为任意“与规则”、“或规则”或“非规则”,规则与规则为:S1||S2||S3。

示例性的,数据过滤规则S1((IP=1.1.1.1||port=80)&&proto=tcp)拆分成两个数据过滤子规则T1和T2,则T1为:IP=1.1.1.1||port=80,T2为:proto=tcp;数据过滤规则S2(!IP=1.1.1.1&&!port=80||!proto=tcp)拆分成两个数据过滤子规则T3和T4,则T3为:!IP=1.1.1.1&&!port=80,T4为:!proto=tcp。

步骤120,将待过滤数据分别与各个数据过滤子规则进行匹配,确定与待过滤数据匹配的目标数据过滤子规则;其中,所述待过滤数据为多维数据。

在本发明实施例中,获取至少一条待过滤数据,其中,待过滤数据为多维数据,例如,待过滤数据可以为二维数据,也可以为三维数据,还可以为更多维数据,如,待过滤数据为由网络(Internet Protocol,IP)地址、端口(port)及协议(Protocol)构成的三维待过滤数据。将每条待过滤数据分别与各个数据过滤子规则进行匹配,确定与待过滤数据匹配的目标数据过滤子规则,也即从所有的数据过滤子规则中确定待过滤数据与具体哪个数据过滤子规则匹配,并将与待过滤数据匹配的过滤子规则作为目标过滤子规则。

步骤130,根据所述目标数据过滤子规则及所述目标数据过滤子规则与所述各个数据过滤规则的拆分关系,确定与所述待过滤数据匹配的目标数据过滤规则。

在本发明实施例中,根据目标数据过滤子规则及目标数据过滤子规则与各个数据过滤规则的拆分关系,从至少一个数据过滤规则中,确定与待过数据匹配的目标数据过滤规则。具体的,目标数据过滤子规则与数据过滤规则的拆分关系,可以理解为目标数据过滤子规则具体是由哪个数据过滤规则拆分的,其中,可以将数据过滤规则与拆分成的数据过滤子规则的拆分关系,定义为父子关系,即将数据过滤规则作为父规则,将该数据过滤规则拆分成的各个子规则定义为该数据过滤规则的子规则。示例性的,确定目标数据过滤子规则的父规则,并判断该父规则的各个子规则是否属于目标数据过滤子规则,并根据判断结果及父规则的逻辑关系,确定与待过滤数据匹配的目标数据过滤规则。例如,该父规则的逻辑关系为规则与规则的关系,且该父规则的各个数据过滤子规则均属于目标数据过滤子规则,也即该父规则的各个数据过滤子规则均与待过滤数据匹配,则将该父规则确定为与待过滤数据匹配的目标数据过滤规则;若该父规则的逻辑关系为规则与规则的关系,且该父规则的各个数据过滤子规则中存在一个不属于目标数据过滤子规则,也即该父规则的各个数据过滤子规则中存在一个子规则与待过滤数据不匹配,则可确定该父规则确与待过滤数据不匹配。若该父规则的逻辑关系为规则或规则的关系,则可直接将该父规则确定为与待过滤数据匹配的目标数据过滤规则。

可选的,获取至少一个预先设定的数据过滤规则,并分别将各个数据过滤规则拆分成对应的数据过滤子规则,包括:获取至少一个预先设定的数据过滤规则,并分别为所述各个数据过滤规则分配不同的身份ID;分别将所述各个数据过滤规则拆分成对应的数据过滤子规则,并分别为各个数据过滤子规则分配不同的ID;将所述各个数据过滤子规则的父规则ID指向对应的数据过滤规则的ID,以构建各个数据过滤子规则与对应的数据过滤规则间的父子关系;相应的,根据所述目标数据过滤子规则及所述目标数据过滤子规则与所述各个数据过滤规则的拆分关系,确定与所述待过滤数据匹配的目标数据过滤规则,包括:确定与所述目标数据过滤子规则成父子关系的父数据过滤规则;根据所述父数据过滤规则的所有子规则的匹配结果,判断所述父数据过滤规则是否与所述待过滤数据匹配,若是,则将所述父数据过滤规则确定为目标数据过滤规则。可选的,根据所述父数据过滤规则的所有子规则的匹配结果,判断所述父数据过滤规则是否与所述待过滤数据匹配,若是,则将所述父数据过滤规则确定为目标数据过滤规则,包括:当所述父数据过滤规则的逻辑关系为规则与规则的关系,且所述父数据过滤规则的所有子规则的匹配结果均为匹配时,将所述父数据过滤规则确定为与所述待过滤数据匹配的目标数据过滤规则;当所述父数据过滤规则的逻辑关系为规则或规则的关系,且所述父数据过滤规则的所有子规则的匹配结果中存在至少一个为匹配时,将所述父数据过滤规则确定为与所述待过滤数据匹配的目标数据过滤规则。这样设置的好处在于,可以快速构建各个数据过滤子规则与对应的数据过滤规则间的父子关系,从而快速确定与待过滤数据匹配的目标数据过滤规则,有助于提高数据过滤的效率。

示例性的,将数据过滤规则S1的身份ID设为“1”,将数据过滤规则S2的身份ID设为“2”,将数据过滤子规则T1-T4的身份ID分别设为“3”,“4”,“5”,“6”,并将各个数据过滤子规则的ID分别指向对应的数据过滤规则的ID,即将数据过滤子规则T1和T2的ID指向数据过滤规则S1的ID,将数据过滤子规则T3和T4的ID指向数据过滤规则S2的ID,从而构建数据过滤规则S1与数据过滤子规则T1、T2的父子关系,数据过滤规则S2与数据过滤子规则T3、T4的父子关系。例如,待过滤数据为“IP=1.1.1.1port=80proto=tcp”,则可确定数据过滤子规则T1和数据过滤子规则T2与该待过滤数据匹配,而数据过滤子规则T3和数据过滤子规则T4与该待过滤数据不匹配,即数据过滤子规则T1和数据过滤子规则T2为目标数据过滤子规则,从而可进一步确定数据过滤规则S1为与待过滤数据匹配的目标数据过滤规则。

步骤140,基于所述目标数据过滤规则对所述待过滤数据进行过滤处理。

在本发明实施例中,目标数据过滤规则可以为一个,也可以为多个,可以基于不同的场景,基于目标数据过滤规则对待过滤数据进行过滤,如在场景一中,将与第一目标数据过滤规则匹配的待过滤数据过滤掉,保留其他的待过滤数据;在场景二中,将与第二目标数据过滤规则匹配的待过滤数据过滤掉,保留其他的待过滤数据;在场景三中,将与第三目标数据过滤规则匹配的待过滤数据保留,而将其他待过滤数据过滤掉。

本发明实施例提供的数据过滤方案,获取至少一个预先设定的数据过滤规则,并分别将各个数据过滤规则拆分成对应的数据过滤子规则;将待过滤数据分别与各个数据过滤子规则进行匹配,确定与待过滤数据匹配的目标数据过滤子规则;其中,所述待过滤数据为多维数据;根据所述目标数据过滤子规则及所述目标数据过滤子规则与所述各个数据过滤规则的拆分关系,确定与所述待过滤数据匹配的目标数据过滤规则;基于所述目标数据过滤规则对所述待过滤数据进行过滤处理。本发明实施例提供的技术方案,可以降低对数据过滤的时间复杂度,有效提高对多维数据的过滤效率。

在一些实施例中,将待过滤数据分别与各个数据过滤子规则进行匹配,确定与待过滤数据匹配的目标数据过滤子规则,包括:基于各个数据过滤子规则生成目标规则集,并基于所述目标规则集确定所述目标规则集所涉及的各个数据维度对应的维度规则集;其中,所述维度规则集中包含至少一个单维度规则;分别根据所述目标规则集内的各个数据过滤子规则及其内部逻辑关系,确定与所述数据过滤子规则对应的初始化匹配结果,并基于各个初始化匹配结果生成初始化匹配结果集;将待过滤数据分别与各个维度规则集进行匹配,根据匹配结果调整所述初始化匹配结果集中的初始化匹配结果,生成目标匹配结果集;根据所述目标匹配结果集确定与所述待过滤数据匹配的目标数据过滤子规则。

具体的,基于各个数据过滤子规则生成的目标规则集为T={T1,T2,T3,T4}={IP=1.1.1.1||port=80,proto=tcp,!IP=1.1.1.1&&!port=80,!proto=tcp},而目标规则集所涉及的数据维度包括IP地址,端口port及协议proto,IP地址对应的单维度规则为IP=1.1.1.1,端口port对应的单维度规则为port=80,协议proto对应的单维度规则为proto=tcp,则目标规则集所涉及的各个数据维度对应的维度规则集分别为:W1={IP=1.1.1.1},W2={port=80},W3={proto=tcp}。其中,各个维度规则集中包含至少一个单维度规则,各个单维度规则为肯定的单维度规则,而非否定的单维度规则。

在本发明实施例中,分别根据目标规则集中的各个数据过滤子规则及其内部逻辑关系,确定与数据过滤子规则对应的初始化匹配结果,并基于各个初始化匹配结果生成初始化匹配结果集。可以理解的是,初始化匹配结果集中的初始化匹配结果与目标规则集中的数据过滤子规则一一对应。可选的,分别根据所述目标规则集内的各个数据过滤子规则及其内部逻辑关系,确定与所述数据过滤子规则对应的初始化匹配结果,包括:针对所述目标规则集内的各个数据过滤子规则,当所述数据过滤子规则的逻辑关系为或规则关系或或非规则关系时,将与所述数据过滤子规则对应的初始化匹配结果中,所述数据过滤子规则中包含的维度非关系的对应维度的匹配结果置为匹配,将第一维度的匹配结果置为不匹配;其中,所述第一维度为所述目标规则集所涉及的各个数据维度中除所述维度非关系的对应维度之外的维度;当所述数据过滤子规则的逻辑关系为与规则关系或与非规则关系时,将与所述数据过滤子规则对应的初始化匹配结果中,所述数据过滤子规则中包含的维度非关系的对应维度的匹配结果及所述数据过滤子规则中未涉及的数据维度的匹配结果置为匹配,将第二维度的匹配结果置为不匹配;其中所述第二维度为所述数据过滤子规则所涉及的各个数据维度中除所述维度非关系的对应维度之外的维度。

示例性的,数据过滤子规则T1(IP=1.1.1.1||port=80)的逻辑关系为或规则关系,且数据过滤子规则T1中未包含维度非关系,而目标规则集中所涉及的数据维度包括IP地址,端口port及协议proto,因此,可将数据过滤子规则T1的初始化匹配结果设置为IP地址、端口port及协议proto均不匹配。数据过滤子规则T3(!IP=1.1.1.1&&!port=80)的逻辑关系为与规则关系,且数据过滤子规则T3中包含维度非关系,且维度非关系对应的维度为IP地址,端口port,则将数据过滤子规则T3对应的初始化匹配结果中,IP地址和端口port的匹配结果置为匹配。数据过滤子规则T3中未涉及数据维度协议proto,因此,也将将数据过滤子规则T3对应的初始化匹配结果中,协议proto的匹配结果也置为匹配。因此,数据过滤子规则T3的初始化匹配结果为IP地址、端口port及协议proto均匹配。按照上述方式,可确定数据过滤子规则T2的初始化匹配结果为IP地址、端口port匹配,而协议proto不匹配,数据过滤子规则T4的初始化匹配结果为IP地址、端口port匹配及协议proto均匹配。也即,初始化匹配结果集为P={IP不匹配、port不匹配、proto不匹配;IP匹配、port匹配、proto不匹配;IP匹配、port匹配、proto匹配;IP匹配、port匹配、proto匹配}。

在本发明实施例中,将待过滤数据分别与各个维度规则集进行匹配,即将待过滤数据分别与各个维度规则集中的每个单维度规则进行匹配,根据匹配结果调整初始化匹配结果集中的初始化匹配结果,生成目标匹配结果集。可选的,将待过滤数据分别与各个维度规则集进行匹配,根据匹配结果调整所述初始化匹配结果集中的初始化匹配结果,生成目标匹配结果集,包括:将所述各个维度规则集中的任意一个维度规则集作为目标维度规则集;将待过滤数据与所述目标维度规则集进行匹配,根据匹配结果调整所述初始化匹配结果集,并将调整后的初始化匹配结果集作为新的初始化匹配结果集;将所述各个维度规则集中的下一个维度规则集作为目标维度规则集,返回将待过滤数据与所述目标维度规则集进行匹配的步骤,直至将各个维度规则集分别作为目标维度规则集为止,并将最后调整后的初始化匹配结果集作为目标匹配结果集。

示例性的,将各个维度规则集中的任意一个维度规则集作为目标维度规则集,如将W1、W2及W3三个维度规则集中的W1作为目标维度规则集。将待过滤数据与目标维度规则集中的各个单维度规则进行匹配,根据匹配结果调整初始化匹配结果集。可选的,将待过滤数据与所述目标维度规则集进行匹配,根据匹配结果调整所述初始化匹配结果集,包括:将待过滤数据与所述目标维度规则集进行匹配,确定所述目标维度规则集中与所述待过滤数据匹配的目标单维度规则;从所述目标规则集中确定包含所述目标单维度规则的目标数据过滤子规则;根据所述目标数据过滤子规则的逻辑关系对所述初始化匹配结果集中与所述目标数据过滤子规则对应的初始化匹配结果进行调整。具体的,从目标维度规则集中的各个单维度规则中确定与待过滤数据匹配的目标单维度规则,并从目标规则集的各个数据过滤子规则中确定包含目标单维度规则的目标数据过滤子规则。例如,对于待过滤数据“IP=1.1.1.1port=80proto=tcp”,在目标维度规则集W1中,与待过滤数据匹配的目标单维度规则为:IP=1.1.1.1,而在目标规则集T={T1,T2,T3,T4}={IP=1.1.1.1||port=80,proto=tcp,!IP=1.1.1.1&&!port=80,!proto=tcp}中,包含目标单维度规则(IP=1.1.1.1)的目标数据过滤子规则为T1和T3。然后,根据目标数据过滤子规则的逻辑关系对初始化匹配结果集中与目标数据过滤子规则对应的初始化匹配结果进行调整,也即对与目标数据过滤子规则T1对应的初始化匹配结果(IP不匹配、port不匹配、proto不匹配)及数据过滤子规则T3对应的初始化匹配结果(IP匹配、port匹配、proto匹配)进行调整。

可选的,根据所述目标数据过滤子规则的逻辑关系对所述初始化匹配结果集中与所述目标数据过滤子规则对应的初始化匹配结果进行调整,包括:判断所述目标数据过滤子规则中是否包含所述目标单维度规则的非关系,若是,则将与所述目标数据过滤子规则对应的初始化匹配结果中对应维度的匹配结果置为不匹配,否则,将与所述目标数据过滤子规则对应的初始化匹配结果中对应维度的匹配结果置为匹配。具体的,目标数据过滤子规则T1中不包含目标单维度规则的非关系,也即不包含IP=1.1.1.1的非关系,则将初始化匹配结果(IP不匹配、port不匹配、proto不匹配)中对应维度的匹配结果置为匹配,也即将IP不匹配修改为IP匹配,则对目标数据过滤子规则T1对应的初始化匹配结果进行调整后的结果为:(IP匹配、port不匹配、proto不匹配)。目标数据过滤子规则T3中包含目标单维度规则的非关系,也即包含IP=1.1.1.1的非关系!IP=1.1.1.1,则将初始化匹配结果(IP匹配、port匹配、proto匹配)中对应维度的匹配结果置为不匹配,也即将IP匹配修改为IP不匹配,则对目标数据过滤子规则T3对应的初始化匹配结果进行调整后的结果为:(IP不匹配、port匹配、proto匹配)。因此,将待过滤数据与目标维度规则集W1进行匹配,根据匹配结果可将初始化匹配结果集由P={IP不匹配、port不匹配、proto不匹配;IP匹配、port匹配、proto不匹配;IP匹配、port匹配、proto匹配;IP匹配、port匹配、proto匹配}调整为:P={IP匹配、port不匹配、proto不匹配;IP匹配、port匹配、proto不匹配;IP不匹配、port匹配、proto匹配;IP匹配、port匹配、proto匹配}。

在本发明实施例中,将各个维度规则集中的W2作为目标维度规则集,将待过滤数据与W2进行匹配,根据匹配结果调整更新后的初始化匹配结果集P={IP匹配、port不匹配、proto不匹配;IP匹配、port匹配、proto不匹配;IP不匹配、port匹配、proto匹配;IP匹配、port匹配、proto匹配}。具体的,在目标维度规则集W2中,与待过滤数据“IP=1.1.1.1port=80proto=tcp”匹配的目标单维度规则为:port=80,而在目标规则集T={T1,T2,T3,T4}={IP=1.1.1.1||port=80,proto=tcp,!IP=1.1.1.1&&!port=80,!proto=tcp}中,包含目标单维度规则(port=80)的目标数据过滤子规则为T1和T3,因此,可对更新后的初始化匹配结果集P={IP匹配、port不匹配、proto不匹配;IP匹配、port匹配、proto不匹配;IP不匹配、port匹配、proto匹配;IP匹配、port匹配、proto匹配}中,与目标数据过滤子规则T1对应的初始化匹配结果(IP匹配、port不匹配、proto不匹配)及数据过滤子规则T3对应的初始化匹配结果(IP不匹配、port匹配、proto匹配)进行调整。按照上述调整方式,可将更新后的初始化匹配结果集调整为P={IP匹配、port匹配、proto不匹配;IP匹配、port匹配、proto不匹配;IP不匹配、port不匹配、proto匹配;IP匹配、port匹配、proto匹配}。同样的,再次将W3作为目标维度规则集,可最终将初始化匹配结果集调整为P={IP匹配、port匹配、proto不匹配;IP匹配、port匹配、proto匹配;IP不匹配、port不匹配、proto匹配;IP匹配、port匹配、proto匹配},并将其作为目标匹配结果集。

可选的,根据所述目标匹配结果集确定与所述待过滤数据匹配的目标数据过滤子规则,包括:针对所述目标匹配结果集中的各个目标匹配结果,确定与所述目标匹配结果对应的数据过滤子规则的逻辑关系;根据所述目标匹配结果及与所述目标匹配结果对应的数据过滤子规则的逻辑关系,确定与所述待过滤数据匹配的目标数据过滤子规则。具体的,根据所述目标匹配结果及与所述目标匹配结果对应的数据过滤子规则的逻辑关系,确定与所述待过滤数据匹配的目标数据过滤子规则,包括:当与所述目标匹配结果对应的数据过滤子规则的逻辑关系为与规则关系,且所述目标匹配结果中,与所述目标匹配结果对应的数据过滤子规则所涉及的数据维度的匹配结果均为匹配时,确定与所述目标匹配结果对应的数据过滤子规则为与所述待过滤数据匹配的目标过滤子规则;当与所述目标匹配结果对应的数据过滤子规则的逻辑关系为或规则关系,且所述目标匹配结果中,与所述目标匹配结果对应的数据过滤子规则所涉及的数据维度的匹配结果中存在至少一个为匹配时,确定与所述目标匹配结果对应的数据过滤子规则为与所述待过滤数据匹配的目标过滤子规则;当与所述目标匹配结果对应的数据过滤子规则的逻辑关系为与非规则关系,且所述目标匹配结果中,与所述目标匹配结果对应的数据过滤子规则所涉及的数据维度的匹配结果存在至少一个为不匹配时,确定与所述目标匹配结果对应的数据过滤子规则为与所述待过滤数据匹配的目标过滤子规则;当与所述目标匹配结果对应的数据过滤子规则的逻辑关系为或非规则关系,且所述目标匹配结果中,与所述目标匹配结果对应的数据过滤子规则所涉及的数据维度的匹配结果均为不匹配时,确定与所述目标匹配结果对应的数据过滤子规则为与所述待过滤数据匹配的目标过滤子规则。

示例性的,根据目标匹配结果集P={IP匹配、port匹配、proto不匹配;IP匹配、port匹配、proto匹配;IP不匹配、port不匹配、proto匹配;IP匹配、port匹配、proto匹配},及目标规则集T={T1,T2,T3,T4}={IP=1.1.1.1||port=80,proto=tcp,!IP=1.1.1.1&&!port=80,!proto=tcp}中各个数据过滤子规则,可确定T1与T2与待过滤数据匹配,而T3和T4与待过滤数据不匹配,即可将数据过滤子规则T1、T2作为目标数据过滤子规则。

图2是本发明另一实施例中的一种数据过滤方法的流程图,如图2所示,该方法包括如下步骤:

步骤210,获取至少一个预先设定的数据过滤规则,并分别将各个数据过滤规则拆分成对应的数据过滤子规则。

步骤220,基于各个数据过滤子规则生成目标规则集,并基于目标规则集确定目标规则集所涉及的各个数据维度对应的维度规则集;其中,维度规则集中包含至少一个单维度规则。

步骤230,分别根据目标规则集内的各个数据过滤子规则及其内部逻辑关系,确定与数据过滤子规则对应的初始化匹配结果,并基于各个初始化匹配结果生成初始化匹配结果集。

步骤240,将待过滤数据分别与各个维度规则集进行匹配,根据匹配结果调整初始化匹配结果集中的初始化匹配结果,生成目标匹配结果集。

步骤250,根据目标匹配结果集确定与待过滤数据匹配的目标数据过滤子规则。

步骤260,根据目标数据过滤子规则及目标数据过滤子规则与各个数据过滤规则的拆分关系,确定与待过滤数据匹配的目标数据过滤规则。

步骤270,基于目标数据过滤规则对待过滤数据进行过滤处理。

本发明实施例提供的数据过滤方法,可以降低对数据过滤的时间复杂度,有效提高对多维数据的过滤效率。

图3是本发明另一实施例中的一种数据过滤方法的流程图,如图3所示,该方法包括如下步骤:

步骤310,获取至少一个预先设定的数据过滤规则,并分别为各个数据过滤规则分配不同的身份ID。

步骤320,分别将各个数据过滤规则拆分成对应的数据过滤子规则,并分别为各个数据过滤子规则分配不同的ID。

步骤330,将各个数据过滤子规则的父规则ID指向对应的数据过滤规则的ID,以构建各个数据过滤子规则与对应的数据过滤规则间的父子关系。

步骤340,基于各个数据过滤子规则生成目标规则集,并基于目标规则集确定目标规则集所涉及的各个数据维度对应的维度规则集;其中,维度规则集中包含至少一个单维度规则。

步骤350,分别根据目标规则集内的各个数据过滤子规则及其内部逻辑关系,确定与数据过滤子规则对应的初始化匹配结果,并基于各个初始化匹配结果生成初始化匹配结果集。

可选的,分别根据所述目标规则集内的各个数据过滤子规则及其内部逻辑关系,确定与所述数据过滤子规则对应的初始化匹配结果,包括:针对所述目标规则集内的各个数据过滤子规则,当所述数据过滤子规则的逻辑关系为或规则关系或或非规则关系时,将与所述数据过滤子规则对应的初始化匹配结果中,所述数据过滤子规则中包含的维度非关系的对应维度的匹配结果置为匹配,将第一维度的匹配结果置为不匹配;其中,所述第一维度为所述目标规则集所涉及的各个数据维度中除所述维度非关系的对应维度之外的维度;当所述数据过滤子规则的逻辑关系为与规则关系或与非规则关系时,将与所述数据过滤子规则对应的初始化匹配结果中,所述数据过滤子规则中包含的维度非关系的对应维度的匹配结果及所述数据过滤子规则中未涉及的数据维度的匹配结果置为匹配,将第二维度的匹配结果置为不匹配;其中所述第二维度为所述数据过滤子规则所涉及的各个数据维度中除所述维度非关系的对应维度之外的维度。

步骤360,将各个维度规则集中的任意一个维度规则集作为目标维度规则集。

步骤370,将待过滤数据与目标维度规则集进行匹配,确定目标维度规则集中与待过滤数据匹配的目标单维度规则。

步骤380,从目标规则集中确定包含目标单维度规则的目标数据过滤子规则。

步骤390,根据目标数据过滤子规则的逻辑关系对初始化匹配结果集中与目标数据过滤子规则对应的初始化匹配结果进行调整,并将调整后的初始化匹配结果集作为新的初始化匹配结果集。

可选的,根据所述目标数据过滤子规则的逻辑关系对所述初始化匹配结果集中与所述目标数据过滤子规则对应的初始化匹配结果进行调整,包括:判断所述目标数据过滤子规则中是否包含所述目标单维度规则的非关系,若是,则将与所述目标数据过滤子规则对应的初始化匹配结果中对应维度的匹配结果置为不匹配,否则,将与所述目标数据过滤子规则对应的初始化匹配结果中对应维度的匹配结果置为匹配。

步骤3100,将各个维度规则集中的下一个维度规则集作为目标维度规则集,并返回执行步骤370。

步骤3110,判断是否将各个维度规则集分别作为目标维度规则集,若是,则执行步骤3120,否则执行步骤3100。

步骤3120,将最后调整后的初始化匹配结果集作为目标匹配结果集。

步骤3130,针对目标匹配结果集中的各个目标匹配结果,确定与目标匹配结果对应的数据过滤子规则的逻辑关系。

步骤3140,根据目标匹配结果及与目标匹配结果对应的数据过滤子规则的逻辑关系,确定与待过滤数据匹配的目标数据过滤子规则。

步骤3150,确定与目标数据过滤子规则成父子关系的父数据过滤规则。

步骤3160,根据父数据过滤规则的所有子规则的匹配结果,判断父数据过滤规则是否与待过滤数据匹配,若是,执行步骤3170,否则,执行步骤3180。

步骤3170,将父数据过滤规则确定为与待过滤数据匹配的目标数据过滤规则,并基于目标数据过滤规则对待过滤数据进行过滤处理。

步骤3180,确定该父数据过滤规则与待过滤数据不匹配。

本发明实施例提供的数据过滤方法,可以降低对数据过滤的时间复杂度,有效提高对多维数据的过滤效率。

图4为本发明另一实施例提供的一种数据过滤装置的结构示意图。如图4所示,该装置包括:规则拆分模块410,规则匹配模块420,目标规则确定模块430和数据过滤模块440。其中,

规则拆分模块410,用于获取至少一个预先设定的数据过滤规则,并分别将各个数据过滤规则拆分成对应的数据过滤子规则;

规则匹配模块420,用于将待过滤数据分别与各个数据过滤子规则进行匹配,确定与待过滤数据匹配的目标数据过滤子规则;其中,所述待过滤数据为多维数据;

目标规则确定模块430,用于根据所述目标数据过滤子规则及所述目标数据过滤子规则与所述各个数据过滤规则的拆分关系,确定与所述待过滤数据匹配的目标数据过滤规则;

数据过滤模块440,用于基于所述目标数据过滤规则对所述待过滤数据进行过滤处理。

本发明实施例提供的数据过滤装置,获取至少一个预先设定的数据过滤规则,并分别将各个数据过滤规则拆分成对应的数据过滤子规则;将待过滤数据分别与各个数据过滤子规则进行匹配,确定与待过滤数据匹配的目标数据过滤子规则;其中,所述待过滤数据为多维数据;根据所述目标数据过滤子规则及所述目标数据过滤子规则与所述各个数据过滤规则的拆分关系,确定与所述待过滤数据匹配的目标数据过滤规则;基于所述目标数据过滤规则对所述待过滤数据进行过滤处理,可以降低对数据过滤的时间复杂度,有效提高对多维数据的过滤效率。

可选的,所述规则匹配模块,包括:

规则集确定子模块,用于基于各个数据过滤子规则生成目标规则集,并基于所述目标规则集确定所述目标规则集所涉及的各个数据维度对应的维度规则集;其中,所述维度规则集中包含至少一个单维度规则;

匹配结果确定子模块,用于分别根据所述目标规则集内的各个数据过滤子规则及其内部逻辑关系,确定与所述数据过滤子规则对应的初始化匹配结果,并基于各个初始化匹配结果生成初始化匹配结果集;

匹配结果调整子模块,用于将待过滤数据分别与各个维度规则集进行匹配,根据匹配结果调整所述初始化匹配结果集中的初始化匹配结果,生成目标匹配结果集;

匹配规则确定子模块,用于根据所述目标匹配结果集确定与所述待过滤数据匹配的目标数据过滤子规则。

可选的,所述匹配结果调整子模块,包括:

目标规则集确定单元,用于将所述各个维度规则集中的任意一个维度规则集作为目标维度规则集;

匹配结果调整单元,用于将待过滤数据与所述目标维度规则集进行匹配,根据匹配结果调整所述初始化匹配结果集,并将调整后的初始化匹配结果集作为新的初始化匹配结果集;

循环单元,用于将所述各个维度规则集中的下一个维度规则集作为目标维度规则集,返回将待过滤数据与所述目标维度规则集进行匹配的步骤,直至将各个维度规则集分别作为目标维度规则集为止,并将最后调整后的初始化匹配结果集作为目标匹配结果集。

可选的,所述匹配结果调整单元,包括:

目标单维度规则确定子单元,用于将待过滤数据与所述目标维度规则集进行匹配,确定所述目标维度规则集中与所述待过滤数据匹配的目标单维度规则;

目标过滤子规则子单元,用于从所述目标规则集中确定包含所述目标单维度规则的目标数据过滤子规则;

匹配结果调整子单元,用于根据所述目标数据过滤子规则的逻辑关系对所述初始化匹配结果集中与所述目标数据过滤子规则对应的初始化匹配结果进行调整。

可选的,匹配结果调整子单元,用于:

判断所述目标数据过滤子规则中是否包含所述目标单维度规则的非关系,若是,则将与所述目标数据过滤子规则对应的初始化匹配结果中对应维度的匹配结果置为不匹配,否则,将与所述目标数据过滤子规则对应的初始化匹配结果中对应维度的匹配结果置为匹配。

可选的,分别根据所述目标规则集内的各个数据过滤子规则及其内部逻辑关系,确定与所述数据过滤子规则对应的初始化匹配结果,包括:

针对所述目标规则集内的各个数据过滤子规则,当所述数据过滤子规则的逻辑关系为或规则关系或或非规则关系时,将与所述数据过滤子规则对应的初始化匹配结果中,所述数据过滤子规则中包含的维度非关系的对应维度的匹配结果置为匹配,将第一维度的匹配结果置为不匹配;其中,所述第一维度为所述目标规则集所涉及的各个数据维度中除所述维度非关系的对应维度之外的维度;

当所述数据过滤子规则的逻辑关系为与规则关系或与非规则关系时,将与所述数据过滤子规则对应的初始化匹配结果中,所述数据过滤子规则中包含的维度非关系的对应维度的匹配结果及所述数据过滤子规则中未涉及的数据维度的匹配结果置为匹配,将第二维度的匹配结果置为不匹配;其中所述第二维度为所述数据过滤子规则所涉及的各个数据维度中除所述维度非关系的对应维度之外的维度。

可选的,所述匹配结果确定子模块,用于:

针对所述目标匹配结果集中的各个目标匹配结果,确定与所述目标匹配结果对应的数据过滤子规则的逻辑关系;

根据所述目标匹配结果及与所述目标匹配结果对应的数据过滤子规则的逻辑关系,确定与所述待过滤数据匹配的目标数据过滤子规则。

可选的,所述规则拆分模块,用于:

获取至少一个预先设定的数据过滤规则,并分别为所述各个数据过滤规则分配不同的身份ID;

分别将所述各个数据过滤规则拆分成对应的数据过滤子规则,并分别为各个数据过滤子规则分配不同的ID;

将所述各个数据过滤子规则的父规则ID指向对应的数据过滤规则的ID,以构建各个数据过滤子规则与对应的数据过滤规则间的父子关系;

相应的,所述目标规则确定模块,用于:

确定与所述目标数据过滤子规则成父子关系的父数据过滤规则;

根据所述父数据过滤规则的所有子规则的匹配结果,判断所述父数据过滤规则是否与所述待过滤数据匹配,若是,则将所述父数据过滤规则确定为目标数据过滤规则。

上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本发明实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。

本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行数据过滤方法,该方法包括:

获取至少一个预先设定的数据过滤规则,并分别将各个数据过滤规则拆分成对应的数据过滤子规则;

将待过滤数据分别与各个数据过滤子规则进行匹配,确定与待过滤数据匹配的目标数据过滤子规则;其中,所述待过滤数据为多维数据;

根据所述目标数据过滤子规则及所述目标数据过滤子规则与所述各个数据过滤规则的拆分关系,确定与所述待过滤数据匹配的目标数据过滤规则;

基于所述目标数据过滤规则对所述待过滤数据进行过滤处理。

存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的数据过滤操作,还可以执行本发明任意实施例所提供的数据过滤方法中的相关操作。

本发明实施例提供了一种电子设备,该电子设备中可集成本发明实施例提供的数据过滤装置。图5为本发明实施例提供的一种电子设备的结构框图。电子设备500可以包括:存储器501,处理器502及存储在存储器501上并可在处理器运行的计算机程序,所述处理器502执行所述计算机程序时实现如本发明实施例所述的数据过滤方法。

本发明实施例中提供的电子设备,获取至少一个预先设定的数据过滤规则,并分别将各个数据过滤规则拆分成对应的数据过滤子规则;将待过滤数据分别与各个数据过滤子规则进行匹配,确定与待过滤数据匹配的目标数据过滤子规则;其中,所述待过滤数据为多维数据;根据所述目标数据过滤子规则及所述目标数据过滤子规则与所述各个数据过滤规则的拆分关系,确定与所述待过滤数据匹配的目标数据过滤规则;基于所述目标数据过滤规则对所述待过滤数据进行过滤处理,可以降低对数据过滤的时间复杂度,有效提高对多维数据的过滤效率。

上述实施例中提供的数据过滤装置、存储介质及系统可执行本发明任意实施例所提供的数据过滤方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数据过滤方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 一种数据过滤方法、装置、存储介质及电子设备
  • 一种数据的过滤方法、装置、电子设备及存储介质
技术分类

06120112640750