一种数据处理方法、装置和系统与流程

文档序号:20029780发布日期:2020-02-28 10:14阅读:132来源:国知局
一种数据处理方法、装置和系统与流程
本发明实施例涉及但不限于大数据计算与分析技术,尤指一种数据处理方法、装置和系统。
背景技术
:云计算、物联网、移动互连、社交媒体等新兴信息技术和应用模式的快速发展,促使全球数据量急剧增加,推动人类社会迈入大数据时代,且随着业务的不断发展,人们对数据信息的分析要求也越来越高。目前,大数据的计算模式可以分为批量计算和流式计算两种形态。其中,关于大数据批量计算相关技术的研究相对成熟,形成了以谷歌(google)的映射化简(mapreduce)编程模型、开源的hadoop计算系统为代表的高效、稳定的批量计算系统,在理论上和实践中均取得了显著成果。关于流式计算的早期研究往往集中在数据库环境中开展数据计算的流式化,数据规模较小,数据对象比较单一。由于新时期的流式大数据呈现出实时性、易失性、突发性、无序性、无限性等特征,对系统提出了很多新的更高的要求。例如,由于物联网和互联网技术的快速发展,公共安全领域产生了海量的流式数据,其特点包括易失性、实时性等。易失性是指数据保存时间不长,会定期进行清除;实时性是指随着时间延伸数据价值会越来越低。传统的计算架构难以支撑对该类数据的快速对接、快速采集、高效处理以及分析的需要。技术实现要素:本发明实施例提供了一种数据处理方法、装置和系统,能够快速接入数据源并对数据进行高效的处理和分析。本发明实施例提供了一种数据处理方法,包括:监控采集模块根据预先配置的数据源的资源配置信息从数据源采集数据,将采集的数据推送至流式大数据计算模块;业务模块定义布控任务;所述流式大数据计算模块根据所述布控任务和预先配置的数据源的元数据的数据结构对所述数据进行处理得到布控结果,将所述布控结果推送至内存数据库指定频道。在本发明另一个实施例中,所述从数据源采集数据之前,该方法还包括:所述业务模块配置所述数据源的资源配置信息;其中,所述资源配置信息包括:资源接口和资源路径;所述流式大数据计算模块根据布控任务和预先配置的数据源的元数据的数据结构对数据进行处理得到布控结果之前,该方法还包括:所述业务模块配置所述数据源的元数据的数据结构。在本发明另一个实施例中,该方法还包括:所述业务模块订阅所述内存数据库指定频道,接收指定频道推送的订阅消息以获取所述内存数据库指定频道的数据。在本发明实施例中,所述布控任务包括:布控任务基本信息、布控对象信息和布控维度,所述布控维度包括布控算法;所述流式大数据计算模块根据布控任务和预先配置的数据源的元数据的数据结构对数据进行处理得到布控结果包括:所述流式大数据计算模块根据所述元数据的数据结构解析所述数据,根据所述布控任务基本信息采用所述布控算法匹配解析的所述数据,将匹配成功的数据作为所述布控结果输出。在本发明实施例中,所述布控算法包括以下至少之一:算法库提供的通用算法、扩展算法;其中,所述扩展算法包括以下至少之一:代码类自定义算法、函数依赖类算法、正则规则类算法。在本发明另一个实施例中,所述流式大数据计算模块根据布控任务对数据进行处理得到布控结果之前,该方法还包括:所述流式大数据计算模块根据所述数据源对所述布控任务进行分流。本发明实施例提出了一种数据处理装置,包括以下模块至少之一:监控采集模块,用于根据预先配置的数据源的资源配置信息从数据源采集数据,将采集的数据推送至流式大数据计算模块;业务模块,用于定义布控任务;所述流式大数据计算模块,用于缓存所述数据;根据所述布控任务和预先配置的数据源的元数据的数据结构对所述数据进行处理得到布控结果,将所述布控结果推送至内存数据库指定频道;存储模块,用于将所述布控结果存储至内存数据库指定频道。本发明实施例提出了一种数据处理装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令被所述处理器执行时,实现上述任一种数据处理方法的至少一个步骤。本发明实施例提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种数据处理方法的至少一个步骤。本发明实施例提出了一种数据处理系统,包括:监控采集模块,用于根据预先配置的数据源的资源配置信息从数据源采集数据,将采集的数据推送至流式大数据计算模块;业务模块,用于定义布控任务;所述流式大数据计算模块,用于缓存所述数据;根据所述布控任务和预先配置的数据源的元数据的数据结构对所述数据进行处理得到布控结果,将所述布控结果推送至内存数据库指定频道;存储模块,用于将所述布控结果存储至内存数据库指定频道。本发明实施例包括:监控采集模块根据预先配置的数据源的资源配置信息从数据源采集数据,将采集的数据推送至流式大数据计算模块;业务模块定义布控任务;所述流式大数据计算模块根据所述布控任务和预先配置的数据源的元数据的数据结构对所述数据进行处理得到布控结果,将所述布控结果推送至内存数据库指定频道。本发明实施例的监控采集模块基于数据源的资源配置信息实现了与数据源的快速对接,并基于布控任务和流式大数据计算模块实现了对数据的高效处理和分析。本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例而了解。本发明实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本发明实施例技术方案的进一步理解,并且构成说明书的一部分,与本发明实施例的实施例一起用于解释本发明实施例的技术方案,并不构成对本发明实施例技术方案的限制。图1为本发明实施例数据处理方法的流程图;图2为本发明实施例数据处理系统的结构组成示意图;图3为本发明实施例数据处理系统的详细结构组成示意图。具体实施方式下文中将结合附图对本发明实施例进行详细说明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。参见图1,本发明一个实施例提出了一种数据处理方法,包括:步骤100、监控采集模块根据预先配置的数据源的资源配置信息从数据源采集数据,将采集的数据推送至流式大数据计算模块。在本发明另一个实施例中,从数据源采集数据之前,该方法还包括:所述业务模块配置所述数据源的资源配置信息;其中,所述资源配置信息包括:资源接口和资源路径。例如,数据源的资源接口包括但不限于以下至少之一:数据库(db,database)、文件传输协议(ftp,filetransferprotocol)、hadoop分布式文件系统(hdfs,hadoopdistributedfilesystem)。表1为本发明实施例数据源的资源配置信息的一个示例。如表1所示,监控采集模块根据资源接口能够快速的接入数据源,基于资源路径能够快速的定位需要采集的数据。表1在本发明实施例中,监控采集模块通过监控采集进程从数据源采集数据,每一个数据源对应一个监控采集进程,如图3所示。本发明实施例的监控采集模块具有高可靠性(进行事务性的数据传递保证数据可靠性)和高可用性。其中,高可靠性是指:(1)使用独立的事务传送数据,只有当数据成功提交后,原始数据才会被标识为完成;(2)可分布式部署,当一个节点出现故障时,数据能够被传送到其他节点而不会丢失;(3)提供多种数据可靠性选项(由强到弱):使用磁盘数据和接收端确认字符(ack,acknowledgement)方式;接收端不可用时,将数据写到本地,待恢复后继续发送;数据发送至接收端,不做任何服务质量(qos,qualityofservice)保证;高可用性是指:(1)配置简单,只需要配置数据接入方式、管道传输方式、数据接出方式(该实例中固定为kafka);(2)支持各种类型的数据源接入和接出;(3)底层架构由顶层架构统一管理,便于系统监控和维护;可分布式部署,有zookeeper进行管理和负载均衡。在本发明实施例中,流式大数据计算模块包括高速消息队列和计算引擎模块。监控采集模块将采集的数据推送至流式大数据计算模块的高速消息队列。其中,高速消息队列可以采用多种高速消息队列组件来实现。例如,可以采用kafka组件(不限于kafka组件,可采用其他高速消息队列组件),高速消息队列作为一个分布式数据流处理中间系统,能以每秒几百兆的效率提供高速吞吐,满足了大数据的处理效率,在平衡采集和计算上是不可或缺的角色。kafka消息系统由发布者(producer)、代理(broker)和订阅者(consumer)构成,分别位于不同的节点上,各部分间通过消息进行数据传输,其中,发布者可以向一个主题(topic)推送相关消息,订阅者以组为单位,可以关注并拉取自己感兴趣的消息。在本发明实施例中,监控采集模块可以认为是发布者,高速消息队列可以认为是代理,计算引擎可以认为是订阅者(本实施例中为sparkstreaming)。监控采集模块将采集的数据推送至高速消息队列中,不同类型的数据源消息流可以对应不同的topic定义,不同topic的逻辑处理相对独立。步骤101、业务模块定义布控任务。在本发明实施例中,布控任务包括:布控任务基本信息、布控对象信息和布控维度,所述布控维度包括布控算法。其中,布控任务基本信息包括布控任务起始时间。可选的,布控任务基本信息还包括布控任务结束时间或其他与布控任务相关的基本信息。布控对象信息用于标识追踪的对象,如人的名称等,可以自定义。可选的,布控维度还包括以下至少之一:数据源、字段。其中,布控算法包括以下至少之一:算法库提供的通用算法、扩展算法;其中,在公安常见的场景案例中,最常用的布控算法是对轨迹类的数据进行分析筛选,筛选布控对象是否出现在轨迹类数据中,并筛选重点字段进行预警展示。例如,字符串全局匹配算法是指将某个布控对象的布控维度中定义的值与数据流进行字符串匹配,当数据流中包含布控维度中定义的值时,捕获该条数据流作为布控结果输出。又如,指定字段匹配算法是指将某个布控对象的布控维度中定义的值与数据流的某个字段进行字符串匹配,当数据流的某个字段中包含布控维度中定义的值时,捕获该条数据流作为布控结果输出。当采用指定字段匹配算法时,布控维度中还需要包含匹配的字段。当在实际应用中通用算法不能满足需求时,算法库可按需扩展,扩展算法包括以下至少之一:代码类自定义算法、函数依赖类算法、正则规则类算法。其中,代码类自定义算法可通过上传实现该自定义算法的jar包来实现算法的自定义;函数依赖类算法如通过用户输入存在关联的两个字段以及两个字段之间的关联关系来实现算法的扩展;正则规则类算法如通过用户输入正则表达式来实现算法的扩展。本发明实施例通过对布控算法的扩展提高了系统的可扩展性,从而满足特色场景的需要。步骤102、流式大数据计算模块根据所述布控任务和预先配置的数据源的元数据的数据结构对数据进行处理得到布控结果,将所述布控结果推送至内存数据库指定频道。在本发明实施例中,流式大数据计算模块的计算引擎模块根据预先配置的数据源的元数据的数据结构解析高速消息队列中的数据,根据布控任务对解析的数据进行处理得到布控结果。在本发明另一个实施例中,流式大数据计算模块的计算引擎模块根据预先配置的数据源的元数据的数据结构解析高速消息队列中的数据之前,该方法还包括:业务模块配置数据源的元数据的数据结构。在本发明实施例中,当数据源中的数据以表格的形式存储时,元数据的数据结构包括:字段内容、字段顺序、输出字段。例如,表2为数据源的元数据的数据结构的一个示例。监控采集模块基于数据源的元数据的数据结构能够快速的采集资源路径下的数据。表2在本发明实施例中,流式大数据计算模块根据所述布控任务基本信息采用所述布控算法匹配数据,将匹配成功的数据作为所述布控结果输出。具体的,流式大数据计算模块的计算引擎模块根据布控任务基本信息采用布控算法匹配高速消息队列中的数据,将匹配成功的数据作为布控结果输出。例如,当布控任务基本信息包含布控任务开始时间时,计算引擎模块从布控任务开始时间开始采用布控算法匹配数据,将匹配成功的数据作为布控结果输出。当布控任务基本信息包含布控任务开始时间和结束时间时,计算引擎模块在布控任务开始时间和结束时间这一时间段内采用布控算法匹配数据,将匹配成功的数据作为布控结果输出。当布控维度不包括数据源时,计算引擎模块采用布控算法匹配从所有数据源采集的数据;当布控维度包括数据源时,计算引擎模块采用布控算法匹配从布控维度中的数据源采集的数据。本发明实例中计算引擎模块可以采用多种组件实现。例如,可以采用sparkstreaming组件(不限于sparkstreaming组件)。在本发明实施例中,布控结果的数据结构可以采用如表3所示的数据结构,当然也可以采用其他的数据结构,本发明实施例对此不作限定。表3在本发明另一个实施例中,流式大数据计算模块根据布控任务对数据进行处理得到布控结果之前,该方法还包括:流式大数据计算模块根据所述数据源对所述布控任务进行分流。具体的,流式大数据计算模块的计算引擎模块根据数据源对布控任务进行分流。也就是说,计算引擎模块可以采用多个节点实现数据的匹配,每一个节点匹配从一个数据源采集的数据,各个节点将匹配结果推送到内存数据库的指定频道。在本发明另一个实施例中,该方法还包括:所述业务模块订阅所述内存数据库指定频道,接收指定频道推送的订阅消息以获取所述内存数据库指定频道的数据。业务模块可以通过指定频道的订阅可以实时感知并展示布控结果。在本发明另一个实施例中,业务模块定时对内存数据库中的数据进行转储,例如,将内存数据库中的数据存储到关系数据库或搜索引擎等,以供用户对历史结果的查询与分析。本发明实施例的监控采集模块基于数据源的资源配置信息实现了与数据源的快速对接,监控采集模块不需要了解数据源的元数据的数据结构即可快速采集数据源的数据,并基于布控任务和流式大数据计算模块实现了对数据的高效处理和分析。本发明实施例在通过对数据源配置对接后,海量的流式数据通过分布式、高可靠、高吞吐、高并发的监控采集模块与流式大数据计算框架处理,大大提高了流式数据高实时性要求的响应速度,并在一定程度上提高了数据处理分析的精确度。本发明实施例提出的方法同上具有较高的可推广性。示例本示例中,该方法包括:步骤1、针对某案件嫌疑人a实行布控,需要监控该嫌疑人(布控对象)的日常轨迹信息。已知该嫌疑人以下信息:身份证号,车辆号牌,手机号码等。.几个新数据源需列入布控:网吧上网信息(hdfs),卡口过车记录(oracle),旅馆入住信息(mysql),手机通话记录(ftp)。步骤2、业务模块配置数据源的资源接口,如表4所示。数据源类型接口名称接口定义hdfshdfs_01hdfs://ip:9000oracleoracle_02db://ip:1521/oracle32#oraclemysqlmysql_03db://ip:3306/test#mysqlftpftp_04ftp://ip:21表4各类型数据资源接口细节定义不尽相同,此处不作详细说明。步骤3、业务模块配置数据源的资源路径,如表5所示。表5步骤4、业务模块配置数据源的元数据的数据结构,如表6所示。表6步骤5、业务模块进行算法库管理。算法库中包括通用算法,在实际应用中通用算法不能满足需求时,算法库可按需扩展算法,扩展的算法包括以下至少之一:代码类自定义算法、函数依赖类算法、正则规则类算法。步骤6、业务模块定义布控任务,如表7所示。表7按算法,可选择某一数据源(某字段),也可不选择数据源(即对所有数据源进行匹配)。步骤7、监控采集模块根据数据源的资源接口和资源路径,即时采集数据源的数据,并推送至kafka;kafka按数据源定义topic,按上述情况生成4个topic:topic1:t_zyk_rk_wbswrytopic2:t_veh_kk_passrectopic3:t_qb_lg_ry_cguesttopic4:t_za_xtba_ry_ph_thjlsparkstreaming中按照业务模块定义的布控任务生成相应的后台任务,sparkstreaming从kafka中消费所有topic,并按topic进行分流,根据元数据的数据结构解析topic中的数据流;sparkstreaming任务调用算法进行逻辑运算,结合数据源输出定义将实时布控结果进行推送;实时布控结果推送至内存数据库,应用进程订阅内存数据库的指定频道,可实时感知布控结果并进行展示;应用进程将内存数据库数据定时转储至关系数据库或搜索引擎(内存数据库中仅保留最新的预设条数据),以供历史布控结果的查询或者作二次分析使用(例如生成嫌疑人轨迹图、研判分析等等,此处不作进一步描述)。本发明另一个实施例提出了一种数据处理装置,包括以下模块至少之一:监控采集模块202,用于根据预先配置的数据源201的资源配置信息从数据源采集数据,将采集的数据推送至流式大数据计算模块;业务模块204,用于定义布控任务;所述流式大数据计算模块203,用于缓存所述数据;根据所述布控任务和预先配置的数据源201的元数据的数据结构对所述数据进行处理得到布控结果,将所述布控结果推送至内存数据库指定频道;存储模块205,用于将所述布控结果存储至内存数据库指定频道。在本发明另一个实施例中,业务模块204还用于:配置所述数据源201的资源配置信息和数据源的元数据的数据结构;其中,所述资源配置信息包括:资源接口和资源路径。在本发明另一个实施例中,业务模块204还用于:订阅所述内存数据库指定频道,接收指定频道推送的订阅消息以获取所述内存数据库指定频道的数据。在本发明另一个实施例中,布控任务包括:布控任务基本信息、布控对象信息和布控维度,所述布控维度包括布控算法;流式大数据计算模块203具体用于:缓存所述数据;根据所述元数据的数据结构解析所述数据,根据所述布控任务基本信息采用所述布控算法匹配解析的数据,将匹配成功的数据作为所述布控结果输出,将所述布控结果推送至内存数据库指定频道。在本发明另一个实施例中,流式大数据计算模块203还用于:根据所述数据源对所述布控任务进行分流。本发明另一个实施例提出了一种数据处理装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令被所述处理器执行时,实现上述任一种数据处理方法的至少一个步骤。本发明另一个实施例提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种数据处理方法的至少一个步骤。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。参见图2,本发明另一个实施例提出了一种数据处理系统,包括:监控采集模块202,用于根据预先配置的数据源201的资源配置信息从数据源采集数据,将采集的数据推送至流式大数据计算模块;业务模块204,用于定义布控任务;所述流式大数据计算模块203,用于缓存所述数据;根据所述布控任务和预先配置的数据源的元数据的数据结构对所述数据进行处理得到布控结果,将所述布控结果推送至内存数据库指定频道;存储模块205,用于将所述布控结果存储至内存数据库指定频道。本发明实施例中的监控采集模块202、业务模块204、流式大数据计算模块203、存储模块205可以设置在一个节点中,也可以设置在不同的节点中,也可以通过多个节点来实现,或者通过集群来实现。在本发明另一个实施例中,流式大数据计算模块203包括高速消息队列和计算引擎模块;高速消息队列,用于缓存所述数据;计算引擎模块,用于根据所述元数据的数据结构解析所述数据,根据所述布控任务对解析的数据进行处理得到布控结果,将所述布控结果推送至内存数据库指定频道。在本发明实施例中,一个高速消息队列可以采用一个节点来实现,一个高速消息队列用于缓存一个数据源的数据。计算引擎模块可以采用一个节点来实现,或者采用一个集群来实现。一个节点实现对一个数据源的数据进行处理。在本发明另一个实施例中,业务模块204还用于:配置所述数据源201的资源配置信息和数据源的元数据的数据结构;其中,所述资源配置信息包括:资源接口和资源路径。在本发明另一个实施例中,业务模块204还用于:订阅所述内存数据库指定频道,接收指定频道推送的订阅消息以获取所述内存数据库指定频道的数据。在本发明另一个实施例中,布控任务包括:布控任务基本信息、布控对象信息和布控维度,所述布控维度包括布控算法;流式大数据计算模块203具体用于:缓存所述数据;根据所述元数据的数据结构解析所述数据,根据所述布控任务基本信息采用所述布控算法匹配解析的数据,将匹配成功的数据作为所述布控结果输出,将所述布控结果推送至内存数据库指定频道。在本发明另一个实施例中,流式大数据计算模块203还用于:根据所述数据源对所述布控任务进行分流。也就是说,计算引擎模块采用多个节点来实现,计算引擎模块的一个节点用于处理一个数据源的数据。虽然本发明实施例所揭露的实施方式如上,但所述的内容仅为便于理解本发明实施例而采用的实施方式,并非用以限定本发明实施例。任何本发明实施例所属领域内的技术人员,在不脱离本发明实施例所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明实施例的专利保护范围,仍须以所附的权利要求书所界定的范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1