CN106446221A - 数据分析方法及装置 - Google Patents

数据分析方法及装置 Download PDF

Info

Publication number
CN106446221A
CN106446221A CN201610876015.3A CN201610876015A CN106446221A CN 106446221 A CN106446221 A CN 106446221A CN 201610876015 A CN201610876015 A CN 201610876015A CN 106446221 A CN106446221 A CN 106446221A
Authority
CN
China
Prior art keywords
data
code snippet
matched
renewal
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610876015.3A
Other languages
English (en)
Other versions
CN106446221B (zh
Inventor
颜高权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Beijing Qianxin Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Beijing Qianxin Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Beijing Qianxin Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201610876015.3A priority Critical patent/CN106446221B/zh
Publication of CN106446221A publication Critical patent/CN106446221A/zh
Application granted granted Critical
Publication of CN106446221B publication Critical patent/CN106446221B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据分析方法及装置,涉及信息技术领域,从而提升了数据规则匹配速度,进而提升了数据规则匹配效率。所述方法包括:获取代码片段的更新信息,所述代码片段中包含不同的预设规则;根据所述更新信息对所述代码片段进行更新并获取待匹配数据;通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配;根据匹配结果,确定是否执行与所述预设规则对应的预定操作。本发明适用于数据的分析。

Description

数据分析方法及装置
技术领域
本发明涉及信息技术领域,特别是涉及一种数据分析方法及装置。
背景技术
随着信息技术的不断发展,数据分析技术的应用越来越广泛。数据分析技术开始在互联网、零售、医疗、物联网等多个行业里成为商业变革的主导力量。数据分析技术是根据需要对网上海量的文本、图像和视频数据进行采集、分析、加工和利用的一项技术。在数据分析过程中,有需要对数据进行规则匹配的需求。在实际应用过程中,通常通过代码片段对数据进行规则匹配。
目前,当技术人员修改代码片段后,通常需要重新启动进程才能完成代码片段的更新。然而,由于进程关闭期间无法对数据进行数据规则匹配且每次代码片段修改后都需要重新启动进程,若需要重新启动进程才能完成代码片段的更新,会造成每次代码片段修改后数据规则匹配都会中断,从而导致数据规则匹配速度较慢,进而导致数据规则匹配效率较低。
发明内容
有鉴于此,本发明提供一种数据分析方法及装置。主要目的在于能够提升数据规则匹配效率。
依据本发明一个方面,提供了一种数据分析方法,包括:
获取代码片段的更新信息,所述代码片段中包含不同的预设规则;
根据所述更新信息对所述代码片段进行更新并获取待匹配数据;
通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配;
根据匹配结果,确定是否执行与所述预设规则对应的预定操作。
依据本发明另一个方面,提供了一种数据分析装置,包括:
获取单元,用于获取代码片段的更新信息,所述代码片段中包含不同的预设规则;
更新单元,用于根据所述获取单元获取的更新信息对所述代码片段进行更新;
所述获取单元,还用于获取待匹配数据;
匹配单元,用于通过加载的所述更新单元更新后的代码片段,对所述接收单元接收的所述待匹配数据进行规则匹配。
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明提供的一种数据分析方法及装置,首先获取代码片段的更新信息,所述代码片段中包含不同的预设规则;然后根据所述更新信息对所述代码片段进行更新并获取待匹配数据;通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配;最后根据匹配结果,确定是否执行与所述预设规则对应的预定操作。与目前需要重新启动进程才能完成代码片段的更新相比,本发明实施例通过获取代码片段的更新信息,然后根据所述更新信息对所述代码片段进行更新,无需重新启动进程就能实现代码片段的更新,避免了数据规则匹配过程中断,从而提升了数据规则匹配速度,进而提升了数据规则匹配效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据分析方法流程图;
图2示出了本发明实施例提供的另一种数据分析方法流程图;
图3示出了本发明实施例提供的一种数据分析装置结构示意图;
图4示出了本发明实施例提供的另一种数据分析装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种数据分析方法,如图1所示,所述方法包括:
101、获取代码片段的更新信息。
其中,所述代码片段中包含不同的预设规则。所述预设规则可以根据实际需求进行配置,该代码片段可以由技术人员事先编写配置。具体地,该代码片段可以由技术人员事先利用Python(计算机程序设计语言)语言进行编写配置。
例如,预设规则的结构可以采取三段式:规则名,匹配条件、匹配结果,中间用特定符号分隔,一行一条规则;预设规则采取至上而下的原则,越靠前的规则越先匹配,整个匹配过程中只要命中一条规则就表明匹配成功并立即返回匹配结果。其中,匹配条件可以支持任意待匹配数据,直接取对象化处理后的待匹配数据做条件运算、逻辑运算等,如果结果为真,返回匹配结果,如果结果为假,继续下一条规则匹配。匹配条件、匹配结果均可支持正则匹配、自定义函数,以及Python语言本身的一些特性。
对于本发明实施例,当技术人员修改代码片段时,通过获取代码片段的更新信息,可以实现代码片段实时生效,无需重新启动进程就能实现代码片段的更新,保证了代码片段更新的实时性且避免了数据规则匹配过程中断,从而提升了数据规则匹配速度,进而提升了数据规则匹配效率。
102、根据更新信息对代码片段进行更新并获取待匹配数据。
其中,所述待匹配数据可以为json数据、XML(Extensible Markup Language,可扩展标记语言)数据等。
103、通过加载的更新后的代码片段,对待匹配数据进行规则匹配。
对于本发明实施例,通过加载的更新后的代码片段,对待匹配数据进行规则匹配,可以更好的进行数据的规则匹配,可以提高规则匹配的准确率以及成功率,可以满足用户最新的需求。
104、根据匹配结果,确定是否执行与预设规则对应的预定操作。
其中,所述预定操作可以根据实际需求进行配置,例如,预定操作可以为返回字符串、获取json数据、修改原始json数据等操作。
例如,预设规则为scan_by_powershell||data.cmdline.find("powershell.exe")>-1and data.cmdline.find("192.168.133.1")>-1||"OK",其中,该预设规则的规则名为scan_by_powershell,匹配条件为data.cmdline.find("powershell.exe")>-1and data.cmdline.find("192.168.133.1")>-1,匹配成功后执行的预定操作是返回“OK”。当待匹配数据与该预设规则匹配时,如cmdline里找到了"powershell.exe"字符串,则返回“OK”,作为执行与该预设规则对应的预定操作。
本发明实施例提供的一种数据分析方法,首先获取代码片段的更新信息,所述代码片段中包含不同的预设规则;然后根据所述更新信息对所述代码片段进行更新并接收待匹配数据;通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配;最后根据匹配结果,确定是否执行与所述预设规则对应的预定操作。与目前需要重新启动进程才能完成代码片段的更新相比,本发明实施例通过获取代码片段的更新信息,然后根据所述更新信息对所述代码片段进行更新,无需重新启动进程就能实现代码片段的更新,避免了数据规则匹配过程中断,从而提升了数据规则匹配速度,进而提升了数据规则匹配效率。
本发明实施例提供了另一种数据分析方法,如图2所示,所述方法包括:
201、获取代码片段的更新信息。
其中,所述代码片段中包含不同的预设规则。
对于本发明实施例,步骤201具体可以为:检测代码片段是否存在更新;若存在,则获取所述代码片段的更新信息。当技术人员修改代码片段时,系统会检测到代码片段存在更新并会通过tick stream发送更新信息。
在本发明实施例中,还可以按照预置时间间隔获取代码片段的更新信息。所述预置时间间隔可以根据实际需求进行配置,例如,预置时间间隔可以配置为1秒、2秒等。
对于本发明实施例,通过获取代码片段的更新信息,可以实现修改后的代码片段实时生效,无需重新启动进程,保证了代码片段更新的实时性且避免了数据规则匹配过程中断,从而提升了数据规则匹配速度,进而提升了数据规则匹配效率。
202、根据更新信息对代码片段进行更新并获取待匹配数据。
对于本发明实施例,所述获取待匹配数据具体包括:通过预置分布式获取任务从预设缓存队列中获取待匹配数据。其中,所述预设缓存队列中保存有不同的待匹配数据。预置分布式获取任务可以为Storm中的Spout任务,具体地,所述Spout任务可以通过kafka(分布式)系统驱动从预设缓存队列中获取待匹配数据。在获取待匹配数据之后,可以将待匹配数据发送给Spout任务对应的处理Bolt任务,Spout对应的Bolt的个数可以为多个,然后由多个Bolt分别并行地对待匹配数据进行处理。Bolt可以包括:数据规则匹配Bolt、和匹配结果发送Bolt等。具体地,可以通过数据规则匹配Bolt对数据进行规则匹配,通过匹配结果发送Bolt进行匹配结果发送,需要说明的是,数据规则匹配的过程和匹配结果的发送过程为并行进行的,且一个匹配结果发送Bolt处理的数据是数据规则匹配Bolt处理数据的结果。
例如,可以在Storm中新建一个Topology,Topology是由流分组策略连起来的Spout和Bolt节点网络,具体实现的伪代码可以为:
TopologyBuilder builder=new builder TopologyBuilder()
然后通过Spout获取待匹配数据,具体实现的伪代码可以为:
Builder.SetSpout=("source_kafka",new KafkaSpout(spoutConfig),spout)
最后,将待匹配数据发送给Spout对应多个Bolt进行处理,即可以先利用数据规则匹配Bolt通过代码片段对待匹配数据进行匹配,然后将匹配结果发送给匹配结果发送Bolt,最后由匹配结果发送Bolt进行匹配结果的发送,具体实现的伪代码可以为:
Builder.SetBolt("filter_data",new StreamingBolt(true,new Fields("data"),"python","rule.py"),bolt).shuffleGrouping("source_kafka");
Builder.setBolt("send_result",new HttpBolt(),spout).shuffleGrouping("filter_data");
对于本发明实施例,通过预置分布式获取任务从预设缓存队列中获取待匹配数据,无需事先编写获取数据代码就可以直接获取到待匹配数据,从而可以实时分析数据,且通过Spout对应的多个Bolt对待匹配数据进行处理,可以实现并行对数据进行规则匹配,当需要对大量数据进行规则匹配时,可以提升数据匹配速度,从而可以提高数据规则匹配的效率。
需要说明的是,可以按照待匹配数据对应的存储时间的先后顺序,通过预置分布式获取任务从预设缓存队列中获取待匹配数据。所述存储时间可以为待匹配数据存入预设缓存队列时的时间。对于本发明实施例,当需要处理大量的待匹配数据时,可以将这些数据存储在预先设置的缓存队列中等待处理。
203、将待匹配数据进行对象化处理。
例如,将待匹配的json数据进行对象化处理,得到Python对象,以便通过Python语言编写的代码片段,对其进行规则匹配。
204、通过加载的更新后的代码片段,对处理后的数据进行规则匹配。
在本发明实施例中,所述处理后的数据可以为与所述代码片段的编写语言对应的对象数据,以便通过所述代码片段,对待匹配数据进行规则匹配。具体地,所述处理后的数据可以为Python对象数据,所述代码片段可以为利用Python语言编写的代码片段。需要说明的是,利用Python语言编写代码片段,其包含的预设规则更加灵活多样,应用更加广泛,例如,对于一组关于分数的待匹配数据,根据实际需要可以取分数中的最大值进行规则匹配,也可以取分数中的最小值进行规则匹配,还可以取分数中的平均值进行规则匹配。
对于本发明实施例,若处理后的数据为通过Storm中的Spout从预设缓存队列中获取的,步骤204具体可以为:将所述处理后的数据发送给所述预置分布式获取任务对应的处理任务,以便于所述处理任务通过加载的更新后的代码片段,对所述处理后的数据进行规则匹配。
进一步地,为了防止代码片段中被注入恶意代码,保证数据的安全性,对于本发明实施例,步骤204之前,所述方法还可以包括:对所述加载的更新后的代码片段进行安全处理。此时,所述步骤204具体可以为:通过安全处理后的代码片段,对所述待匹配数据进行规则匹配。
在本发明实施中,所述对所述加载的更新后的代码片段进行安全处理具体可以包括:对所述加载的更新后的代码片段中的危险函数进行屏蔽处理;和/或对所述加载的更新后的代码片段中的特定函数进行注释处理。
其中,所述危险函数可以为eval函数、exec函数、execfile函数等。所述特定函数可以为input函数、import函数等。需要说明的是,所述对所述加载的更新后的代码片段中的危险函数进行屏蔽处理的具体实现过程可以为:检测加载的更新后的代码片段中是否存在与预置危险函数库中的危险函数匹配的函数,若存在,则将加载的更新后的代码片段中的危险函数进行屏蔽处理。类似地,所述对所述加载的更新后的代码片段中的特定函数进行注释处理的具体实现过程可以为:检测加载的更新后的代码片段中是否存在与预置特定函数库中的特定函数匹配的函数,若存在,则将加载的更新后的代码片段中的特定函数进行注释处理。
对于本发明实施例,步骤204具体还可以为:通过预先加载的更新后的代码片段,对所述处理后的数据进行规则匹配。需要说明的是,通过预先加载的更新后代码片段进行规则匹配,可以实现将不同的预设规则预编译到内存中进行数据的规则匹配,当需要对大量数据进行规则匹配时,可以提高数据规则匹配的效率。
对于本发明实施例,所述代码片段中保存的预设规则按照处理优先级的先后顺序排列,步骤204具体可以为:按照所述排列的先后顺序,对所述待匹配数据进行规则匹配。其中,所述处理优先级可以根据实际需求进行选择设定,所述预设规则中包含规则标识信息、匹配条件信息及匹配结果信息,所述匹配结果信息中包含规则匹配成功时执行的预定操作信息。所述规则标识信息可以为规则名称、ID(Identity,身份标识号码)。
例如,代码片段中保存有五条预设规则,分别为规则A、规则B、规则C、规则D、规则E,其中这五条规则按照处理优先级的先后顺序排列,该排列顺序具体为规则A—>规则D—>规则C—>规则E—>规则B,当需要对Python对象数据进行规则匹配时,按照上述排列顺序,对该Python对象数据进行规则匹配。
需要说明的是,对于本发明实施例,通过按照所述排列的先后顺序,对处理后的数据进行规则匹配,可以实现处理优先级越高的规则越先进行匹配,可以满足业务的需求。
205、根据匹配结果,确定是否执行与预设规则对应的预定操作。
其中,所述预定操作可以根据实际需求进行配置,例如,预定操作可以为获取json数据、修改原始json数据、通过自定义函数设置json数据、返回预定字符串等操作。
具体地,所述步骤205具体可以包括:根据所述预定操作信息和匹配结果,确定是否执行与匹配成功的预设规则对应的预定操作。
当存在一个预设规则与所述处理后的数据匹配成功时,则确定执行与所述匹配成功的预设规则对应的预定操作。
例如,预先加载的代码片段中存在四条规则,分别为规则A、规则B、规则C、规则D,具体如下所示:
规则A:scan_by_powershell||data.cmdline.find("powershell.exe")>-1anddata.cmdline.find("192.168.133.1")>-1||"OK"
规则B:scan_by_process_md5||data.process_md5=="92f44e405db16ac55d97e3bfe3b132fa"||data.process_md5
规则C:scan_by_imagepath||re.match(r"searchfilterhost\.exe",data.imagepath,re.I)||data.imagepath
规则D:scan_by_tags||len(data.tags)==1||data.set_value("rule_name","rule_ok")
待匹配数据为json数据,具体如下所示:
当预设规则按A、B、C、D顺序出现时,以上json数据命中规则A,即cmdline里找到了"powershell.exe"字符串,则返回“OK”,作为执行与该规则A对应的预定操作。
当预设规则按B、A、C、D顺序出现时,以上json数据命中规则B,即process_md5为"92f44e405db16ac55d97e3bfe3b132fa",则将"92f44e405db16ac55d97e3bfe3b132fa"作为返回结果,进而作为执行与该规则B对应的预定操作。
当预设规则按C、A、B、D顺序出现时,以上json数据命中规则C,即通过正则匹配到imagepath带有"searchfilterhost.exe"字符串,则将"C:\\Windows\\Sysnative\\SearchFilterHost.exe"作为返回结果,进而作为执行与该规则C对应的预定操作。
当预设规则按D、A、B、C顺序出现时,以上json数据命中规则D,即tags的长度大小为1,则将匹配结果通过自定义函数设置该json数据,并将value值"rule_ok"作为返回结果,进而作为执行与该规则D对应的预定操作。
进一步地,所述方法还可以包括:从预定文本信息或预定脚本程序或预定在线编辑器中获取所述代码片段并进行加载。其中,所述预定文本信息、预定脚本程序、预定在线编辑器可以根据用户的实际需求进行选择配置。需要说明的是,通过从预定文本信息或预定脚本程序或预定在线编辑器中获取所述代码片段并进行加载,可以实现多种方式获取得到代码片段并进行加载,可以根据用户的实际需要,满足用户的不同需求。
例如,技术人员可以预先将包含预设规则的代码片段编辑在预定文本中,通过该文本进行加载代码片段;还可以预先将代码片段编辑在预定脚本程序中,通过内存加载该预定脚本程序,得到该代码片段;还可以预先利用网站提供的在线编辑器编辑包含预设规则的代码片段,通过网上加载该代码片段。
本发明实施例提供的另一种数据分析方法,首先获取代码片段的更新信息,所述代码片段中包含不同的预设规则;然后根据所述更新信息对所述代码片段进行更新并获取待匹配数据;通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配;最后根据匹配结果,确定是否执行与所述预设规则对应的预定操作。与目前需要重新启动进程才能完成代码片段的更新相比,本发明实施例通过获取代码片段的更新信息,然后根据所述更新信息对所述代码片段进行更新,无需重新启动进程就能实现代码片段的更新,避免了数据规则匹配过程中断,从而提升了数据规则匹配速度,进而提升了数据规则匹配效率。
进一步地,作为图1所示方法的具体实现,本发明实施例提供了一种数据分析装置,如图3所示,所述装置包括:获取单元31、更新单元32、匹配单元33、确定单元34。
获取单元31,可以用于获取代码片段的更新信息,所述代码片段中包含不同的预设规则。
更新单元32,可以用于根据所述获取单元31获取的更新信息对所述代码片段进行更新。
所述获取单元31,还可以用于获取待匹配数据。
匹配单元33,可以用于通过加载的更新单元32更新后的代码片段,对所述获取单元31获取的所述待匹配数据进行规则匹配。
确定单元34,可以用于根据所述匹配单元33的匹配结果,确定是否执行与所述预设规则对应的预定操作。
需要说明的是,本发明实施例提供的一种数据分析装置所涉及各功能单元的其他相应描述,可以参考图1中的对应描述,在此不再赘述。
本发明实施例提供的一种数据分析装置,首先获取代码片段的更新信息,所述代码片段中包含不同的预设规则;然后根据所述更新信息对所述代码片段进行更新并获取待匹配数据;通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配;最后根据匹配结果,确定是否执行与所述预设规则对应的预定操作。与目前需要重新启动进程才能完成代码片段的更新相比,本发明实施例通过获取代码片段的更新信息,然后根据所述更新信息对所述代码片段进行更新,无需重新启动进程就能实现代码片段的更新,避免了数据规则匹配过程中断,从而提升了数据规则匹配速度,进而提升了数据规则匹配效率。
进一步地,作为图2所示方法的具体实现,本发明实施例提供了另一种数据分析装置,如图4所示,所述装置包括:获取单元41、更新单元42、匹配单元43、确定单元44。
获取单元41,可以用于获取代码片段的更新信息,所述代码片段中包含不同的预设规则。
更新单元42,可以用于根据所述获取单元41获取的更新信息对所述代码片段进行更新。
所述获取单元41,还可以用于获取待匹配数据。
匹配单元43,可以用于通过加载的更新单元42更新后的代码片段,对所述获取单元41获取所述待匹配数据进行规则匹配。
确定单元44,可以用于根据所述匹配单元43的匹配结果,确定是否执行与所述预设规则对应的预定操作。
所述获取单元41包括:检测模块和获取模块。
检测模块,可以用于检测代码片段是否存在更新。
获取模块,可以用于若所述检测模块检测所述代码片段存在更新,则获取所述代码片段的更新信息。
所述获取单元41,具体可以用于按照预置时间间隔获取代码片段的更新信息。
所述获取单元41,具体用于通过预置分布式获取任务从预设缓存队列中获取待匹配数据,所述预设缓存队列中保存有不同的待匹配数据。
所述匹配单元43,具体用于将所述获取单元41获取的所述待匹配数据发送给所述预置分布式获取任务对应的处理任务,以便于所述处理任务通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配。
进一步地,所述装置还包括:处理单元45。
所述处理单元45,用于对所述加载的更新后的代码片段进行安全处理;
所述匹配单元43,具体用于通过所述处理单元45安全处理后的代码片段,对所述待匹配数据进行规则匹配。
所述处理单元45,具体用于对所述加载的更新后的代码片段中的危险函数进行屏蔽处理;和/或
对所述加载的更新后的代码片段中的特定函数进行注释处理。
所述处理单元45,可以用于将所述获取单元41获取的所述待匹配数据进行对象化处理。
所述匹配单元43,具体可以用于通过加载的更新后的代码片段,对所述处理单元45处理后的数据进行规则匹配,所述处理后的数据为与所述代码片段的编写语言对应的对象数据。
可选地,所述代码片段中保存的预设规则按照处理优先级的先后顺序排列。
所述匹配单元43,具体可以用于按照所述排列的先后顺序,对所述处理单元45处理后的数据进行规则匹配。
所述确定单元44,具体可以用于当存在一个预设规则与所述处理后的数据匹配成功时,则确定执行与所述匹配成功的预设规则对应的预定操作。
可选地,所述预设规则中包含规则标识信息、匹配条件信息及匹配结果信息,所述匹配结果信息中包含规则匹配成功时执行的预定操作信息。
所述确定单元44,具体可以用于根据所述预定操作信息和匹配结果,确定是否执行与匹配成功的预设规则对应的预定操作。
进一步地,所述装置还包括:加载单元46。
所述获取单元41,还可以用于从预定文本信息或预定脚本程序或预定在线编辑器中获取所述代码片段。
所述加载单元46,可以用于将所述获取单元41获取到的代码片段进行加载。
需要说明的是,本发明实施例提供的另一种数据分析装置所涉及各功能单元的其他相应描述,可以参考图2中的对应描述,在此不再赘述。
本发明实施例提供的另一种数据分析装置,首先获取代码片段的更新信息,所述代码片段中包含不同的预设规则;然后根据所述更新信息对所述代码片段进行更新并获取待匹配数据;通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配;最后根据匹配结果,确定是否执行与所述预设规则对应的预定操作。与目前需要重新启动进程才能完成代码片段的更新相比,本发明实施例通过获取代码片段的更新信息,然后根据所述更新信息对所述代码片段进行更新,无需重新启动进程就能实现代码片段的更新,避免了数据规则匹配过程中断,从而提升了数据规则匹配速度,进而提升了数据规则匹配效率。
本发明实施例公开了:
A1、一种数据分析方法,包括:
获取代码片段的更新信息,所述代码片段中包含不同的预设规则;
根据所述更新信息对所述代码片段进行更新并获取待匹配数据;
通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配;
根据匹配结果,确定是否执行与所述预设规则对应的预定操作。
A2、如A1所述的数据分析方法,所述获取代码片段的更新信息包括:
检测代码片段是否存在更新;
若存在,则获取所述代码片段的更新信息。
A3、如A1所述的数据分析方法,所述获取代码片段的更新信息包括:
按照预置时间间隔获取代码片段的更新信息。
A4、如A1所述的数据分析方法,所述获取待匹配数据包括:
通过预置分布式获取任务从预设缓存队列中获取待匹配数据,所述预设缓存队列中保存有不同的待匹配数据;
所述通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配包括:
将所述待匹配数据发送给所述预置分布式获取任务对应的处理任务,以便于所述处理任务通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配。
A5、如A1所述的数据分析方法,所述通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配之前,所述方法包括:
对所述加载的更新后的代码片段进行安全处理;
所述通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配包括:
通过安全处理后的代码片段,对所述待匹配数据进行规则匹配。
A6、如A5所述的数据分析方法,所述对所述加载的更新后的代码片段进行安全处理包括:
对所述加载的更新后的代码片段中的危险函数进行屏蔽处理;和/或
对所述加载的更新后的代码片段中的特定函数进行注释处理。
A7、如A1所述的数据分析方法,所述通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配包括:
通过预先加载的更新后的代码片段,对所述待匹配数据进行规则匹配。
A8、如A1所述的数据分析方法,所述通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配之前,所述方法包括:
将所述待匹配数据进行对象化处理;
所述通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配包括:
通过加载的更新后的代码片段,对处理后的数据进行规则匹配,所述处理后的数据为与所述代码片段的编写语言对应的对象数据。
A9、如A1所述的数据分析方法,所述代码片段中保存的预设规则按照处理优先级的先后顺序排列,所述通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配包括:
按照所述排列的先后顺序,对所述待匹配数据进行规则匹配;
所述根据匹配结果,确定是否执行与所述预设规则对应的预定操作包括:
当存在一个预设规则与所述待匹配数据匹配成功时,则确定执行与所述匹配成功的预设规则对应的预定操作。
A10、如A1所述的数据分析方法,所述预设规则中包含规则标识信息、匹配条件信息及匹配结果信息,所述匹配结果信息中包含规则匹配成功时执行的预定操作信息,所述根据匹配结果,确定是否执行与所述预设规则对应的预定操作包括:
根据所述预定操作信息和匹配结果,确定是否执行与匹配成功的预设规则对应的预定操作。
A11、如A1所述的数据分析方法,所述方法还包括:
从预定文本信息或预定脚本程序或预定在线编辑器中获取所述代码片段并进行加载。
B12、一种数据分析装置,包括:
获取单元,用于获取代码片段的更新信息,所述代码片段中包含不同的预设规则;
更新单元,用于根据所述获取单元获取的更新信息对所述代码片段进行更新;
所述获取单元,还用于获取待匹配数据;
匹配单元,用于通过加载的所述更新单元更新后的代码片段,对所述接收单元接收的所述待匹配数据进行规则匹配;
确定单元,用于根据所述匹配单元的匹配结果,确定是否执行与所述预设规则对应的预定操作。
B13、如B12所述的数据分析装置,所述获取单元包括:
检测模块,用于检测代码片段是否存在更新;
获取模块,用于若所述检测模块检测所述代码片段存在更新,则获取所述代码片段的更新信息。
B14、如B12所述的数据分析装置,
所述获取单元,具体用于按照预置时间间隔获取代码片段的更新信息。
B15、如B12所述的数据分析装置,
所述获取单元,具体用于通过预置分布式获取任务从预设缓存队列中获取待匹配数据,所述预设缓存队列中保存有不同的待匹配数据;
所述匹配单元,具体用于将所述获取单元获取的所述待匹配数据发送给所述预置分布式获取任务对应的处理任务,以便于所述处理任务通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配。
B16、如B12所述的数据分析装置,所述装置还包括:处理单元,
所述处理单元,用于对所述加载的更新后的代码片段进行安全处理;
所述匹配单元,具体用于通过所述处理单元安全处理后的代码片段,对所述待匹配数据进行规则匹配。
B17、如B16所述的数据分析装置,
所述处理单元,具体用于对所述加载的更新后的代码片段中的危险函数进行屏蔽处理;和/或
对所述加载的更新后的代码片段中的特定函数进行注释处理。
B18、如B12所述的数据分析装置,
所述匹配单元,具体用于通过预先加载的所述更新单元更新后的代码片段,对所述接收单元接收的所述待匹配数据进行规则匹配。
B19、如B12所述的数据分析装置,所述装置还包括:处理单元,
处理单元,用于将所述待匹配数据进行对象化处理;
所述匹配单元,具体用于通过加载的所述更新单元更新后的代码片段,对所述处理单元处理后的数据进行规则匹配,所述处理后的数据为与所述代码片段的编写语言对应的对象数据。
B20、如B12所述的数据分析装置,所述代码片段中保存的预设规则按照处理优先级的先后顺序排列,
所述匹配单元,具体用于按照所述排列的先后顺序,对所述处理单元处理后的数据进行规则匹配;
所述确定单元,具体用于当存在一个预设规则与所述处理后的数据匹配成功时,则确定执行与所述匹配成功的预设规则对应的预定操作。
B21、如B12所述的数据分析装置,所述预设规则中包含规则标识信息、匹配条件信息及匹配结果信息,所述匹配结果信息中包含规则匹配成功时执行的预定操作信息,
所述确定单元,具体用于根据所述预定操作信息和匹配结果,确定是否执行与匹配成功的预设规则对应的预定操作。
B22、如B12所述的数据分析装置,所述装置还包括:加载单元,
所述获取单元,还用于从预定文本信息或预定脚本程序或预定在线编辑器中获取所述代码片段;
所述加载单元,用于将所述获取单元获取到的代码片段进行加载。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据分析装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种数据分析方法,其特征在于,包括:
获取代码片段的更新信息,所述代码片段中包含不同的预设规则;
根据所述更新信息对所述代码片段进行更新并获取待匹配数据;
通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配;
根据匹配结果,确定是否执行与所述预设规则对应的预定操作。
2.根据权利要求1所述的数据分析方法,其特征在于,所述获取代码片段的更新信息包括:
检测代码片段是否存在更新;
若存在,则获取所述代码片段的更新信息。
3.根据权利要求1所述的数据分析方法,其特征在于,所述获取代码片段的更新信息包括:
按照预置时间间隔获取代码片段的更新信息。
4.根据权利要求1所述的数据分析方法,其特征在于,所述获取待匹配数据包括:
通过预置分布式获取任务从预设缓存队列中获取待匹配数据,所述预设缓存队列中保存有不同的待匹配数据;
所述通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配包括:
将所述待匹配数据发送给所述预置分布式获取任务对应的处理任务,以便于所述处理任务通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配。
5.根据权利要求1所述的数据分析方法,其特征在于,所述通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配之前,所述方法包括:
对所述加载的更新后的代码片段进行安全处理;
所述通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配包括:
通过安全处理后的代码片段,对所述待匹配数据进行规则匹配。
6.一种数据分析装置,其特征在于,包括:
获取单元,用于获取代码片段的更新信息,所述代码片段中包含不同的预设规则;
更新单元,用于根据所述获取单元获取的更新信息对所述代码片段进行更新;
所述获取单元,还用于获取待匹配数据;
匹配单元,用于通过加载的所述更新单元更新后的代码片段,对所述接收单元接收的所述待匹配数据进行规则匹配;
确定单元,用于根据所述匹配单元的匹配结果,确定是否执行与所述预设规则对应的预定操作。
7.根据权利要求6所述的数据分析装置,其特征在于,所述获取单元包括:
检测模块,用于检测代码片段是否存在更新;
获取模块,用于若所述检测模块检测所述代码片段存在更新,则获取所述代码片段的更新信息。
8.根据权利要求6所述的数据分析装置,其特征在于,
所述获取单元,具体用于按照预置时间间隔获取代码片段的更新信息。
9.根据权利要求6所述的数据分析装置,其特征在于,
所述获取单元,具体用于通过预置分布式获取任务从预设缓存队列中获取待匹配数据,所述预设缓存队列中保存有不同的待匹配数据;
所述匹配单元,具体用于将所述获取单元获取的所述待匹配数据发送给所述预置分布式获取任务对应的处理任务,以便于所述处理任务通过加载的更新后的代码片段,对所述待匹配数据进行规则匹配。
10.根据权利要求6所述的数据分析装置,其特征在于,所述装置还包括:处理单元,
所述处理单元,用于对所述加载的更新后的代码片段进行安全处理;
所述匹配单元,具体用于通过所述处理单元安全处理后的代码片段,对所述待匹配数据进行规则匹配。
CN201610876015.3A 2016-09-30 2016-09-30 数据分析方法及装置 Active CN106446221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610876015.3A CN106446221B (zh) 2016-09-30 2016-09-30 数据分析方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610876015.3A CN106446221B (zh) 2016-09-30 2016-09-30 数据分析方法及装置

Publications (2)

Publication Number Publication Date
CN106446221A true CN106446221A (zh) 2017-02-22
CN106446221B CN106446221B (zh) 2019-09-17

Family

ID=58171979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610876015.3A Active CN106446221B (zh) 2016-09-30 2016-09-30 数据分析方法及装置

Country Status (1)

Country Link
CN (1) CN106446221B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750562A (zh) * 2018-07-20 2020-02-04 武汉烽火众智智慧之星科技有限公司 基于Storm的实时数据比对预警方法及系统
CN111695126A (zh) * 2020-05-28 2020-09-22 武汉中海庭数据技术有限公司 一种众包数据解密方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496956B1 (en) * 2005-01-05 2009-02-24 Symantec Corporation Forward application compatible firewall
CN102142068A (zh) * 2011-03-29 2011-08-03 华北电力大学 一种未知恶意代码的检测方法
US20130212570A1 (en) * 2007-08-09 2013-08-15 Spencer Quin Method and apparatus for determining the state of a computing device
CN103984582A (zh) * 2014-06-04 2014-08-13 网易(杭州)网络有限公司 一种热更新方法和装置
CN105787367A (zh) * 2016-02-23 2016-07-20 华中科技大学 一种软件更新的补丁安全性检测方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496956B1 (en) * 2005-01-05 2009-02-24 Symantec Corporation Forward application compatible firewall
US20130212570A1 (en) * 2007-08-09 2013-08-15 Spencer Quin Method and apparatus for determining the state of a computing device
CN102142068A (zh) * 2011-03-29 2011-08-03 华北电力大学 一种未知恶意代码的检测方法
CN103984582A (zh) * 2014-06-04 2014-08-13 网易(杭州)网络有限公司 一种热更新方法和装置
CN105787367A (zh) * 2016-02-23 2016-07-20 华中科技大学 一种软件更新的补丁安全性检测方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750562A (zh) * 2018-07-20 2020-02-04 武汉烽火众智智慧之星科技有限公司 基于Storm的实时数据比对预警方法及系统
CN110750562B (zh) * 2018-07-20 2023-10-27 宿迁市公安局 基于Storm的实时数据比对预警方法及系统
CN111695126A (zh) * 2020-05-28 2020-09-22 武汉中海庭数据技术有限公司 一种众包数据解密方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN106446221B (zh) 2019-09-17

Similar Documents

Publication Publication Date Title
US9703565B2 (en) Combined branch target and predicate prediction
CN104239133B (zh) 一种日志处理方法、装置及服务器
CN103761476B (zh) 特征提取的方法及装置
CN104067282B (zh) 状态机晶格中的计数器操作
CN109753806A (zh) 服务器防护方法及装置
CN108108493B (zh) 基于mit利益演示的算法处理方法、服务器及存储介质
CN104932980B (zh) 软件自动测试方法及装置
US10678915B2 (en) Method, device and program for checking and killing a backdoor file, and readable medium
CN104933044B (zh) 应用卸载原因的分类方法及分类装置
CN107784026A (zh) 一种etl数据处理方法及装置
CN107330096A (zh) 文件处理方法及装置、计算机可读存储介质和电子设备
CN110825440A (zh) 指令执行方法和装置
Angelini et al. Ropmate: Visually assisting the creation of rop-based exploits
US9460166B2 (en) Presenting a combined search results summary in a graphical view
CN106446221A (zh) 数据分析方法及装置
US10699029B2 (en) Data de-identification method, data de-identification apparatus and non-transitory computer readable storage medium executing the same
US20120246449A1 (en) Method and apparatus for efficient loop instruction execution using bit vector scanning
CN108959929A (zh) 程序文件处理方法及装置
US9563540B2 (en) Automated defect positioning based on historical data
CN108460058A (zh) 数据处理方法及系统
US10248789B2 (en) File clustering using filters working over file attributes
Cheers et al. A novel approach for detecting logic similarity in plagiarised source code
US20170351761A1 (en) Optimizing web crawling through web page pruning
US10235165B2 (en) Creating optimized shortcuts
CN106445626A (zh) 数据分析方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant after: QAX Technology Group Inc.

Address before: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant before: BEIJING QIANXIN TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant