数据处理系统及方法与流程

文档序号:16253079发布日期:2018-12-12 00:12阅读:186来源:国知局
本发明涉及计算机
技术领域
:,特别是涉及一种数据处理系统及方法。
背景技术
:海姆达尔是一个具有完全自主知识产权的海量数据挖掘与分析系统,该系统可以实现对海量数据的挖掘和处理,并提供方便易用的工具供数据分挖掘人员和运营分析人员使用。但是,目前分析人员采用该系统在查询文件时,查找到的是文件通常是原始日志,因此还需要对原始日志进行再次加工、处理、分析等,这无疑会增加分析人员的工作量,不利于提高分析人员的工作效率。因此,如何能够在海姆达尔系统中直接实现原始日志的进一步抽取、细化,比如在系统中可以直接体现出文件是在什么时候上传的、哪些人上传、第一次在什么时候出现等等信息,则是非常有必要解决的一个重要技术问题。技术实现要素:鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据处理系统及方法。依据本发明的一方面,提供了一种数据处理系统,包括分布式调度器、数据处理设备以及具有多个预置数据库的存储组件,其中,所述分布式调度器,适于获取待处理的离线日志,从所述离线日志中提取日志元数据,将所述离线日志和日志元数据传送至所述数据处理设备中;所述数据处理设备,适于将接收到的离线日志进行归类合并生成相应的虚拟表,并对所述日志元数据进行统计得到相应的统计信息;所述数据处理设备,还适于将所述虚拟表和统计信息存储至包含有多个预置数据库的存储组件中。可选地,所述分布式调度器还适于:从存储有多个离线日志的文件系统中获取待处理的离线日志;基于mapreduce模型并采用spark引擎从所述离线日志中提取日志元数据。可选地,所述文件系统中预先存储的多个离线日志包括以下至少之一:客户端访问服务端的行为所产生的日志、样本回扫行为产生的日志。可选地,所述数据处理设备还适于:若所述存储组件中的多个预置数据库包括mysql数据库和具备快速检索功能的poseidon数据库,则将所述虚拟表存储至poseidon数据库中,以及将所述统计信息存储至所述mysql数据库中。可选地,所述日志元数据的内容包括以下至少之一:日志产生时间、用户标识信息、日志类型。可选地,所述数据处理设备还适于:将接收到的离线日志依据所述日志元数据内容中的至少一种进行归类合并生成相应的虚拟表。可选地,所述数据处理设备还适于:对接收到的离线日志按照预设规则进行聚合计算,得到特定格式的日志;对所述特定格式的日志归类合并生成对应的虚拟表。可选地,所述预设规则包括:所述数据处理设备按照预设时间间隔对接收到的离线日志进行聚合计算,得到特定格式的日志。可选地,所述存储组件中还包括builder集群,适于:读取将所述特定格式的日志转换为其他格式日志的转换指令,根据读取到的转换指令对所述特定格式的日志进行格式转换;将格式转换后的日志存储至所述存储组件中的预置数据库中。可选地,所述数据处理设备还适于:若所述存储组件中的多个预置数据库包括quick_table数据库,则将格式转换后的日志存储至所述存储组件中的quick_table数据库中。可选地,所述系统还包括:实时日志处理设备和日志特征提取设备,其中,所述实时日志处理设备,适于从用户查询服务的查询结果中提取产生的日志,将提取的日志传送至所述日志特征提取设备中;所述日志特征提取设备,适于从提取的日志中解析出对应的日志特征数据,并将所述日志和日志特征数据存储至所述存储组件中支持实时存储的预置数据库中。可选地,所述实时日志处理设备,还适于从用户查询服务的查询结果中提取产生的日志后,根据预设处理规则将所述日志发送至预先创建的nsq消息队列中;所述日志特征提取设备,还适于从所述nsq消息队列中消费日志,并解析出对应的日志特征数据,将所述日志和日志特征数据存储至所述存储组件中支持实时存储的预置数据库中。可选地,所述查询服务包括以下至少之一:在线杀毒、url查询、样本上传、dns查询。可选地,所述系统还包括检索设备,适于:接收分析人员通过预先建立的web平台发出的查询请求;根据所述查询请求从所述存储组件中获取存储的日志相关信息,其中,所述日志相关信息包括:日志内容和/或日志元数据;将获取到的日志相关信息反馈至web平台,由所述web平台对获取的日志相关信息进行可视化展示。依据本发明另一方面,还提供了一种数据处理方法,包括:获取待处理的离线日志,从所述离线日志中提取日志元数据;将所述离线日志进行归类合并生成相应的虚拟表,并对所述日志元数据进行统计得到相应的统计信息;将所述虚拟表和统计信息存储至包含有多个预置数据库的存储组件中。可选地,所述获取待处理的离线日志,从所述离线日志中提取日志元数据,包括:从存储有多个离线日志的文件系统中获取待处理的离线日志;基于mapreduce模型并采用spark引擎从所述离线日志中提取日志元数据。可选地,所述文件系统中预先存储的多个离线日志包括以下至少之一:客户端访问服务端的行为所产生的日志、样本回扫行为产生的日志。可选地,若所述存储组件中的多个预置数据库包括mysql数据库和具备快速检索功能的poseidon数据库,则将所述虚拟表和统计信息存储至包含有多个预置数据库的存储组件中,包括:将所述虚拟表存储至poseidon数据库中,以及将所述统计信息存储至所述mysql数据库中。可选地,所述日志元数据的内容包括以下至少之一:日志产生时间、用户标识信息、日志类型。可选地,所述将所述离线日志进行归类合并生成相应的虚拟表,包括:将接收到的离线日志依据所述日志元数据内容中的至少一种进行归类合并生成相应的虚拟表。可选地,所述将接收到的离线日志进行归类合并生成相应的虚拟表,包括:对接收到的离线日志按照预设规则进行聚合计算,得到特定格式的日志;对所述特定格式的日志归类合并生成对应的虚拟表。可选地,所述预设规则包括:所述数据处理设备按照预设时间间隔对接收到的离线日志进行聚合计算,得到特定格式的日志。可选地,所述方法还包括:读取将所述特定格式的日志转换为其他格式日志的转换指令,根据读取到的转换指令对所述特定格式的日志进行格式转换;将格式转换后的日志存储至所述存储组件中的预置数据库中。可选地,所述将格式转换后的日志存储至所述存储组件中的预置数据库中,包括:若所述存储组件中的多个预置数据库包括quick_table数据库,则将格式转换后的日志存储至所述存储组件中的quick_table数据库中。可选地,所述方法还包括:从用户查询服务的查询结果中提取产生的日志;从提取的日志中解析出对应的日志特征数据,并将所述日志和日志特征数据存储至所述存储组件中支持实时存储的预置数据库中。可选地,从用户查询服务的查询结果中提取产生的日志后,还包括:根据预设处理规则将所述日志发送至预先创建的nsq消息队列中;从所述nsq消息队列中消费日志,并解析出对应的日志特征数据,将所述日志和日志特征数据存储至所述存储组件中支持实时存储的预置数据库中。可选地,所述查询服务包括以下至少之一:在线杀毒、url查询、样本上传、dns查询。可选地,所述方法还包括:接收分析人员通过预先建立的web平台发出的查询请求;根据所述查询请求从所述存储组件中获取存储的日志相关信息,其中,所述日志相关信息包括:日志内容和/或日志元数据;将获取到的日志相关信息反馈至web平台,由所述web平台对获取的日志相关信息进行可视化展示。依据本发明的再一方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行上文任一实施例所述的数据处理方法。依据本发明的又一方面,还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行上文任一实施例所述的数据处理方法。在本发明实施例中,数据处理系统包括分布式调度器、数据处理设备以及具有多个预置数据库的存储组件,当数据处理系统处理数据时,首先由分布式调度器获取待处理离线日志且从离线日志中提取日志元数据,将离线日志和日志元数据传送至数据处理设备中。然后数据处理设备将接收到的离线日志进行归类合并生成相应的虚拟表,以及对日志元数据进行统计得到相应的统计信息,最后数据处理设备将虚拟表和统计信息存储至包含有多个预置数据库的存储组件中。由此,本发明方案通过将原始离线日志的各个维度的特征数据(如日志元数据)进一步地抽取、细化、以及归类,即对日志及其元数据进行结构化处理,然后将结构化处理后的日志和日志元数据存储在数据库中,使得数据库中存储的数据更加精细,维度更多,从而后续可以方便的依据日志的特征数据从数据库中搜索日志,实现了日志的集中索引,也有效地提高了日志的搜索效率。进一步地,当分析人员在后续从数据库搜索日志文件时,还可以直接获取到日志的各维度的特征数据,而无需对原始日志进行再次加工、处理、分析,这不仅大大节约了对日志再次分析的流程、还减轻了分析人员的工作量。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本发明一个实施例的数据处理系统的结构示意图;图2示出了根据本发明另一个实施例的数据处理系统的结构示意图;图3示出了根据本发明一个实施例的数据处理系统总体架构示意图;图4示出了根据本发明一个实施例的分布式调度器的设计结构示意图;以及图5示出了根据本发明一个实施例的数据处理方法的流程示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。为解决上述技术问题,本发明实施例提供了一种数据处理系统。图1示出了根据本发明一个实施例的数据处理系统的结构示意图。参见图1,数据处理系统100至少包括分布式调度器110、数据处理设备120以及具有多个预置数据库的存储组件130。现介绍本发明实施例的基于数据处理系统100的各组成或器件的功能以及各部分间的连接关系:分布式调度器110,适于获取待处理的离线日志,从离线日志中提取日志元数据,将离线日志和日志元数据传送至数据处理设备120中;该实施例中,分布式调度器110主要负责调度每天的处理任务(如离线日志的处理任务),另外,分布式调度器110还具有失败自动重试、报警通知等功能。本发明实施例中的日志元数据的内容可以包括日志产生时间、用户标识信息、日志类型等等中的至少一个。数据处理设备120,与分布式调度器110和存储组件130分别耦合,适于将接收到的离线日志进行归类合并生成相应的虚拟表,并对日志元数据进行统计得到相应的统计信息,进而将虚拟表和统计信息存储至包含有多个预置数据库的存储组件130中。本发明方案通过将原始离线日志的各个维度的特征数据(如日志元数据)进一步地抽取、细化、以及归类,即对日志及其元数据进行结构化处理,并将结构化处理后的日志和日志元数据存储在数据库中,使得数据库中存储的数据更加精细,维度更多,从而后续可以方便的依据日志的特征数据从数据库中搜索日志,实现了日志的集中索引,也有效地提高了日志的搜索效率。进一步地,当分析人员在后续从数据库搜索日志文件时,还可以直接获取到日志的各维度的特征数据,而无需对原始日志进行再次加工、处理、分析,这不仅大大节约了对日志再次分析的流程、还减轻了分析人员的工作量。在本发明一实施例中,分布式调度器110可以从存储有多个离线日志的文件系统中获取待处理的离线日志,当分布式调度器110从文件系统中获取离线日志后,可以基于mapreduce模型并采用spark引擎从离线日志中提取日志元数据。该实施例中,文件系统可以是存储有海量日志的hdfs(hadoopdistributedfilesystem,分布式文件系统)、s3(simplestorageservice,简单存储服务)等文件系统,当然还可以是其他的文件系统。另外,文件系统中预先存储的海量日志可以包括例如客户端访问服务端的行为所产生的日志、样本回扫行为产生的日志等等日志。本发明实施例对日志的类型不做具体的限定。在本发明一实施例中,数据处理设备120在对离线日志进行归类合并生成相应的虚拟表时,数据处理设备120可以基于patent框架将接收到的离线日志进行归类合并,例如,根据离线日志的不同格式、字段等对日志进行归类合并生成相应的虚拟表,其中,此处的字段是能够组织到对应的需要进行结构化的数据形式。又例如,当日志元数据包括日志产生时间、用户标识信息、日志类型等内容时,数据处理设备120还可以依据日志产生时间、用户标识信息、日志类型中的至少一种对日志进行归类合并生成相应的虚拟表。该实施例中,虚拟表可以包括以下几种:basic,样本基本信息表,其中包括日志的样本关键信息,如历史查询量、首次出现时间、级别等,可以快速了解一个样本的重要程度,并且,基于该虚拟表在后续还可以实现样本的快速查询;specimen_detail,specimen详细信息表;specimen_cloud_detail,specimen云查静态属性信息表;upload,文件上传溯源信息表;cloud_info,样本云查信息表,其中包括日志的样本云查相关信息,如文件路径、历史级别、pv(pageview,页面浏览量)、uv(uniquevisitor,独立访问用户数)等;network_behavior,network_behavior表,其中包括日志的样本网络行为相关的信息;proc_behavior,进程行为表;proc_chain,进程链信息表;dropped_files,文件释放信息表;scan_log,扫描信息表;scan_info扫描信息表;pestring;mid2ip;file_relations,文件关系表;specimen,已收集样本信息表;pe_info可执行信息表,其中包括样本可执行信息相关的表等等。在该实施例中,数据处理设备120对离线日志进行归类合并生成相应的虚拟表,且对日志元数据进行统计得到相应的统计信息。当存储组件130中的多个预置数据库包括mysql数据库和具备快速检索功能的poseidon数据库时,则可以将虚拟表存储至poseidon数据库中,以及将统计信息存储至mysql数据库中。poseidon数据库主要用于提供万亿级数据,数据根据分词进行精准检索,通过该数据库能够根据预先建好的索引快速检索出万亿级数据中的原始日志,索引起来也比较灵活。当业务分析人员发出的查询请求为日志查询请求时,可以从该数据库中查询相关的日志内容。目前poseidon数据库中存储的是原始日志,采用本发明的方案可以使poseidon数据库中存储的数据更加精细,维度更多,从而方便业务分析人员直接获取到想要的目标数据内容。当业务分析人员从poseidon数据库中查文件时,无需对查找到的日志文件进行再次加工、处理、分析。mysql数据库主要用于存储一些数据的元数据信息,如将日志的原数据统计之后存储至mysql数据库中。在本发明一实施例中,数据处理设备120在对离线日志进行归类合并生成相应的虚拟表时,还可以先对离线日志按照预设规则进行聚合计算,并得到特定格式的日志,进而再对特定格式的日志归类合并生成对应的虚拟表。该实施例中的数据处理设备120具有数据抽取与聚合的能力,其可以根据简单的配置文件从不同的数据源中抽取日志,并对日志进行聚合计算,最终汇集成特定格式的日志。例如,特定格式的日志可以是json格式的日志,当然,聚合计算得到的日志还可以是其他格式的日志。该实施例中,对离线日志按照预设规则进行聚合计算时,可以是按照预设时间间隔对离线日志进行聚合计算,预设时间间隔可以是每天对离线日志聚合计算一次,或者是隔一天对离线日志聚合计算一次,或者是一个月对离线日志聚合计算一次等等。在该实施例中,存储组件中还可以包括builder集群,该builder集群可以读取将特定格式的日志转换为其他格式日志的转换指令,进而根据读取到的转换指令对特定格式的日志进行格式转换,最后,将格式转换后的日志存储至存储组件中的预置数据库中。例如,数据处理设备120对离线日志聚合计算得到json格式的日志,builder集群在接收到将json格式的日志转换为其他格式的指令后,对json格式的日志进行格式转换,以转换为指定的其他格式,并将其他格式的日志存储至预置数据库中。在该实施例中,若预置数据库中包括quick_table数据库,那么,可以将格式转换后的日志存储至存储组件中的quick_table数据库中。quick_table数据库主要为一些频繁查询的数据提供快速检索,如样本(万亿级)每天的查询量、首次出现时间等,设计目标秒级检索。该数据库实际上是对poseidon数据库的一个互补,poseidon数据库虽然具有索引灵活,存储数据量大等等优点,但其依赖qps(querypersecond,每秒查询率)很低的hadoop组件,若要检索出一条数据通常需要倒查很多层索引,当需要查询的数据只与样本的md5(message-digestalgorithm5,信息摘要算法5)和sha1(securehashalgorithm,安全哈希算法)有关时,其实质仅涉及到单纯的kv(key-value)查询需求,而不需要那么灵活的索引。例如,一些用户(如白名单用户)需要pv、uv接口满足自动获取和批量(如每次1000)的使用场景时,采用poseidon数据库当前无法支持该应用。因此,引入quicktable数据库在一定程度上可以加快一些字段查询的索引速度。上文实施例中的分布式调度器110和数据处理设备120实际上是对离线日志进行离线处理的核心设备,即上文主要介绍了对离线日志进行离线处理的过程,该系统主要基于的是一个分布式的数据抽取和聚合框架,其可以处理文件系统中海量的离线日志,每天可以跑数十个任务,处理数据量数百tb,能够抽取特征万亿条。本发明实施例还提供了另一种数据处理系统,参见图2,数据处理系统100除了包含上文中的分布式调度器110和数据处理设备120之外,还包括实时日志处理设备140、日志特征提取设备150及检索设备160。该系统中的分布式调度器110和数据处理设备120仍然可以实现离线数据处理,另外,实时日志处理设备140、日志特征提取设备150还可以实现对在线日志进行实时的处理,由于上文已经介绍了离线数据的处理过程,因此下文主要针对在线日志处理的过程进行具体的介绍。实时日志处理设备140,适于从用户查询服务的查询结果中提取产生的日志,将提取的日志传送至日志特征提取设备150中;日志特征提取设备150,与实时日志处理设备140和存储组件130分别耦合,适于从提取的日志中解析出对应的日志特征数据,并将日志和日志特征数据存储至存储组件130中支持实时存储的预置数据库中。检索设备160,与存储组件130耦合,适于接收分析人员通过预先建立的web平台发出的查询请求,根据查询请求从存储组件130中获取存储的日志相关信息,最后将获取到的日志相关信息反馈至web平台,由web平台对获取的日志相关信息进行可视化展示。其中,日志相关信息可以包括日志的内容和/或日志元数据,上文已经对日志元数据进行了介绍,此处不再赘述。在本发明一实施例中,实时日志处理设备140还可以从用户查询服务的查询结果中提取产生的日志,并根据预设处理规则将提取的日志发送至预先创建的nsq(实时分布式消息传递平台)消息队列中。进而,日志特征提取设备150从nsq消息队列中消费日志,并解析出对应的日志特征数据,最终将日志和日志特征数据存储至存储组件130中支持实时存储的预置数据库中。其中,用户查询服务可以包括在线杀毒、url查询、样本上传、dns(domainnamesystem,域名系统)查询等等中的至少一项。在本发明一实施例中,分析人员采用检索设备160检索日志的具体过程可以包括如下步骤s1至s3:步骤s1、接收分析人员通过预先建立的web平台发出的查询请求。查询请求的类型可以是http查询请求,因此,本发明方案可以基于http协议接收分析人员通过预先建立的web平台发出的http查询请求。当然,查询请求还可以是其他的类型。步骤s2,对接收到的查询请求进行语法解析得到对应的语法树,基于语法树定制与查询请求对应的查询规则。该步骤中的查询规则实际上是基于语法树定制的与查询请求对应的查询计划,即根据查询请求计划出相应的查询步骤,先查询哪一步,再查询哪一步,以有效地提高查询效率。步骤s3,根据查询规则从预置数据库中查询相应的查询数据,将查询到的查询数据反馈至web平台。在该步骤中,查询数据反馈至web平台后,可以在web平台中的显示设备上进行可视化展示,分析人员通过该web平台可以看到反馈的查询数据,以进行相应的分析和使用。本发明实施例的在线查询数据的方式通过对查询请求进行语法解析得到对应的语法树,以支持自定义的多种查询语法,即实现了自有的查询语法,进而可以灵活的基于语法树定制与查询请求对应的查询规则,并根据查询规则从数据库中查询到所需要的查询数据。进一步地,本方案还有效地提高了在线查询数据的查询效率。参见上文步骤s2,在本发明一实施例中,基于语法树定制与查询请求对应的查询规则的时候,为了保证语法树的准确性,还可以采用相应的优化器对语法树进行优化,进而,根据优化后的语法树生成对应的查询计划树,查询计划树中包括多个树节点,树节点对应于查询规则的查询步骤。查询计划树可以有效地将查询计划清楚、简洁的体现出来,有助于高效、准确地实现数据查询。该实施例中,对语法树进行优化的优化器可以采用plain优化器,还可以采用其他类型的优化器,本发明实施例对此不做具体的限定。在该实施例中,根据优化后的语法树生成对应的查询计划树后,由于查询计划树中包含有多个树节点,因此在根据查询计划树从预置数据库中查询相应的查询数据的过程中,可以采用多种方式进行数据查询。例如:方式一、按照查询计划树中树节点对应的查询步骤的先后顺序,依次从预置数据库中查询相应的查询数据。进而,在依据查询计划树中全部的树节点查询数据完毕后整合查询到的查询数据,将整合后的查询数据反馈至web平台。方式二、按照查询计划树中树节点对应的查询步骤的先后顺序,依次从预置数据库中查询相应的查询数据。进而,在根据任一树节点对应的查询步骤查询到相应的查询数据后,将当前查询到的查询数据反馈至web平台。方式三、从查询计划树中选取多个树节点,依据选取的多个树节点并行的从预置数据库中查询相应的查询数据。最后,在依据查询计划树中全部的树节点查询数据完毕后,整合查询到的查询数据,将整合后的查询数据反馈至web平台。上述实施例仅仅是示意性的,根据查询计划树从预置数据库中查询相应的查询数据的方式还可以是其他的方式。为了更加清楚的体现本发明方案,现以一个具体实施例对本发明的离线数据处理过程、在线实时数据处理过程及数据检索过程进行介绍。参见图3,在离线数据提取流程中,首先,分布式调度器110从文件系统(如hdfs、s3等)中调度海量的日志,并基于mapreduce模型采用spark引擎提取日志的元数据。然后,采用数据处理框架(如patent框架)对调度的日志和日志元数据进行聚合计算得到特定格式(如json格式)的日志(即图3的中间数据),并且对特定格式的日志归类合并生成对应的虚拟表,以及对元数据统计得到统计信息。最后,将虚拟表保存在poseidon数据库中,并将统计信息保存在mysql数据库中。其中,图3中的指令文件中可以携带将特定格式的日志转换为其他格式日志的转换指令,因此,当builder集群读取到该指令文件中的指令后,会将特定格式的日志转换为其他格式,进而将其他格式的日志存储至quick_table数据库中。例如,指令文件中的指令为s{“xxx”},则s代表在builder集群读取该指令后set一条数据到数据库中。quick_table数据库可以是分布式kv集群,关于quick_table数据库的功能上文已经进行了详细的介绍,此处不再赘述。在实时数据提取流程中,当用户进行查询服务(如杀毒、样本上传、url查询、dns查询等服务时),可以利用实时日志处理集群从查询服务的查询结果中实时抽取产生的日志,且将抽取的日志发送至预先创建的nsq消息队列中,进而特征提取集群从nsq消息队列中消费日志,以解析并提取出日志的特征数据,进而,将抽取的日志和提取的日志特征数据一起存储在tidb数据库中。其中,日志的特征数据可以包括日志的元数据信息。在该流程中,实时日志处理集群可以包括多个上文介绍的实时日志处理设备140,特征提取集群可以包括多个上文介绍的日志特征提取设备150。tidb是一个开源的分布式mysql,其主要应用于实时数据提取流程,存储一些实时更新的日志数据,日志数据量相对于离线流程来说小很多,如根据某些特定条件过滤出来的样本集合、最近一小时的样本的所有属性信息等等。在数据检索过程中,分析人员通过预先建立的web平台发出查询请求,web平台将查询请求发送至searcher中,searcher对查询请求进行相应的处理后,依据处理后的查询请求从存储组件130中的数据库中查询数据。searcher对查询请求的处理过程可以参见上文实施例。此处的searcher提供了一个类sql(structuredquerylanguage,结构化查询语言)的检索引擎,即应用于上文介绍的检索设备160,其可以智能分析检索参数并解析成检索语法树,并提供对存储组件130中的多种存储数据库的检索。对于上述过程需要说明的是,客户端在访问服务端的行为产生日志时会对日志打上标签tag,例如云查杀引擎在查杀病毒时可以将产生的日志打上tag。日志在生成的时候就决定了由哪些处理组件进行处理,比如一些日志数据需要进入实时处理流程,一些日志数据需要进入离线处理流程,一些日志数据需要存储到一些可以快速查的数据库等等。本发明实施例可以通过建立类似样本画像库,对一些特殊的样本打tag,用于将不同的样本相关的日志投递到不同的处理流程中,也可以基于规则来做一些流程切分的工作。在本发明实施例中可以采用日志实时处理流水线根据日志的tag或者样本画像把不同的日志投递给不同的处理流程(如图3中的离线数据提取流程、实时数据提取流程线)。本发明实施例还设计了一种分布式调度器,其核心是分布式任务调度,任务可能是数据转化任务也可能是其他任务,属于一个基础组件。该分布式调度器是基于masterslave结构设计的,其具有执行任务失败后自动恢复并重试功能,且可以支持多种任务类型,如基于mapreduce模型并采用spark引擎从所述离线日志中提取日志元数据、调度并下载hdfs中的文件、loadstored等。参见图4,现介绍分布式调度器的具体工作过程。分布式调度器中的etcdcluster,即master集群,master集群中具有多个master。任意master可以从文件存储(s3/hdfs)中提取待处理的任务task,并将提取的待处理任务分发至与各自对应的worker节点中,例如,masterleader可以将提取的任务分发至与其对应的4个worker节点中,这4个worker节点可以并行的执行任务。在worker节点执行任务的过程中,master会对当前执行任务和与其对应的各worker节点的执行过程进行记录。此外,master还可以将执行任务过程中产生的task元数据(如日志元数据)存储至etcd、mysql数据库中,并且将产生的其他记录(如任务数量等)、临时信息存储至memory/redis数据库中。采用本发明实施例的分布式调度器来调度数据处理任务,可以在一个节点任务失败后其他节点重新执行任务,有效地防止了单点问题,并且,还大大方便了数据处理任务,无需关心任务如何执行,只要将任务上传给分布式调度器,任务就自动调度到合适的机器上运行,且能进行失败重试。本发明实施例还提供了一种分布式数据调度器,该分布式数据调度器的核心功能是进行数据的调度与转化,其可以采用上文中的分布式调度器进行数据分析任务的调度,此任务可以是转化任务,也可以是其他任务。即在采用分布式调度器调度任务后,如分布式调度器调度待处理的离线日志,再由分布式数据调度器对调度的任务进行进一步的数据处理,如提供弹性/可编程的处理流程、数据流监控、简单易用的存储、模块化的数据加工流程等。分布式数据调度器可以是基于上文中的数据处理框架设计的。该实施例中,分布式数据调度器把任务重新进行了定义,如node、rdd、meta,其中,node可以代表一种数据处理收集的方式,一个node的输出可以作为下一个node的输入,每一个node都是逻辑独立的,但是可以通过配置/xml串起来。node可以包括如下类型:filter,过滤类型的node,可以自定义过滤条件以处理输入的rdd;event,事件类型的node,可以自定义根据自定义事件抽取结果;fill,补完类型的node,可以自定义补完规则以处理输入的rdd;map/reduce,通过map/reduce程序进行数据处理的node;spark,通过spark程序进行数据处理的node;script,通过脚本进行数据处理的node。rdd取自spark的概念,弹性分布式数据集,node的一个结果集合就是rdd,rdd可自定义存储,或者可以定义数据量自动选择存储,此外,rdd也可定义裁剪的规则,裁剪输出。meta元数据,每个node能处理的数据类型,比如处理样本,可以把样本的数据结构定义成上文介绍的虚拟表的形式。由此可以得到分布式数据调度器其核心功能是在单个节点根据node配置执行相应的业务逻辑。下面以一个简单的例子来描述数据抽取任务。例如数据抽取任务为提取百度的样本。首先,从云查杀日志中提取md5、sha1,然后,根据提取的md5、sha1计算对应样本每天的pv/uv,并获取pv/uv大于100w的样本的parent_url。如果包含百度的样本,则获取其所有子进程,并提取前一百条子进程的详细信息展示出来。采用本发明实施例的分布式数据调度器执行上述数据抽取任务的具体执行步骤可以是:step1、监控pv大于1000000的样本;具体代码可以是step2、拉取样本的parent_url属性;具体代码可以是step3、过滤出parent_url包含百度的样本;具体代码可以是{filterrdd计算preent_url是否包含百度}step4、过滤所有子进程样本;具体代码可以是step5、在前端展示前一百条子进程的样本。本发明实施例中,分布式数据调度器实现逻辑的调度核心可以根据整体的配置将上述各step串起来,并负责管理rdd相关的存储,把每个node的任务分发到各个节点执行。该实施例中,单个的node可独立执行。此外,数据处理系统通过设置前端页面,还可以提供可视化编辑的功能,把可视化编辑配置生成json格式的conf(配置文件)提交到调度核心。并且,前端页面不仅可以展示每个node的进度,还可以提供由用户手动启动停止单个node的任务的功能。基于同一发明构思,本发明实施例还提供了一种数据处理方法,参见图5,该方法至少包括步骤s502至步骤s506。步骤s502,获取待处理的离线日志,从离线日志中提取日志元数据。其中,日志元数据的内容可以包括日志产生时间、用户标识信息、日志类型等等。步骤s504,将离线日志进行归类合并生成相应的虚拟表,并对日志元数据进行统计得到相应的统计信息。步骤s506,将虚拟表和统计信息存储至包含有多个预置数据库的存储组件中。参见步骤s502,在本发明一实施例中,获取待处理的离线日志,从离线日志中提取日志元数据时,可以从存储有多个离线日志的文件系统中获取待处理的离线日志,进而,基于mapreduce模型并采用spark引擎从离线日志中提取日志元数据。在该实施例中,文件系统中预先存储的多个离线日志包括以下至少之一:客户端访问服务端的行为所产生的日志(即云查日志)、样本回扫行为产生的日志。参见步骤s504,在本发明一实施例中,离线日志进行归类合并生成相应的虚拟表时,可以将接收到的离线日志依据日志元数据进行归类合并生成相应的虚拟表。例如,依据日志产生时间、用户标识信息、日志类型中的至少一种将离线日志归类合并生成相应的虚拟表。在该实施例中,在将接收到的离线日志进行归类合并生成相应的虚拟表时,还可以先对接收到的离线日志按照预设规则进行聚合计算,得到特定格式的日志,进而再对特定格式的日志归类合并生成对应的虚拟表。例如,可以按照预设时间间隔对接收到的离线日志进行聚合计算,得到特定格式(如json格式)的日志。在对离线日志进行聚合计算得到特定格式的日志后,当读取到将特定格式的日志转换为其他格式日志的转换指令时,还可以根据读取到的转换指令对特定格式的日志进行格式转换,并将格式转换后的日志存储至存储组件中的预置数据库中。其中,若存储组件中的多个预置数据库包括quick_table数据库,那么,可以将格式转换后的日志存储至存储组件中的quick_table数据库中。参见步骤s506,在本发明一实施例中,若存储组件中的多个预置数据库包括mysql数据库和具备快速检索功能的poseidon数据库,那么,将虚拟表和统计信息存储至包含有多个预置数据库的存储组件中时,可以将虚拟表存储至poseidon数据库中,以及将统计信息存储至mysql数据库中。其中,poseidon数据库和mysql数据库上文已经进行了详细的介绍,此处不再赘述。上文实施例中介绍的是离线日志处理的过程,本发明实施例还可以实现对在线日志进行实时处理。具体的,在线实时处理日志的过程如下:步骤1、获取用户查询服务的查询结果;其中,用户查询服务可以包括以下至少之一:在线杀毒、url查询、样本上传、dns查询。步骤2、从用户查询服务的查询结果中提取产生的日志;步骤3、从提取的日志中解析出对应的日志特征数据,并将日志和日志特征数据存储至存储组件中支持实时存储的预置数据库中。在该实施例中,当从用户查询服务的查询结果中提取产生的日志后,还可以根据预设处理规则将日志发送至预先创建的nsq消息队列中,进而从nsq消息队列中消费日志,并解析出对应的日志特征数据,将日志和日志特征数据存储至存储组件中支持实时存储的预置数据库中。在本发明实施例中,在线处理日志数据和离线处理日志数据最终都是将处理后的日志数据保存至存储组件中,以供业务分析人员进行业务分析。因此,后续还可以接收分析人员通过预先建立的web平台发出的查询请求,并根据查询请求从存储组件中获取存储的日志相关信息,其中,日志相关信息包括:日志内容和/或日志元数据。最后,将获取到的日志相关信息反馈至web平台,由web平台对获取的日志相关信息进行可视化展示。本发明实施例还提供了一种计算机存储介质,计算机存储介质存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行上文任一实施例中的数据处理方法。另外,本发明实施例还提供了一种计算设备,包括处理器;存储有计算机程序代码的存储器;当计算机程序代码被处理器运行时,导致计算设备执行上文任一实施例中的数据处理方法。根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:本发明方案通过将原始离线日志的各个维度的特征数据(如日志元数据)进一步地抽取、细化、以及归类,即对日志及其元数据进行结构化处理,然后将结构化处理后的日志和日志元数据存储在数据库中,使得数据库中存储的数据更加精细,维度更多,从而后续可以方便的依据日志的特征数据从数据库中搜索日志,实现了日志的集中索引,也有效地提高了日志的搜索效率。进一步地,当分析人员在后续从数据库搜索日志文件时,还可以直接获取到日志的各维度的特征数据,而无需对原始日志进行再次加工、处理、分析,这不仅大大节约了对日志再次分析的流程、还减轻了分析人员的工作量。所属领域的技术人员可以清楚地了解到,上述描述的系统、设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。本领域普通技术人员可以理解:集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络等)在运行指令时执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram),磁碟或者光盘等各种可以存储程序代码的介质。或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。本发明实施例提供了a1、一种数据处理系统,包括分布式调度器、数据处理设备以及具有多个预置数据库的存储组件,其中,所述分布式调度器,适于获取待处理的离线日志,从所述离线日志中提取日志元数据,将所述离线日志和日志元数据传送至所述数据处理设备中;所述数据处理设备,适于将接收到的离线日志进行归类合并生成相应的虚拟表,并对所述日志元数据进行统计得到相应的统计信息;所述数据处理设备,还适于将所述虚拟表和统计信息存储至包含有多个预置数据库的存储组件中。a2、根据a1所述的系统,其中,所述分布式调度器还适于:从存储有多个离线日志的文件系统中获取待处理的离线日志;基于mapreduce模型并采用spark引擎从所述离线日志中提取日志元数据。a3、根据a2所述的系统,其中,所述文件系统中预先存储的多个离线日志包括以下至少之一:客户端访问服务端的行为所产生的日志、样本回扫行为产生的日志。a4、根据a1-a3任一项所述的系统,其中,所述数据处理设备还适于:若所述存储组件中的多个预置数据库包括mysql数据库和具备快速检索功能的poseidon数据库,则将所述虚拟表存储至poseidon数据库中,以及将所述统计信息存储至所述mysql数据库中。a5、根据a1-a3任一项所述的系统,其中,所述日志元数据的内容包括以下至少之一:日志产生时间、用户标识信息、日志类型。a6、根据a5所述的系统,其中,所述数据处理设备还适于:将接收到的离线日志依据所述日志元数据内容中的至少一种进行归类合并生成相应的虚拟表。a7、根据a1-a3任一项所述的系统,其中,所述数据处理设备还适于:对接收到的离线日志按照预设规则进行聚合计算,得到特定格式的日志;对所述特定格式的日志归类合并生成对应的虚拟表。a8、根据a7所述的系统,其中,所述预设规则包括:所述数据处理设备按照预设时间间隔对接收到的离线日志进行聚合计算,得到特定格式的日志。a9、根据a7所述的系统,其中,所述存储组件中还包括builder集群,适于:读取将所述特定格式的日志转换为其他格式日志的转换指令,根据读取到的转换指令对所述特定格式的日志进行格式转换;将格式转换后的日志存储至所述存储组件中的预置数据库中。a10、根据a9所述的系统,其中,所述数据处理设备还适于:若所述存储组件中的多个预置数据库包括quick_table数据库,则将格式转换后的日志存储至所述存储组件中的quick_table数据库中。a11、根据a1-a3任一项所述的系统,其中,还包括:实时日志处理设备和日志特征提取设备,其中,所述实时日志处理设备,适于从用户查询服务的查询结果中提取产生的日志,将提取的日志传送至所述日志特征提取设备中;所述日志特征提取设备,适于从提取的日志中解析出对应的日志特征数据,并将所述日志和日志特征数据存储至所述存储组件中支持实时存储的预置数据库中。a12、根据a11所述的系统,其中,所述实时日志处理设备,还适于从用户查询服务的查询结果中提取产生的日志后,根据预设处理规则将所述日志发送至预先创建的nsq消息队列中;所述日志特征提取设备,还适于从所述nsq消息队列中消费日志,并解析出对应的日志特征数据,将所述日志和日志特征数据存储至所述存储组件中支持实时存储的预置数据库中。a13、根据a11所述的系统,其中,所述查询服务包括以下至少之一:在线杀毒、url查询、样本上传、dns查询。a14、根据a1-a3任一项所述的系统,其中,还包括检索设备,适于:接收分析人员通过预先建立的web平台发出的查询请求;根据所述查询请求从所述存储组件中获取存储的日志相关信息,其中,所述日志相关信息包括:日志内容和/或日志元数据;将获取到的日志相关信息反馈至web平台,由所述web平台对获取的日志相关信息进行可视化展示。b15、一种数据处理方法,包括:获取待处理的离线日志,从所述离线日志中提取日志元数据;将所述离线日志进行归类合并生成相应的虚拟表,并对所述日志元数据进行统计得到相应的统计信息;将所述虚拟表和统计信息存储至包含有多个预置数据库的存储组件中。b16、根据b15所述的方法,其中,所述获取待处理的离线日志,从所述离线日志中提取日志元数据,包括:从存储有多个离线日志的文件系统中获取待处理的离线日志;基于mapreduce模型并采用spark引擎从所述离线日志中提取日志元数据。b17、根据b16所述的方法,其中,所述文件系统中预先存储的多个离线日志包括以下至少之一:客户端访问服务端的行为所产生的日志、样本回扫行为产生的日志。b18、根据b15-b17任一项所述的方法,其中,若所述存储组件中的多个预置数据库包括mysql数据库和具备快速检索功能的poseidon数据库,则将所述虚拟表和统计信息存储至包含有多个预置数据库的存储组件中,包括:将所述虚拟表存储至poseidon数据库中,以及将所述统计信息存储至所述mysql数据库中。b19、根据b15-b17任一项所述的方法,其中,所述日志元数据的内容包括以下至少之一:日志产生时间、用户标识信息、日志类型。b20、根据b19所述的方法,其中,所述将所述离线日志进行归类合并生成相应的虚拟表,包括:将接收到的离线日志依据所述日志元数据内容中的至少一种进行归类合并生成相应的虚拟表。b21、根据b15-b17任一项所述的方法,其中,所述将接收到的离线日志进行归类合并生成相应的虚拟表,包括:对接收到的离线日志按照预设规则进行聚合计算,得到特定格式的日志;对所述特定格式的日志归类合并生成对应的虚拟表。b22、根据b21所述的方法,其中,所述预设规则包括:所述数据处理设备按照预设时间间隔对接收到的离线日志进行聚合计算,得到特定格式的日志。b23、根据b21所述的方法,其中,还包括:读取将所述特定格式的日志转换为其他格式日志的转换指令,根据读取到的转换指令对所述特定格式的日志进行格式转换;将格式转换后的日志存储至所述存储组件中的预置数据库中。b24、根据b23所述的方法,其中,所述将格式转换后的日志存储至所述存储组件中的预置数据库中,包括:若所述存储组件中的多个预置数据库包括quick_table数据库,则将格式转换后的日志存储至所述存储组件中的quick_table数据库中。b25、根据b15-b17任一项所述的方法,其中,还包括:从用户查询服务的查询结果中提取产生的日志;从提取的日志中解析出对应的日志特征数据,并将所述日志和日志特征数据存储至所述存储组件中支持实时存储的预置数据库中。b26、根据b25所述的方法,其中,从用户查询服务的查询结果中提取产生的日志后,还包括:根据预设处理规则将所述日志发送至预先创建的nsq消息队列中;从所述nsq消息队列中消费日志,并解析出对应的日志特征数据,将所述日志和日志特征数据存储至所述存储组件中支持实时存储的预置数据库中。b27、根据b25所述的方法,其中,所述查询服务包括以下至少之一:在线杀毒、url查询、样本上传、dns查询。b28、根据b15-b17任一项所述的方法,其中,还包括:接收分析人员通过预先建立的web平台发出的查询请求;根据所述查询请求从所述存储组件中获取存储的日志相关信息,其中,所述日志相关信息包括:日志内容和/或日志元数据;将获取到的日志相关信息反馈至web平台,由所述web平台对获取的日志相关信息进行可视化展示。c29、一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行a15-a28任一项所述的数据处理方法。d30、一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行a15-a28任一项所述的数据处理方法。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1