一种数据过滤方法及装置与流程

文档序号:11155579阅读:317来源:国知局
一种数据过滤方法及装置与制造工艺

本发明涉及计算机技术领域,特别是涉及一种数据过滤方法及装置。



背景技术:

随着计算机技术和互联网技术的快速发展,每天都有海量的各种数据产生、传递或保存。然而,在海量的数据中,经常会出现许多垃圾数据,例如各种大量的重复数据,以及各类的恶意攻击数据等等。大量的数据容易造成服务器效率低下,尤其是大量的恶意攻击数据或者大量的刷量数据,比如,视频网站中的个别视频通过非正常手段刷高播放量等,还会造成视频网站运营商的各种纠纷。所以,数据过滤显得愈发重要。

现有技术中的数据过滤方法,都需要预先设定过滤条件,当待过滤的数据满足预先设定的过滤条件时,将该数据舍弃。预先设定的过滤条件,并根据固定的预先设定的过滤条件过滤待过滤数据,无法应对数据的快锁变化,从而导致了过滤效果不好,过滤不准确。



技术实现要素:

本发明实施例的目的在于提供一种数据过滤方法及装置,根据待过滤数据的数据特征,实时生成识别特征,用来识别需要过滤掉的数据,不需要预先设定过滤条件,识别特征能够进行及时的调整,增强了过滤效果,提高了过滤的准确性。具体技术方案如下:

本发明实施例公开了一种数据过滤方法,包括:

获得待过滤数据;

为所述待过滤数据中的每一条数据的各个字段分配标识,所述标识用于区分不同类型的字段,同一类型的字段为相同的标识;

根据所述待过滤数据,实时生成识别特征,所述识别特征包括字段和字段的标识,所述识别特征用于识别所述待过滤数据中需要过滤掉的数据;

对所述待过滤数据进行多次过滤,所述多次过滤中至少包括一次实时黑名单过滤方式,所述实时黑名单过滤方式为根据实时生成的所述识别特征,过滤所述待过滤数据。

可选的,所述获得待过滤数据,包括:

获得原始数据;

通过适配器将所述原始数据格式化,获得所述待过滤数据;

其中,所述适配器,包括:预设适配器和自定义适配器,所述自定义适配器为通过第三方接口,应用类加载器和Java反射机制,注册的自定义适配器。

可选的,所述根据所述待过滤数据,实时生成识别特征,包括:

检测所述待过滤数据中的每一条数据的各个字段,在一个或多个预设时间段内的出现频率;

当所述一个或多个字段在任意一个预设时间段内的出现频率,大于或等于针对所述预设时间段预设的阈值时,将所述一个或多个字段和所述一个或多个字段的标识,作为所述识别特征。

可选的,所述检测所述待过滤数据中的每一条数据的各个字段,在一个或多个预设时间段内的出现频率,包括:

并行检测所述待过滤数据中的每一条数据的各个字段,在不同的预设时间段内的出现频率。

可选的,所述在根据所述待过滤数据,实时生成识别特征之后,所述方法还包括:

将所述识别特征中所有的字段,作为实时黑名单,并将所述实时黑名单保存至预设数据库中。

可选的,所述实时黑名单过滤方式,包括:

根据所述识别特征中所有的字段的标识,获得所述待过滤数据中,含有所述标识对应的字段的数据;

将所述数据与所述预设数据库中所述黑名单中的字段进行匹配;

当所述数据中,包含有所述黑名单中的字段时,舍弃所述数据。

可选的,所述对所述待过滤数据进行多次过滤,包括:

以第N层过滤方式对所述待过滤数据过滤进行过滤,得到第N层过滤结果,所述第N层过滤方式为实时黑名单过滤、规则表达式过滤、数据字典过滤、离线黑名单过滤及第三方黑名单过滤中的一种方式;

以第N+1层过滤方式对所述第N层过滤结果进行过滤,得到第N+1层过滤结果,所述第N+1层过滤方式为实时黑名单过滤、规则表达式过滤、数据字典过滤、离线黑名单过滤及第三方黑名单过滤中的一种方式,且与所述第N层过滤方式不同;

其中,所述N为大于或等于1的自然数;

所述规则表达式过滤方式为当所述待过滤数据中的数据不满足预设的正则表达式或客户端脚本语言表达式时,舍弃所述数据;

所述数据字典过滤方式为当所述待过滤数据中的数据,不满足数据字典中的数据范围时,舍弃所述数据;

所述离线黑名单过滤方式为获得离线识别特征,将所述待过滤数据中的数据逐条匹配所述离线识别特征,当所述待过滤数据中的数据满足所述离线识别特征,舍弃所述数据;

所述第三方黑名单过滤方式为获得第三方识别特征,将所述待过滤数据中的数据逐条匹配所述第三方识别特征,当所述待过滤数据中的数据满足所述第三方识别特征,舍弃所述数据。

可选的,所述方法还包括:

监测每一层过滤方式之前所述待过滤数据的第一数据量;

监测所述每一层过滤方式之后的过滤结果的第二数据量;

获得所述第一数据量和所述第二数据量的数据量差值;

根据所述数据量差值,判断每一层过滤方式的过滤效率。

本发明实施例还公开了一种数据过滤装置,包括:

获取模块,用于获得待过滤数据;

标识模块,用于为所述待过滤数据中的每一条数据的各个字段分配标识,所述标识用于区分不同类型的字段,同一类型的字段为相同的标识;

生成模块,用于根据所述待过滤数据,实时生成识别特征,所述识别特征包括字段和字段的标识,所述识别特征用于识别所述待过滤数据中需要过滤掉的数据;

过滤模块,用于对所述待过滤数据进行多次过滤,所述多次过滤中至少包括一次实时黑名单过滤方式,所述实时黑名单过滤方式为根据实时生成的所述识别特征,过滤所述待过滤数据。

可选的,所述获取模块,具体用于,获取原始数据,通过适配器将所述原始数据格式化,获得所述待过滤数据;

其中,所述适配器,包括:预设适配器和自定义适配器,所述自定义适配器为通过第三方接口,应用类加载器和Java反射机制,注册的自定义适配器。

可选的,所述生成模块,具体用于,

检测所述待过滤数据中的每一条数据的各个字段,在一个或多个预设时间段内的出现频率;

当所述一个或多个字段在任意一个预设时间段内的出现频率,大于或等于针对所述预设时间段预设的阈值时,将所述一个或多个字段和所述一个或多个字段的标识,作为所述识别特征。

可选的,所述生成模块,具体还用于,

并行的检测所述待过滤数据中的每一条数据的各个字段,在不同的预设时间段内的出现频率。

可选的,所述装置还包括:

实时黑名单模块,用于将所述识别特征中所有的字段,作为实时黑名单,并将所述实时黑名单保存至预设数据库中。

可选的,所述过滤模块中的实时黑名单过滤方式,包括:

根据所述识别特征中所有的字段的标识,获得所述待过滤数据中,含有所述标识对应的字段的数据;

将所述数据与所述预设数据库中所述黑名单中的字段进行匹配;

当所述数据中,包含有所述黑名单中的字段时,舍弃所述数据。

可选的,所述过滤模块,具体用于,

以第N层过滤方式对所述待过滤数据过滤进行过滤,得到第N层过滤结果,所述第N层过滤方式为实时黑名单过滤、规则表达式过滤、数据字典过滤、离线黑名单过滤及第三方黑名单过滤中的一种方式;

以第N+1层过滤方式对所述第N层过滤结果进行过滤,得到第N+1层过滤结果,所述第N+1层过滤方式为实时黑名单过滤、规则表达式过滤、数据字典过滤、离线黑名单过滤及第三方黑名单过滤中的一种方式,且与所述第N层过滤方式不同;

其中,所述N为大于或等于1的自然数;

所述规则表达式过滤方式为当所述待过滤数据中的数据不满足预设的正则表达式或客户端脚本语言表达式时,舍弃所述数据;

所述数据字典过滤方式为当所述待过滤数据中的数据,不满足数据字典中的数据范围时,舍弃所述数据;

所述离线黑名单过滤方式为获得离线识别特征,将所述待过滤数据中的数据逐条匹配所述离线识别特征,当所述待过滤数据中的数据满足所述离线识别特征,舍弃所述数据;

所述第三方黑名单过滤方式为获得第三方识别特征,将所述待过滤数据中的数据逐条匹配所述第三方识别特征,当所述待过滤数据中的数据满足所述第三方识别特征,舍弃所述数据。

可选的,所述装置还包括监测模块,所述监测模块用于,

监测每一层过滤方式之前所述待过滤数据的第一数据量;

监测所述每一层过滤方式之后的过滤结果的第二数据量;

获得所述第一数据量和所述第二数据量的数据量差值;

根据所述数据量差值,判断每一层过滤方式的过滤效率。

本发明实施例提供的一种数据过滤方法及装置,能够根据过滤数据的数据特征,实时生成识别特征,用来识别需要过滤掉的数据,可以不需要预先设定过滤条件,识别特征能够进行及时的调整,增强了过滤效果,提高了过滤的准确性。并且采用了多次过滤的方式,每一层过滤都可以有相应的过滤规则,从而进一步的增强了过滤效果,提高了过滤的准确性。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

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

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

图3为本发明实施例提供的数据过滤装置的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,图1为本发明实施例提供的数据过滤方法的一种流程图,包括:

步骤101,获得待过滤数据。

待过滤数据可以包括多种数据类型,例如各种数据包、或者是连续的数据流等等。

获得待过滤数据可以是在数据的接收或发送端口实时的获取数据,也可以是现有的已经保存的数据作为待过滤的数据。具体的,各种获取数据的方法,可以由多种现有技术实现,此处不再赘述。

步骤102,为待过滤数据中的每一条数据的各个字段分配标识,标识用于区分不同类型的字段,同一类型的字段为相同的标识。

数据中的各个字段,可以由符号进行分隔,例如一段数据中,第一个字段是身份证号,第二个字段是性别,这两个字段中间会用符号进行分隔,用以区分不同字段。身份证号和性别就是两个不同的类型,对于这两种类型不同的字段,为其分配两个不同的标识,用来区分字段的类型,例如第一个字段的标识为A,第二个字段的标识为B。

在后面的数据中,再次出现身份证号这种类型的字段时,该字段的标识依然为A。即所有数据中所有身份证号的字段,标识均为A。

这样进行标识后,在生成识别特征和利用识别特征进行数据过滤的时候,就可以很容易的对一个类型的数据进行检测,提高了生成识别特征和过滤数据的效率。

步骤103,根据待过滤数据,实时生成识别特征,识别特征包括字段和字段的标识,识别特征用于识别待过滤数据中需要过滤掉的数据。

对待过滤数据中所有的字段进行检测,可以实时发现存在异常的字段。存在异常的字段可以是重复次数过多、字段长度过长的字段等等,当然也可以预先进行人为的配置,用以识别特定的需要过滤的字段,例如含有特定词汇的字段,作为需要过滤的特定字段。将异常的字段或预先配置的需要过滤的字段以及这些字段的标识,作为识别特征。

对于连续的数据流,可以对一段时间内获得的待过滤数据进行检测,得到这一部分待过滤数据的识别特征,然后再对下一段时间内获得的待过滤数据进行分析,得到下一部分待过滤数据的识别特征。也可以从刚开始获得待过滤数据的0时刻起,按一定的时间长度循环进行检测,例如0时刻到10秒检测一次;到20秒时,再检测一次0时刻到20秒内的数据,以此类推。直至内存的最大限度,例如内存最大限度可以为10分钟的数据量;然后再接收到待过滤数据时,重新设定为0时刻,按以上方法,再次计算。

步骤104,对待过滤数据进行多次过滤,多次过滤中至少包括一次实时黑名单过滤方式,实时黑名单过滤方式为根据实时生成的识别特征,过滤待过滤数据。

当经过对待过滤数据的检测,已经得到了识别特征后,就可以根据该识别特征,对待过滤数据进行实时黑名单过滤,黑名单就是所有的识别特征所组成的。当待过滤数据中的一条数据包含有识别特征中的字段,并且该字段的标识也与识别特征中字段的标识相同时,则可以认为该条数据需要被过滤,并将该条数据过滤掉。将待过滤数据与识别特征进行匹配,就可以将所有需要过滤掉的数据进行过滤。

对于连续的需要过滤的数据流,识别特征的生成是动态的调整的,所以黑名单中的识别特征也在进行实时的变化和调整。所以对于实时获得的数据流的过滤也是实时的,并且需要按照动态的实时黑名单进行过滤。

对于待过滤数据的过滤,有多种的过滤方式,实时黑名单过滤方式只是其中的一种,在本发明实施列中,对于待过滤的数据采用多种的过滤方式,可以使得待过滤数据的过滤经过多次的过滤,进而提高过滤效果。

在本发明实施列中,根据过滤数据的数据特征,能够实时生成识别特征,不需要预先设定过滤条件,识别特征能够进行及时的调整,增强了过滤效果,提高了过滤的准确性,保证了过滤的实时性。并且采用了多次过滤的方式,每一层过滤都可以有相应的过滤规则,从而进一步的增强了过滤效果,提高了过滤的准确。

可选的,在本发明实施例提供的数据过滤方法中,获得待过滤数据,包括:

获得原始数据;

通过适配器将原始数据格式化,获得待过滤数据;

其中,适配器,包括:预设适配器和自定义适配器,自定义适配器为通过第三方接口,应用类加载器和Java反射机制,注册的自定义适配器。

由于获得原始数据有可能存在很多的数据格式,所以为了便于生成识别特征和数据的过滤,需要对原始数据通过适配器进行格式化,使之成为格式统一的数据,从而为后续的步骤提供方便。

在计算机领域中,适配器可以将一种数据类型转换成需要的类型。不同的适配器可以转换不同类型的数据。本发明实施列中,预设适配器可以支持json数据格式和用某个分隔符分隔的数据格式。但很多时候的数据类型并不是上述的两种数据类型,这时,就需要使用自定义适配器。

可以通过第三方接口,应用类加载器和Java反射机制,注册并调用自定义的配适器,从而使用该自定义配适器进行数据的格式化。

类加载器是一个用来加载类文件的类。Java源代码通过java编译器编译成类文件,然后JVM(JavaVirtualMachine,Java虚拟机)来执行类文件中的字节码来执行程序。Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

其中,类加载器和Java反射机制的具体过程属于现有技术,此处不再赘述。

在本发明实施列中,将原始数据进行格式化后,再进行后续步骤,能够大大提高后续步骤的效率,从而提高了整体过滤的效率。

可选的,在本发明实施例提供的数据过滤方法中,根据待过滤数据,实时生成识别特征,包括:

第一步,检测待过滤数据中的每一条数据的各个字段,在一个或多个预设时间段内的出现频率。

某个字段出现的频率过高,是一种十分常见的字段异常情况,并且针对大部分实时的数据流,这样情况意味着可能存在数据攻击的可能,例如:视频网站上有人通过黑客手段或工具刷高某个特定视频的点击量,从而达到不法目的。所以,需要重点过滤这种类型的数据。

预设的时间段可以是几秒或者几分钟,一个或多个预设时间段可以是相互独立的,可也以是具有包含关系的。例如具有包含关系的多个预设时间段可以是,0时刻到10秒检测一次;到20秒时,再检测一次0时刻到20秒内的数据,以此类推,直至内存的最大限度,如内存最大限度可以为10分钟的数据量;然后再接收到待过滤数据时,重新设定为0时刻,按以上方法,再次计算。

或者,可以在一个独立的预设时间段进行一次检查,检测预设时间段内的字段出现频率。例如,每10秒检测一次10内接收到的数据中所有字段出现的频率。

具体的检测的策略和方式,可以根据需要进行灵活的配置,以满足不同情况的需要

第二步,当一个或多个字段在任意一个预设时间段内的出现频率,大于或等于针对预设时间段预设的阈值时,将一个或多个字段和一个或多个字段的标识,作为识别特征。

针对不同的预设时间段,以及预设的时间段是独立的或者是否具有包含关系,预先设定不同的阈值。当进行检测时,在预设时间段内字段的重复出现的频率大于针对该时间段预设的阈值时,则认为该字段存在异常,需要过滤含有该字段的数据,从而将该字段以及该字段的标识作为识别特征。当然出现异常的字段可能有很多个,那么这些字段和字段的标识都需要作为识别特征。

其中阈值可以根据需要进行灵活的设定。

在本发明实施例中,通过在多种预设时间段内的检测字段的出现频率,可以大大提高异常字段的识别准确度。可以充分的发现异常的字段,从而使得生成的识别特征更加准确,进一步的提高了整体过滤方式的过滤准确性。

可选的,在本发明实施例提供的数据过滤方法中,检测待过滤数据中的每一条数据的各个字段,在一个或多个预设时间段内的出现频率,包括:

并行的检测待过滤数据中的每一条数据的各个字段,在不同的预设时间段内的出现频率。

在检测待过滤数据中的每一条数据的各个字段时,可以并行检测。每一个并行检测相互独立,所以可以为每一个并行的检测过程预设不同的时间段。例如,可以在并行的各个检测中,等比例的放大或缩小每一个并行的监测过程的预设时间段,相应的,需要放大或缩小预设时间段对应的阈值。

例如:第一个检测中,每10秒检测一次10秒内获得的数据的所有字段,当一个字段重复出现10次以上,则认为该字段为异常字段,将该字段以及该字段的标识作为识别特征。

并行的第二个检测中,可以每5秒检测一次5秒内获得的数据的所有字段,当一个字段重复出现5次以上,则认为该字段为异常字段,将该字段以及该字段的标识作为识别特征。以此类推,可以有多个并行的检测。

在本发明实施例中,通过对待检测数据进行并行的检测,在提高了检测效率的同时,可以缩短检测的时间,并且进一步的使得检测的结果更加准确。

可选的,在本发明实施例提供的数据过滤方法中,在根据待过滤数据,实时生成识别特征之后,方法还包括:

将识别特征中所有的字段,作为实时黑名单,并将实时黑名单保存至预设数据库中。

所生成的识别特征中,包含有字段和字段的标识。可以将所有的字段作为黑名单。并且将黑名单保存至预设数据库中,预设数据库可以是Redis,Hbase和Mysql等数据库,可以根据需要和黑名单的大小进行选择。

在本发明实施例中,将识别特征中的字段存储在预设数据库中,可以在预设数据库中进行黑名单的匹配,从而可以实现快速的黑名单匹配,并且可以存储很大的黑名单用于数据的过滤,而不会因为黑名单过大使得匹配效率过低。

可选的,在本发明实施例提供的数据过滤方法中,实时黑名单过滤方式,包括:

第一步,根据识别特征中所有的字段的标识,获得待过滤数据中,含有标识对应的字段的数据。

在进行实时黑名单过滤方式时,可以先根据识别特征中所有的字段的标识,在待过滤数据中,获得所有包含有这一类标识所对应的字段的数据。

字段的标识对应的是字段的类型,识别特征中的标识,表示着这一类型的字段中,有一个或多个字段时异常字段,需要进行过滤。所以,先在待过滤数据中,按照标识,将所有含有这一类型的字段的数据都识别出来,再进行下一步的匹配,可以很大程度上提高过滤的效率。

第二步,将数据与预设数据库中黑名单中的字段进行匹配。当数据中,包含有黑名单中的字段时,舍弃数据。

黑名单中均为异常的字段,所以将上一步得到的所有含有这一类型的字段的数据,逐条的与预设数据库中黑名单的字段进行匹配,如果一条数据中含有与黑名单中的字段相同的字段时,就舍弃该条数据。确保所有的含有这一类型的字段的数据都进行过匹配。并且对识别特征中所有的标识都进行这样的步骤,从而完成对待过滤数据的过滤。

在本发明实施例中,先通过字段的标识,在待过滤数据中识别出包含同一类型字段的数据,再针对这些数据进行黑名单的匹配。从而不需要对所有的待过滤数据进行匹配,可以较大的提高过滤的效率,减少了过滤过程中所需要的系统资源。在进行实时数据流的过滤时,由于提高了效率,进而保证了实时性。

可选的,在本发明实施例提供的数据过滤方法中,对待过滤数据进行多次过滤,包括:

以第N层过滤方式对待过滤数据过滤进行过滤,得到第N层过滤结果,第N层过滤方式为实时黑名单过滤、规则表达式过滤、数据字典过滤、离线黑名单过滤及第三方黑名单过滤中的一种方式。

以第N+1层过滤方式对第N层过滤结果进行过滤,得到第N+1层过滤结果,第N+1层过滤方式为实时黑名单过滤、规则表达式过滤、数据字典过滤、离线黑名单过滤及第三方黑名单过滤中的一种方式,且与第N层过滤方式不同。其中,N为大于或等于1的自然数。本发明实施例中,N优选为5。

在对待过滤数据的多次过滤中,除了实时黑名单过滤方式外,还可以有多种其他的过滤方式。多种过滤方式之间互相独立,可以单独使用也可以组合使用。一种过滤方式的过滤结果作为下一种过滤方式的待过滤数据,从而使得实现了多次多层的过滤,其中过滤结果是指经过过滤的数据。

本发明实施例中,提供了规则表达式过滤、数据字典过滤、离线黑名单过滤及第三方黑名单过滤等过滤方式,但可以在本发明实施例的基础上在扩展其他过滤方式。只要与本发明实施例中的实时黑名单过滤方式进行组合,都涵盖在本发明实施例的保护范围中。

规则表达式过滤方式为当待过滤数据中的数据不满足预设的正则表达式或客户端脚本语言表达式时,舍弃数据。

预先配置正则表达式或客户端脚本语言表达式,在过滤数据时,判断待过滤数据的特定字段的值,是否满足正则表达式或客户端脚本语言表达式。当不满足正则表达式或客户端脚本语言表达式时,则将含有该特定字段的数据过滤掉。例如:

预先配置一个客户端脚本语言表达式:${a}>100&&${b}>100。待过滤数据中,对应的字段的值为a=200,b=50,则此时判断表达式200>100&&50>100,显然50>100是不成立的,即不满足该客户端脚本语言表达式,含有该字段的数据就需要被过滤。

预先配置一个正则表达式:${id}=’*ab$’,该表达式表示id字段需要由字母“ab”来结尾,待过滤数据中对应的字段为:2341,判断表达式:2341=’*ab$’,显然,该字段不是以字母“ab”来结尾,所以含有该字段的数字需要被过滤。

数据字典过滤方式为当待过滤数据中的数据,不满足数据字典中的数据范围时,舍弃数据。

数据字典是一个自动或手动存储数据源定义和属性的文档,对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。

在使用数据字典过滤方式时,可以限定待过滤数据中特定字段的值的范围,如果超出了该字段在数据字典中定义的数值范围,则过滤掉含有该字段的数据。例如:

数据字典A中,字段p的值对应变量为${p},且该变量在数据字典A中的数值范围为1到100。待过滤数据中,字段P的值为101,显然超过了数据字典A中对于该字段的范围,所以需要将含有字段p,且p的值为101的数据过滤掉。

离线黑名单过滤方式为获得离线识别特征,将待过滤数据中的数据逐条匹配离线识别特征,当待过滤数据中的数据满足离线识别特征,舍弃数据。

利用深度学习及神经网络等各种机器学习的方法,对已经获得的识别特征,进行分析和预测,从而可以得到离线黑名单,离线黑名单中包含有经过机器学习而得到的识别特征,将离线黑名单同样的保存在预设数据库中,与实时黑名单的作用一样,利用同样的方法,对待过滤数据进行过滤。其中深度学习及神经网络等各种机器学习的方法,目前有许多现有的方法可供选择,具体的过程属于现有技术,此处不再赘述。

第三方黑名单过滤方式为获得第三方识别特征,将待过滤数据中的数据逐条匹配第三方识别特征,当待过滤数据中的数据满足第三方识别特征,舍弃数据。

第三方过滤特征,可以是在本公司内部的风控系统中,根据历史记录等信息得到的黑名单,或者可以通过购买外部数据的方式得到的黑名单。这些黑名单,称作第三方黑名单,其中包含有特定数据的识别特征。将第三方黑名单保存在预设数据库中,通过与实时黑名单类似的方法,匹配待过滤数据与第三方黑名单中的识别特征,从而过滤待过滤数据。

可选的,在本发明实施例提供的数据过滤方法中,该方法还包括:

监测每一层过滤方式之前待过滤数据的第一数据量。

在每一层过滤之前,都对待过滤的数据进行统计,得出第一数据量,第一数据量可以用数据的大小来衡量,也可以使用数据的条数来衡量,只要能反映出数据量的多少的指标都可以作为第一数据量。

监测每一层过滤方式之后的过滤结果的第二数据量。

在每一层过滤之后,对该层过滤的过滤结果,进行统计,得到第二数据量,过滤结果就是经过过滤的数据。第二数据量与第一数据量为同一种类型的数据量。

获得第一数据量和第二数据量的数据量差值。

每一层过滤完成后,就可以得到该层过滤方式的第一数据量和第二数据量,对第一数据量和第二数据量求差值,就可以得到该层过滤方式过滤掉的数据量。

根据数据量差值,判断每一层过滤方式的过滤效率。

数据量差值,就是该层过滤方式过滤掉的数据量。根据该差值,可以判断出该层过滤方式是否有效的过滤掉了数据,可以进一步的计算出过滤的效率。

例如,得到的第一数据量为500M,经过一种过滤方式的过滤的得到过滤结果,该过滤结果的数据量作为第二数据量为450M。则数据量差值为50M。则该过滤方式过滤了50M数据过滤效率可以为10%。当然,具体过滤效率的算法可以有很多种,再次不再一一列举,可以根据需要进行选择和配置。

本发明实施例中,通过对每一层过滤方式的监测,可以及时的了解到每一层过滤的情况,并且根据过滤的情况来及时调整每一种过滤方式的具体的过滤策略,例如调整规则表达式过滤方式中的正则表达式或客户端脚本语言表达式等等。从而使得过滤方法更加灵活,进一步提高过滤效果。

参见图2,图2为本发明实施例提供的数据过滤方法的另一种流程图,包括:

步骤201,读入实时的原始数据。

具体的,例如可以通过Flume将实时的数据流转到Kafka的一个topic中,再通过Spark Streaming读取Kafka中的数据到数据过滤的运算程序当中。

其中,Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。Kafka中的topic中是指,每条发布到Kafka集群中的消息的类别。Spark Streaming是将数据流的计算分解成一系列短小的批处理计算。通过Spark Streaming,可以将实时的数据流转换成多个批处理的短数据。具体的实现过程,属于现有技术,不再赘述。

步骤202,缓存原始数据。

将读入的原始数据,缓存在计算机内存或者服务器内存中。

步骤203,数据格式化。

原始数据缓存好后,就可以进行数据的格式化,经过格式化后的数据作为待过滤数据。为了能够更加高效的进行实时数据流的过滤,可以将实时黑名单的生成与多次过滤分成两个独立的过程,从而更进一步的提高了对实时数据的过滤效果。两个过程独立的对同样的待过滤数据进行格式化等一系列步骤。

在本发明实施例中,json格式的数据和按某个分隔符分隔的数据格式是本发明实施例里通过预设适配器进行格式化,而其他格式的数据,可以通过第三方接口,应用类加载器和Java反射机制,使用自定义适配器实现格式化,使得数据格式统一,方便使用。

步骤204,分配标识。

实时黑名单生成和多次过滤的两个独立的数据处理过程中,独立的对同样的进行了格式化的数据中的各个字段分配标识。且标识是统一的,即同一类型的字段,均分配为同一种标识。

步骤205,生成实时黑名单。

将已经分配了标识的待过滤数据注册到Spark Sql数据库中进行计算。根据字段在一个或多个时间段内的出现频率,将出现频率超过预设阈值的字段和该字段的标识作为识别特征,记录在实时黑名单中。

并且,可以并行的进行多个计算。以提高计算效率,并及时为多次过滤提供数据支持。

步骤206,结果存储。

将计算得出的实时黑名单保存在预设数据库中,如:Redis数据库。

步骤207,输出实时黑名单。

将实时黑名单中的所有字段的标识,输出至多次过滤的程序或设备中。

步骤208,基于表达式过滤。

多次过滤的过程中,完成了待过滤数据的格式化和分配标识后,可以进行多次过滤中的规则表达式过滤。

按预先配置的正则表达式或客户端脚本语言表达式,进行过滤。其中,正则表达式或客户端脚本语言表达式可以为多个不同的表达式。

步骤209,基于数据字典过滤。

将经过规则表达式过滤方式过滤的数据,再进行基于数据字典过滤。其中数据字典可以有一个或多个。

步骤210,基于实时黑名单过滤。

将完成了数据字典过滤方式的待过滤数据,再进行基于实时黑名单过滤。通过步骤207,获得了实时黑名单中的所有字段的标识,根据这些标识,可以将待过滤数据中,得到包含有这些标识所对应的字段的数据。然后再逐条的将这些数据中的相应字段,与预设数据库,如:Redis数据库中所保存的实时黑名单中的字段进行匹配。当字段与实时黑名单中的字段相同时,则过滤掉包含该字段的数据。

由于在实时黑名单生成的过程中,可以在多个预设时间段内进行字段出现频率的检测,并且能够进行并行的检测。所以相当于存在多种规则的实时黑名单的生成方式。这些不同的规则下都会生成实时黑名单。实时黑名单可以是一个或多个。从而相应的,在基于实时黑名单过滤时,也是基于多个规则生成的实时黑名单进行的过滤,可以实现基于多个规则的实时黑名单过滤。

步骤211,获得离线黑名单。

利用深度学习及神经网络等各种机器学习的方法,对已经获得的识别特征,进行分析和预测,从而可以得到离线黑名单,离线黑名单中包含有经过机器学习而得到的识别特征,将离线黑名单通过数据库接口保存在预设数据库中,如:Redis数据库。

步骤212,基于离线黑名单过滤。

将完成了实时黑明但过滤方式的数据,再次进行基于离线黑名单过滤。过滤方法与实时黑名单过滤方式类似,先通过离线黑名单中字段的标识,得到待过滤数据中包含有该标识对应字段的数据,再将该数据中的字段与离线黑名单中的字段进行匹配,从而进行数据的过滤。

步骤213,获得第三方黑名单。

在本公司内部的风控系统中,根据历史记录等信息得到第三方黑名单,或者可以通过购买外部数据的方式得到第三方黑名单。将第三方黑名单通过数据库接口保存在预设数据库中,如:Redis数据库

步骤214,基于第三方黑名单过滤。

将完成了离线黑名单过滤的数据,再次进行基于第三方黑名单过滤。具体过滤方法与实时黑名单过滤和离线黑名单过滤类似,不再赘述。

本发明实施列中,实时黑名单生成的过滤与多次过滤的过程相互独立的并行进行。可以大大提高过滤的效率。对于实时数据流,保证了过滤的实时性。

参见图3,图3为本发明实施例提供的数据过滤装置的结构图,包括:

获取模块301,用于获得待过滤数据;

标识模块302,用于为待过滤数据中的每一条数据的各个字段分配标识,标识用于区分不同类型的字段,同一类型的字段为相同的标识;

生成模块303,用于根据待过滤数据,实时生成识别特征,识别特征包括字段和字段的标识,识别特征用于识别待过滤数据中需要过滤掉的数据;

过滤模块304,用于对待过滤数据进行多次过滤,多次过滤中至少包括一次实时黑名单过滤方式,实时黑名单过滤方式为根据实时生成的识别特征,过滤待过滤数据。

在本发明实施列中,根据过滤数据的数据特征,能够实时生成识别特征,不需要预先设定过滤条件,识别特征能够进行及时的调整,增强了过滤效果,提高了过滤的准确性。并且采用了多次过滤的方式,每一层过滤都可以有相应的过滤规则,从而进一步的增强了过滤效果,提高了过滤的准确。

本发明实施例的装置是应用上述数据过滤方法的装置,则上述数据过滤方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

可选的,本发明实施例提供的数据过滤装置中,获取模块,具体用于,获取原始数据,通过适配器将原始数据格式化,获得待过滤数据;

其中,适配器,包括:预设适配器和自定义适配器,自定义适配器为通过第三方接口,应用类加载器和Java反射机制,注册的自定义适配器。

可选的,本发明实施例提供的数据过滤装置中,生成模块,具体用于,

检测待过滤数据中的每一条数据的各个字段,在一个或多个预设时间段内的出现频率;

当一个或多个字段在任意一个预设时间段内的出现频率,大于或等于针对预设时间段预设的阈值时,将一个或多个字段和一个或多个字段的标识,作为识别特征。

可选的,本发明实施例提供的数据过滤装置中,生成模块,具体还用于,

并行的检测待过滤数据中的每一条数据的各个字段,在不同的预设时间段内的出现频率;

可选的,本发明实施例提供的数据过滤装置中,该装置还包括:

实时黑名单模块,用于将识别特征中所有的字段,作为实时黑名单,并将实时黑名单保存至预设数据库中。

可选的,本发明实施例提供的数据过滤装置中,过滤模块中的实时黑名单过滤方式,包括:

根据识别特征中所有的字段的标识,获得待过滤数据中,含有标识对应的字段的数据;

将数据与预设数据库中黑名单中的字段进行匹配;

当数据中,包含有黑名单中的字段时,舍弃数据。

可选的,本发明实施例提供的数据过滤装置中,过滤模块,具体用于,

以第N层过滤方式对待过滤数据过滤进行过滤,得到第N层过滤结果,第N层过滤方式为实时黑名单过滤、规则表达式过滤、数据字典过滤、离线黑名单过滤及第三方黑名单过滤中的一种方式;

以第N+1层过滤方式对第N层过滤结果进行过滤,得到第N+1层过滤结果,第N+1层过滤方式为实时黑名单过滤、规则表达式过滤、数据字典过滤、离线黑名单过滤及第三方黑名单过滤中的一种方式,且与第N层过滤方式不同;

其中,N为大于或等于1的自然数;

规则表达式过滤方式为当待过滤数据中的数据不满足预设的正则表达式或客户端脚本语言表达式时,舍弃数据;

数据字典过滤方式为当待过滤数据中的数据,不满足数据字典中的数据范围时,舍弃数据;

离线黑名单过滤方式为获得离线识别特征,将待过滤数据中的数据逐条匹配离线识别特征,当待过滤数据中的数据满足离线识别特征,舍弃数据;

第三方黑名单过滤方式为获得第三方识别特征,将待过滤数据中的数据逐条匹配第三方识别特征,当待过滤数据中的数据满足第三方识别特征,舍弃数据。

可选的,本发明实施例提供的数据过滤装置中,该装置还包括监测模块,监测模块用于,

监测每一层过滤方式之前待过滤数据的第一数据量;

监测每一层过滤方式之后的过滤结果的第二数据量;

获得第一数据量和第二数据量的数据量差值;

根据数据量差值,判断每一层过滤方式的过滤效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1