一种用于对大数据进行处理的方法及系统与流程

文档序号:20917838发布日期:2020-05-29 13:45阅读:213来源:国知局
一种用于对大数据进行处理的方法及系统与流程

本发明涉及大数据处理与应用技术领域,更具体地,涉及一种用于对大数据进行处理的方法及系统。



背景技术:

省级粮食管理平台是国家比较重视的一项信息化建设项目,随着省级平台完工的省份越来越多,平台逐步也要加入其他的综合决策的统计功能,其中对接国家局数据,将国家局系统中通过报表填报的数据通过互联网的形式,从国家局系统传到各个省级平台,使得省局领导可以实时看到本省的粮食收储,保管,物流等各个环节的数据,对做出正确的决策有着非常重要的作用。目前,国家局要求全国各省的粮食监管平台要与国家局进行网络物流互联互通,并且接口必须暴露在互联网上以便可以通过web服务的方式进行数据的通信。如图2所示。

国家局接口文档中规定从国家局到各个省平台的接口一共13个,其中重要的业务数据有:加工转换信息接口,收支平衡月报表数据接口,价格监测信息数据接口,加工转换信息接口是填报各类企业的经济指标,产品产量指标等数据,收支平衡月报表是记录库存变化情况的数据,包含期初库存,省内购进,省外购进,进口,轮出,期末库存等等。价格监测信息数据接口是记录不同品种,不同性质,不同等级的价格数据,包含不同的地区。通常一个省级下面有60个到100个填报点,通常一天会填报一次价格,库存数据。企业的经济指标以及产品产量指标基本上一年填报一次。

问题1:由于数据量太大,造成某些统计页面初始化需要很久才可以展现出来。客户不能接受这样的速度,所以在系统架构上需要解决此问题。

问题2:由于省里面六十多个填报点,填报的数据有的时候是非法数据,比如说空字符,以及是不合法的数字,会造成统计汇总的时候数据的真实,需要整理这些数值数据。

因此,需要一种数据,以实现对大数据进行处理。



技术实现要素:

本发明技术方案提供一种用于对大数据进行处理的方法及系统,以解决如何对大数据进行处理的问题。

为了解决上述问题,本发明提供了一种用于对大数据进行处理的方法,所述方法包括:

在大数据处理系统的框架中设置定时器任务,所述定时器任务用于根据设定的时间执行任务;

当所述定时器任务设置完成后,将所述定时器任务分别注入清洗筛选定时器线程和统计数据计算定时器线程;

通过所述清洗筛选定时器线程按照所述定时器任务设定的时间对待清洗数据进行清洗,获取清洗后的合法数据;

通过所述统计数据定时器线程按照所述定时器任务设定的时间对目标数据的统计业务进行统计,将统计后的统计数值进行缓存,缓存中的所述目标数据的统计数值用于直接调用。

优选地,所述通过所述清洗筛选定时器线程按照所述定时器任务设定的时间对待清洗数据进行清洗,获取清洗后的合法数据,包括:

所述清洗筛选定时器线程,根据待清洗数据的种类,为所述待清洗数据建立接口;

所述为所述待清洗数据建立接口包括:查询所述待清洗数据是否有非法字符,以及将查询到的所述待清洗数据中非法字符进行处理。

优选地,所述查询所述待清洗数据是否有非法字符,以及将查询到的所述待清洗数据中非法字符进行处理,包括:

查询所述待清洗数据是否会出现0、负数或者为空;

以及将查询到的所述待清洗数据中非法字符的按处理规则进行处理。

优选地,所述通过所述统计数据定时器线程按照所述定时器任务设定的时间对目标数据的统计业务进行统计,还包括:

通过在数据库表中增加用于统计业务的字段,所述统计业务包括:总量、增量或百分比;

通过更新sql文件的方式,对所述统计业务的字段进行赋值,生成所述统计业务的统计数值。

优选地,所述将统计后的统计数值进行缓存,所述缓存中的统计数值用于直接调用:

将所述将统计后的统计数值利用远程字典服务redis进行缓存;

所述远程字典服务redis中的统计数值用于直接调用。

基于本发明的另一方面,提供一种用于对大数据进行处理的系统,所述系统包括:

设置单元,用于在大数据处理系统的框架中设置定时器任务,所述定时器任务用于根据设定的时间执行任务;

注入单元,用于当所述定时器任务设置完成后,将所述定时器任务分别注入清洗筛选定时器线程和统计数据计算定时器线程;

清洗单元,用于通过所述清洗筛选定时器线程按照所述定时器任务设定的时间对待清洗数据进行清洗,获取清洗后的合法数据;

统计单元,用于通过所述统计数据定时器线程按照所述定时器任务设定的时间对目标数据的统计业务进行统计,将统计后的统计数值进行缓存,缓存中的所述目标数据的统计数值用于直接调用。

优选地,所述清洗单元用于通过所述清洗筛选定时器线程按照所述定时器任务设定的时间对待清洗数据进行清洗,获取清洗后的合法数据,还用于:

所述清洗筛选定时器线程,根据待清洗数据的种类,为所述待清洗数据建立接口;

所述为所述待清洗数据建立接口包括:查询所述待清洗数据是否有非法字符,以及将查询到的所述待清洗数据中非法字符进行处理。

优选地,所述清洗单元用于查询所述待清洗数据是否有非法字符,以及将查询到的所述待清洗数据中非法字符进行处理,还用于:

查询所述待清洗数据是否会出现0、负数或者为空;

以及将查询到的所述待清洗数据中非法字符的按处理规则进行处理。

优选地,所述统计单元用于通过所述统计数据定时器线程按照所述定时器任务设定的时间对目标数据的统计业务进行统计,还用于:

通过在数据库表中增加用于统计业务的字段,所述统计业务包括:总量、增量或百分比;

通过更新sql文件的方式,对所述统计业务的字段进行赋值,生成所述统计业务的统计数值。

优选地,所述统计单元用于将统计后的统计数值进行缓存,所述缓存中的统计数值用于直接调用:

将所述将统计后的统计数值利用远程字典服务redis进行缓存;

所述远程字典服务redis中的统计数值用于直接调用。

本发明技术方案提供一种用于对大数据进行处理的方法及系统,其中方法包括:在大数据处理系统的框架中设置定时器任务,定时器任务用于根据设定的时间执行任务;当定时器任务设置完成后,将定时器任务分别注入清洗筛选定时器线程和统计数据计算定时器线程;通过清洗筛选定时器线程按照定时器任务设定的时间对待清洗数据进行清洗,获取清洗后的合法数据;通过统计数据定时器线程按照定时器任务设定的时间对目标数据的统计业务进行统计,将统计后的统计数值进行缓存,缓存中的目标数据的统计数值用于直接调用。本发明技术方案利用多线程技术以及redis缓存技术,解决了输入不合法数据以及数据访问速度过慢的问题,增强了系统的性能,提高了系统的可用性、易用性、可测试性和可维护性;本发明技术方案利用的对象设计模式,使程序符合了迪米特法则,在应用上,使得领导更快地了解大数据各方面的动态,对进行最后决策起着关键的作用。

附图说明

通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:

图1为根据本发明优选实施方式的一种用于对大数据进行处理方法流程图;

图2为根据本发明优选实施方式的粮食数据管理平台系统结构图;

图3为根据本发明优选实施方式的大数据处理系统的初始化流程示意图;以及

图4为根据本发明优选实施方式的一种用于对大数据进行处理的系统结构图。

具体实施方式

现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。

除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。

图1为根据本发明优选实施方式的一种用于对大数据进行处理方法流程图。本申请以国家局的粮食数据为例进行举例说明,由于国家局粮食数据的数据量巨大,造成某些统计页面初始化需要很久才可以展现出来。客户应用非常不便捷。另外,由于省里面多个粮食数据填报点,填报的数据有的时候是非法数据,比如说空字符,以及是不合法的数字,会造成统计汇总的时数据的统计结果的不真实,需要整理这些数值数据。本申请实施方式提供一种用于对大数据进行处理的方法,方法包括:

优选地,在步骤101:在大数据处理系统的框架中设置定时器任务,定时器任务用于根据设定的时间执行任务。本申请的各个省级监管平台服务器各准备一台redis服务器,保证网络互联互通。本申请在spring容器中注入quartz定时器任务,注入连个定时器,一个是清洗筛选数据定时器线程,一个是统计数据计算定时器线程,例如设置为一天启动一次。

优选地,在步骤102:当定时器任务设置完成后,将定时器任务分别注入清洗筛选定时器线程和统计数据计算定时器线程。

优选地,在步骤103:通过清洗筛选定时器线程按照定时器任务设定的时间对待清洗数据进行清洗,获取清洗后的合法数据。优选地,通过清洗筛选定时器线程按照定时器任务设定的时间对待清洗数据进行清洗,获取清洗后的合法数据,包括:清洗筛选定时器线程,根据待清洗数据的种类,为待清洗数据建立接口;为待清洗数据建立接口包括:查询待清洗数据是否有非法字符,以及将查询到的待清洗数据中非法字符进行处理。优选地,查询待清洗数据是否有非法字符,以及将查询到的待清洗数据中非法字符进行处理,包括:查询待清洗数据是否会出现0、负数或者为空;以及将查询到的待清洗数据中非法字符的按处理规则进行处理。

本申请中国家局的粮食数据是从各省的60多个填报点上来的数据,数据的格式,数据的真实性得不到有效地保障,有的时候比如:价格或者库存数量,会出现0,负数,甚至是空,粮食品种编码可能是空等等,这些非法字符会影响汇总统计的结果,所以要对这些数据进行清洗筛查,这些数据是通过web服务定时从国家局平台抽取下来的,那我们就需要定时将这些数据进行清洗整理,如何去清理,需要根据处理规则,不同情况有不同的处理,比如:如果有品种是空字符的情况,那么就需要默认为“小麦”,如果数量有0,或者负数的情况就需要将这些数据删除掉等等,对非法处理的处理方法都是按照预先设计的处理规则进行处理,本申请的数据清理是按照定时器任务设定的时间进行操作。本申请的清洗筛选定时器线程,需要确定筛选的种类,为清理动作建立一个接口,凡是需要清洗的业务需要实现这个接口,这样可以提高可扩展性,符合迪米特法则,接口需要有两个抽象方法一个是查询是否有非法字符,另一个是处理非法字符。

优选地,在步骤104:通过统计数据定时器线程按照定时器任务设定的时间对目标数据的统计业务进行统计,将统计后的统计数值进行缓存,缓存中的目标数据的统计数值用于直接调用。优选地,通过统计数据定时器线程按照定时器任务设定的时间对目标数据的统计业务进行统计,还包括:通过在数据库表中增加用于统计业务的字段,统计业务包括:总量、增量或百分比;通过更新sql文件的方式,对统计业务的字段进行赋值,生成统计业务的统计数值。优选地,将统计后的统计数值进行缓存,缓存中的统计数值用于直接调用:将将统计后的统计数值利用远程字典服务redis进行缓存;远程字典服务redis中的统计数值用于直接调用。本申请通过统计数据定时器线程将提前做出统计结果并将统计结果缓存在redis中进行解决,按定时器任务设计的时间每天进行一次结果统计,并且将统计结果缓存在redis中进行缓存,当用户需要查看统计结果的时候,将已缓存的统计结果直接返回给用户,就节省了大部分的时间,提高了用户的满意度。统计数据计算线程,整理需要统计的业务,将数据库表中增加统计后的字段,比如说:总量,增量,百分比等等,利用更新sql文的方式,对新增字段进行赋值操作,并且将统计数值存入redis缓存,当用户访问统计页面的时候,系统就不需要重新计算数据,直接自动将存储在redis中的统计数值数据直接返回,这样大大提高了性能,也缩短了用户的等待时间,提高了系统的易用性。需要补充的是,操作redis的业务中间类独立出来,利用springaop特性,切面方式将redis中间类注入统计业务的servcie类中,方便插拔式管理。提高了系统的灵活性。

本申请使用spring作为基础开发框架,在此框架中,利用quartz的技术,quartz是opensymphony开源组织在jobscheduling领域又一个开源项目,由java开发,用来执行定时任务,可以和spring框架进行无缝衔接。本申请在各个省级监管平台服务器上搭建一个redis缓存服务器,redis是一个key-value存储系统,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

本申请当spring初始化完毕的时候,quartz清洗数据线程,统计数据线程就此开启,这是两个定时器线程,到了相应的时间后,自动执行任务。如图3所示。

本申请加入清洗筛选线程的时候,必须使用接口类统一筛选的标准,这样一来,如果后期在需要加入其它筛选规则的时候,就不需要修改源程序,直接添加相应的类实现该接口即可,符合了迪米特法则,对修改关闭对扩展开放。大大提高了程序的可扩展性。本申请加入统计数据计算线程的时候,需要把redis操作类独立起来,通过aop方式进行集成,这样实现了可插拔,提高了程序的可维护性,可扩展性,可测试性。

本申请利用多线程技术以及redis缓存技术,增强了系统的性能,可用性,易用性,可测试性,可维护性,利用的对象设计模式,使程序符合了迪米特法则,在应用上,使得领导更快地了解粮食各方面的动态,对进行最后决策起着关键的作用。

图4为根据本发明优选实施方式的一种用于对大数据进行处理的系统结构图。如图4所示,本申请提供一种用于对大数据进行处理的系统,系统包括:

设置单元401,用于在大数据处理系统的框架中设置定时器任务,定时器任务用于根据设定的时间执行任务。本申请的各个省级监管平台服务器各准备一台redis服务器,保证网络互联互通。本申请在spring容器中注入quartz定时器任务,注入连个定时器,一个是清洗筛选数据定时器线程,一个是统计数据计算定时器线程,例如设置为一天启动一次。

注入单元402,用于当定时器任务设置完成后,将定时器任务分别注入清洗筛选定时器线程和统计数据计算定时器线程;

清洗单元403,用于通过清洗筛选定时器线程按照定时器任务设定的时间对待清洗数据进行清洗,获取清洗后的合法数据。优选地,清洗单元403用于通过清洗筛选定时器线程按照定时器任务设定的时间对待清洗数据进行清洗,获取清洗后的合法数据,还用于:清洗筛选定时器线程,根据待清洗数据的种类,为待清洗数据建立接口;为待清洗数据建立接口包括:查询待清洗数据是否有非法字符,以及将查询到的待清洗数据中非法字符进行处理。优选地,清洗单元403用于查询待清洗数据是否有非法字符,以及将查询到的待清洗数据中非法字符进行处理,还用于:查询待清洗数据是否会出现0、负数或者为空;以及将查询到的待清洗数据中非法字符的按处理规则进行处理。

本申请中国家局的粮食数据是从各省的60多个填报点上来的数据,数据的格式,数据的真实性得不到有效地保障,有的时候比如:价格或者库存数量,会出现0,负数,甚至是空,粮食品种编码可能是空等等,这些非法字符会影响汇总统计的结果,所以要对这些数据进行清洗筛查,这些数据是通过web服务定时从国家局平台抽取下来的,那我们就需要定时将这些数据进行清洗整理,如何去清理,需要根据处理规则,不同情况有不同的处理,比如:如果有品种是空字符的情况,那么就需要默认为“小麦”,如果数量有0,或者负数的情况就需要将这些数据删除掉等等,对非法处理的处理方法都是按照预先设计的处理规则进行处理,本申请的数据清理是按照定时器任务设定的时间进行操作。本申请的清洗筛选定时器线程,需要确定筛选的种类,为清理动作建立一个接口,凡是需要清洗的业务需要实现这个接口,这样可以提高可扩展性,符合迪米特法则,接口需要有两个抽象方法一个是查询是否有非法字符,另一个是处理非法字符。

统计单元404,用于通过统计数据定时器线程按照定时器任务设定的时间对目标数据的统计业务进行统计,将统计后的统计数值进行缓存,缓存中的目标数据的统计数值用于直接调用。优选地,统计单元404用于通过统计数据定时器线程按照定时器任务设定的时间对目标数据的统计业务进行统计,还用于:通过在数据库表中增加用于统计业务的字段,统计业务包括:总量、增量或百分比;通过更新sql文件的方式,对统计业务的字段进行赋值,生成统计业务的统计数值。优选地,统计单元404用于将统计后的统计数值进行缓存,缓存中的统计数值用于直接调用:将将统计后的统计数值利用远程字典服务redis进行缓存;远程字典服务redis中的统计数值用于直接调用。本申请通过统计数据定时器线程将提前做出统计结果并将统计结果缓存在redis中进行解决,按定时器任务设计的时间每天进行一次结果统计,并且将统计结果缓存在redis中进行缓存,当用户需要查看统计结果的时候,将已缓存的统计结果直接返回给用户,就节省了大部分的时间,提高了用户的满意度。统计数据计算线程,整理需要统计的业务,将数据库表中增加统计后的字段,比如说:总量,增量,百分比等等,利用更新sql文的方式,对新增字段进行赋值操作,并且将统计数值存入redis缓存,当用户访问统计页面的时候,系统就不需要重新计算数据,直接自动将存储在redis中的统计数值数据直接返回,这样大大提高了性能,也缩短了用户的等待时间,提高了系统的易用性。需要补充的是,操作redis的业务中间类独立出来,利用springaop特性,切面方式将redis中间类注入统计业务的servcie类中,方便插拔式管理。提高了系统的灵活性。

已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。

通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。

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