数据处理方法、装置、设备及存储介质与流程

文档序号:33319207发布日期:2023-03-03 19:09阅读:30来源:国知局
1.本技术涉及计算机
技术领域
:,更具体地,涉及一种数据处理方法、装置、设备及存储介质。
背景技术
::2.目前,随着互联网技术的不断发展,对实时业务数据总量的回溯计算要求也不断提高。用户通常需要回溯一段时长内某种业务数据的数据量(如,某种疾病的患病数量,某种产品的销售数据,某个业务平台的登录数量以及某种广告的点击数量等),以进行数据分析。由于在回溯过程中,会不断产生新的数据,因此,现有技术中是将历史业务数据和新的业务数据按照生成时间先后顺序存放至消息队列中,以利用实时流的计算方式进行计算,得到最终的需要回溯的业务数据的数据总量。但是现有技术中在需要回溯的数据量过大时,存在数据处理效率低下,且操作复杂的问题。技术实现要素:3.有鉴于此,本技术实施例提出了一种数据处理方法、装置、设备及存储介质,能够有效提高数据处理的效率和便捷性。4.第一方面,本技术实施例提供了一种数据处理方法,所述方法包括:获取消息队列中存储的实时业务数据;根据内存中存储的目标数据量以及所述实时业务数据,获得与目标维度信息对应的数据总量,所述目标数据量为预先获取的与所述目标维度信息对应的历史业务数据的数据量;根据所述目标维度信息对应的数据总量更新所述内存中与所述目标维度信息对应的历史业务数据的数据量。5.第二方面,本技术实施例提供了一种数据处理装置,所述装置包括:数据获取模块、数据总量获得模块以及数据量更新模块。数据获取模块,用于获取消息队列中存储的实时业务数据;数据总量获得模块,用于根据内存中存储的目标数据量以及所述实时业务数据,获得与目标维度信息对应的数据总量,所述目标数据量为预先获取的与所述目标维度信息对应的历史业务数据的数据量;数据量更新模块,用于根据所述目标维度信息对应的数据总量更新所述内存中与所述目标维度信息对应的历史业务数据的数据量。6.在一种可能的实施方式中,所述数据处理装置还包括数据量获得模块和第一存储模块。数据量获得模块,用于根据历史全量业务数据获得每种维度信息对应的历史业务数据的数据量;第一存储模块,用于将每种维度信息对应的历史业务数据的数据量存储至存储设备,其中,每种维度信息对应的历史业务数据的数据量包括所述目标维度信息对应的历史业务数据的数据量,所述内存中存储的目标数据量为预先由所述存储设备中获取的与所述目标维度信息对应的历史业务数据的数据量。7.在一种可能的实施方式中,数据量获得模块还用于对历史全量业务数据进行批处理计算,得到与每种维度信息分别对应的历史业务数据的数据量。8.在一种可能的实施方式中,第一存储模块还用于将每种维度信息对应的历史业务数据的数据量,以键值对的形式存储于所述分布式存储设备。9.在一种可能的实施方式中,所述历史全量业务数据为在指定时刻之前的采集的业务数据,数据获取模块还用于获取消息队列中存储的指定业务数据作为实时业务数据,所述指定业务数据的数据采集时刻在指定时刻之后。10.在一种可能的实施方式中,所述数据处理装置还包括第二存储模块,第二存储模块用于在内存中若未存储目标维度信息对应的历史业务数据的数据量时,从存储设备中获取与所述目标维度信息对应的历史业务数据的数据量,并存储至所述内存中。11.在一种可能的实施方式中,所述数据处理装置还包括确认模块,所述确认模块用于在所述内存中存储的与所述目标维度信息对应的标记值不为第一标记值时,确认所述内存中未存储有与目标维度信息对应的历史业务数据的数据量。12.在一种可能的实施方式中,数据总量获得模块包括数据量获得单元和数据融合单元。数据量获得单元,用于根据所述实时业务数据得到与所述目标维度信息对应的实时业务数据的数据量;数据融合单元,用于将所述目标维度信息对应的实时业务数据的数据量与所述目标维度信息对应的历史业务数据的数据量进行融合,得到与目标维度信息对应数据总量。13.在一种可能的实施方式中,所述数据处理装置还包括第一发送模块,用于向与所述内存关联的业务存储系统发送所述目标维度信息对应数据总量,以供查询。14.在一种可能的实施方式中,所述数据处理装置还包括第二发送模块,用于向存储设备发送所述目标维度信息对应数据总量,以使所述存储设备在接收到所述目标维度信息对应数据总量时,保存该数据总量和接收到该数据总量的接收时刻。15.第三方面,本技术实施例提供了一种电子设备,包括处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述处理器执行以实现上述的方法。16.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行上述的方法。17.第五方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质获取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的方法。18.本技术实施例提供的一种数据处理方法、装置、设备及存储介质,方法包括:获取消息队列中存储的实时业务数据,根据内存中存储的目标数据量以及所述实时业务数据,获得与目标维度信息对应的数据总量,其中,所述目标数据量为由存储设备中获取的与所述目标维度信息对应的历史业务数据的数据量;通过上述方法,可以实现在数据回溯过程中,仅对实时业务数据进行实时流处理,从而可以有效提高数据处理的效率和便捷性。附图说明19.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。20.图1示出了利用lambda架构进行数据处理的示意图;21.图2示出了利用kappa架构进行数据处理的示意图;22.图3示出了本技术实施例提供的一种数据处理方法的流程示意图;23.图4示出了利用本技术的数据处理方法进行数据处理的示意图;24.图5示出了本技术实施例提供的另一种数据处理方法的流程示意图;25.图6示出了本技术实施例提供的另一种数据处理方法的流程示意图;26.图7示出了本技术实施例提供的又一种数据处理方法的流程示意图;27.图8示出了本技术实施例提供的一种数据处理装置的连接框图;28.图9示出了用于执行本技术实施例的方法的电子设备的结构框图。具体实施方式29.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。30.随着计算机技术的发展,越来越多的领域会用到回溯一段时间内的业务数据的数据量以便进行数据分析,如,回溯某种疾病在一段时长内的患病数量和治愈数量,回溯某个平台在一段时间内的登录量或浏览该平台上的某个数据的浏览量,回溯某种商品的销售量和退货量等。目前,常用到回溯一段时间内的业务数据的方式有两种,一种是利用lambda架构进行数据处理,另一种是利用kappa架构进行数据处理。31.如图1所示,是利用lambda架构进行数据处理以回溯一段时间内的业务数据的数据量的示意图,在利用lambda架构进行数据处理时,消息队列会将接收到的数据分别传送至实时流计算框架和批处理计算框架,以在实时流计算框架中计算得到当天的业务数据量以及在批处理框架中计算历史业务数据量,在完成计算后,将实时流计算框架和批处理框架中的数据分别传输至存储系统中去计算得到最终的结果,在lambda架,当需要计算第t天的业务数据的数据总量时,由于批处理计算是每天都需要执行的,若由每天的9:00开始进行批处理计算,则可能到12:00还未计算完成要到13:00才能完成计算,则上午视角的业务数据的数据量=(t-2)批处理计算得到的数据量+(t-1)实时流计算天级增量+(t)实时流计算天级增量,而下午视角的业务数据的数据量=(t-1)批处理计算历史总量+(t)实时流计算天级增量。基于上述分析可知,采用批处理计算和实时流计算两份代码可能由多人维护开发,因此容易造成计算结果不一致。批处理计算虽然可以实现复杂的数据加工逻辑,而实时流计算通常加工简单的计算逻辑,但是技术上难以对齐,因此计算结果容易出现差异,且计算过程复杂计算效率低下。32.如图2所示,是利用kappa架构进行数据处理以回溯一段时间内的业务数据的数据量的示意图,在kappa架构下,进行数据处理过程中,需要将需要历史业务数据和新的数据按照生成时间先后顺序存放至消息队列中得到需要输入至实时流计算框架的输入数据(input_topic),以使消息队列可以将数据依次批量发送至实时流计算框架(如将输入数据分批得到job_version_n以及job_version_n+1),以利用实时流的计算方式对输入至实时流计算的批量数据依次进行计算得到计算结果(即,得到与输入数据job_version_n对应的数据结果output_table_n和输入数据job_version_n+1对应的计算结果output_table_n+1)并依次将实时流计算框架针对批量发送的数据进行计算得到的计算结果发送至存储系统,最终得到的需要回溯的实时业务数据总量,上述计算过程中,若历史业务数据的数据量大,则消息队列需要占用大量的内存,且在将数据存储至消息队列进行计算时,计算效率低下。33.基于上述分析可知,现有技术中对业务数据的回溯计算时,存在计算效率低且计算过程复杂或需要消耗较多消息队列资源的问题。34.鉴于此,发明人提供了一种数据处理方法,方法包括:获取消息队列中存储的实时业务数据;根据内存中存储的目标数据量以及实时业务数据,获得与目标维度信息对应的数据总量,目标数据量为由存储设备中获取的与目标维度信息对应的历史业务数据的数据量;根据目标维度信息对应的数据总量更新内存中与目标维度信息对应的历史业务数据的数据量。35.通过采用本技术的方法,在进行计算时,仅需对消息队列中的实时业务数据采用实时流计算框架来计算,也即根据内存中存储的目标数据量以及实时业务数据,获得与目标维度信息对应的数据总量的过程实时流计算框架来计算(采用实时流代码来运行),因此,本技术相比于现有技术中采用lambda架构进行数据处理而言,本技术不需要考虑批处理计算代码和实时流计算代码两份代码逻辑的一致性,也无需同时维护和创建两份代码,因此人力成本可以节约50%左右,且本技术的数据处理方法适用于所有需要实时流计算业务历史总量数据的场景,同时,由于本技术不会用批处理计算的数据去替换实时流计算的数据,因此本技术的数据处理过程中,不会出现数据的抖动因此最终得到数据总量更可靠。36.此外,本技术相比于采用kappa架构进行数据处理而言,本技术无需用宝贵的消息队列资源保存历史业务数据,消息队列只需要保存数天的数据即可,由于消息队列的存储比批处理计算的存储资源珍贵很多,因此本技术可以节约大量的消息队列资源。37.基于上述可知,本技术仅需对消息队列中存储的实时业务数据利用实时流计算,也不需要考虑批处理计算代码和实时流计算代码两份代逻辑的一致性。因此,本技术的数据处理过程简单,且计算效率高,且无需占用太多的消息队列资源。38.应当理解,上述的数据处理方法可以在服务器或终端设备上运行。作为一种可选实施方式,上述的服务器或终端设备还可以作为区块链中的一个节点,本技术实施例公开的数据处理方法中用到的目标数据量和实时业务数据可保存于节点中,且数据处理方法具体可以由区块链中的一个或多个节点执行。39.区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。40.以下,首先对本技术涉及的技术术语进行介绍。41.消息队列,是指在消息的传输过程中保存消息的容器,其中,消息是指就传输的数据,可以是最简单的文本字符串,也可以是自定义的复杂格式(只要能按预定格式解析出来即可),是一种先进先出数据结构。它是存放消息的容器,消息从队尾入队,从队头出队,入队即发消息的过程,出队即收消息的过程。队列的主要目的是提供路由并保证消息的传递;一般情况下发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。消息队列中存储的数据有限,一般情况下,消息队列中可以保存数天的数据,也即消息队列通常仅用于保存数天的实时业务数据。42.内存,是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放cpu中的运算数据,与硬盘等外部存储器交换的数据。它是外存与cpu进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到cpu中进行运算,当运算完成,cpu将结果传送出来。43.维度信息,是指对业务数据按照类型、地域或生成方式等进行划分时的划分依据。例如,当需要回溯一段时间内不同癌症种类的患病人数,则维度信息可以包括肝癌、肺癌以及淋巴癌等;又例如,需要回溯一段时间内某一购物平台上不同种类的商品的购买量时,则维度信息可以包括日用品、食物以及衣物等;再例如,当需要回溯一段时间内不同省份某种流感的患病人数时,则维度信息可以包括四川、湖南、北京以及重庆等,又例如需要回溯一段时间内对某个商品广告的操作方式时,则维度信息可以包括点击、点赞、收藏以及购买等。44.目标维度信息是指基于用户需求或统计需求从多种维度信息中的选取至少一种维度信息。例如,当需要回溯一段时间内肝癌的患病人数,则目标维度信息具体为肝癌;又例如,当需要回溯一段时间内四川和湖南这两个省份某种流感的患病人数时,则目标维度信息为四川和湖南。又例如需要回溯一段时间内对某个商品广告的点击和点赞的情况时,则目标维度信息包括点击和点赞。45.业务数据,是指业务系统(如医疗系统、购物平台系统或广告发布平台系统)等生成的包括数据生成时刻和业务信息的数据。例如,当业务系统为医疗系统时,若需要回溯不同癌症种类的患病人数,则业务系统生成的业务数据包括业务数据的数据生成时刻和患病种类;又例如,当业务系统为购物平台系统,若需要回溯不同种类的商品的购买量,业务系统生成的业务数据包括业务数据的数据生成时刻和商品购买种类,其中,业务数据的数据生成时刻可以是商品购买时刻。46.下面将结合附图具体描述本技术的各实施例。47.请参阅图3,图3所示为本技术一实施例提出的一种可应用于电子设备的数据处理方法的流程图,该电子设备可以是服务器或者监测设备,该方法包括:48.步骤s110:获取消息队列中存储的实时业务数据。49.其中,消息队列中存储的业务数据可以包括一段时间内(如,几天内或几小时内)接收到的业务数据,通常情况下,业务数据可以由业务系统(如,游戏业务系统、购物平台以及医疗系统等)获得后依次传入至消息队列中,因此,且该消息队列中存储的业务数据是按照生成业务数据的时间依次存储,相应的,消息队列中还存储有业务数据以及该业务数据的生成时间。50.应当理解,不同的业务数据对应的维度信息可能不同,示例性地,当业务系统为游戏业务系统时,若维度信息包括游戏上线和游戏下线,业务数据具体可以是包括用户上线时刻(该业务数据的数据生成时刻)和游戏上线信息,业务数据也可以包括用户下线时刻(该业务数据的数据生成时刻)和游戏下线信息等;当业务系统为购物平台时,若维度信息包括日用品、食物以及衣物,业务数据可以包括物品类型和物品购买时刻(该业务数据的数据生成时刻),如生活用品的购买时刻的购买信息、食品购买时刻的购买信息以及衣物购买时刻的购买信息;当业务系统为医疗系统时,若维度信息包括患者所属省份,业务数据可以包括流感患者所在省份以及生成该业务数据数据生成时刻。51.获取消息队列中存储的实时业务数据数据可以是:从消息队列最先存储的数据开始依次获取消息队列中存储的数据作为实时业务数据,也可以是也可以从消息队列中的指定时刻对应的业务数据开始依次获取消息队列中存储的业务数据作为实时业务数据。52.在一种可实施方式中,上述步骤s110包括:按照业务数据的数据生成时刻的先后顺序从消息队列中依次读取指定时刻之后生成的业务数据作为实时业务数据。53.在该种实施方式下,具体的获取实时业务数据的方式具体可以是:将消息队列中的数据读取位置调整至生成时刻为指定时刻对应的业务数据位置处,并从指定时刻对应的业务数据开始读取数据,以得到消息队列中指定时刻之后生成的实时业务数据。54.上述的指定时刻可以是一天中或指定天中的某一时刻(如一天中的起始时刻即(00:00时刻)、一天中的早晨8点整或者一天中的中午12点整,等等),也可以是一周中的某一时刻,还可以是一个小时内的某一时刻等。55.步骤s120:根据内存中存储的目标数据量以及实时业务数据,获得与目标维度信息对应的数据总量,目标数据量为预先获取的与目标维度信息对应的历史业务数据的数据量。56.应当理解,历史业务数据与实时业务数据的数据生成时刻应当不同,也即当实时业务数据为指定时刻之后业务系统生成的业务数据,那么相应的历史业务数据应当为指定时刻之前业务系统生成的数据。57.目标数据量可以是一个,也可以是多个。应当理解,当目标数据量为多个时,相应的目标维度信息也应当为多个,且每个目标维度信息与一个目标数据量对应。58.示例性的,当目标数据量为多个时,内存中创建的线程也为多个,每个线程分别与一个目标数据量对应,每个目标数据量对应属于一个维度信息,每个线程可以分别执行:根据内存中存储的与该线程对应的目标数据量以及实时业务数据,获得与目标数据量所属的目标维度信息对应的数据总量。59.内存中存储的与目标维度信息对应的历史业务数据的数据量,可以是预先从电子设备中的存储器中获取并存储至内存中的,也可以是预先从与电子设备关联的存储设备或云平台中获得并存储至内存中的,应当理解,电子设备中的存储器是指设置于电子设备中除内存和消息队列以外的具有数据存储功能的器件。60.具体的,存储器或存储设备中可以存储有不同的维度信息分别对应的历史业务数据的数据量,且不同的维度信息分别对应的业务数据的数据量的获得方式具体可以是:由电子设备中的处理器对业务系统在指定时刻之前生成的历史全量业务数据,按照维度信息进行分类统计,得到的不同的维度信息分别对应的业务数据的数据量。61.应当理解,上述的历史全量业务数据可以包括不同维度信息分别对应的历史业务数据。上述的历史全量业务数据可以是业务系统在指定时刻之前获得的所有业务数据,也可以是在指定时刻之前的一个时间段内获得的业务数据。62.为使本技术的数据处理方法能够回溯不同时间段内(如在指定时刻之前一个月内或一年内)的业务数据的数据总量,上述的历史全量业务数据可以为在指定时刻之前预设时长范围内业务系统产生的所有历史业务数据。类似的,为使本技术的数据处理方法能够回溯预设时刻之后(如某个月的第一天的起始时刻之后)的业务数据的数据总量,上述的历史全量业务数据也可以为业务系统在指定时刻与预设时刻之间的时间段内产生的所有历史业务数据。63.根据内存中存储的目标数据量以及实时业务数据,获得与目标维度信息对应的数据总量的方式可以有多种。64.在一种实施方式中,可以是:按照维度信息对实时业务数据进行划分,获得每种维度信息对应的实时业务数据的数据量,将目标维度信息对应的实时业务数据的数量与该目标维度信息对应的历史业务数据的数据量进行融合,得到与目标维度信息对应数据总量。65.在另一种实施方式中,可以是:根据实时业务数据得到与目标维度信息对应的实时业务数据的数据量;将目标维度信息对应的实时业务数据的数据量与目标维度信息对应的历史业务数据的数据量进行融合,得到与目标维度信息对应数据总量。66.其中,上述的融合可以是对目标维度信息对应的实时业务数据的数据量和目标维度信息对应的历史业务数据的数据量进行累加。67.步骤s130:根据目标维度信息对应的数据总量更新内存中与目标维度信息对应的历史业务数据的数据量。68.其中,上述根据目标维度信息对应的数据总量更新内存中与目标维度信息对应的历史业务数据的数据量的具体方式可以是:将目标维度信息对应的当前业务数据的数据量,作为目标维度信息对应的新的历史业务数据的数据量,并存储至内存中。69.通过更新内存中与目标维度信息对应的历史业务数据的数据量,以在消息队列中接收到业务系统传输的新的实时业务数据时,可以获取消息队列中存储的新的实时业务数据,并根据该实时业务数据和内存中存储的更新后的历史业务数据的数据量得到与目标维度信息对应的新的数据总量。70.为实现后续查询调用每次进行数据处理时回溯得到的业务数据的数据总量,在本实施例中,方法还包括:向存储设备发送目标维度信息对应数据总量,以使存储设备在接收到目标维度信息对应数据总量时,保存该数据总量和接收到该数据总量的接收时刻。71.为便于用户实时或间隔观察业务系统回溯产生的数据量,在本实施例中,方法还包括:向与内存关联的业务存储系统发送目标维度信息对应数据总量,以供查询。72.作为一种可实施方式,上述向与内存关联的业务存储系统发送目标维度信息对应数据总量的方式可以是,每间隔预设时长获取内存中的目标维度信息对应的数据量,并向内存关联的业务存储系统发送该目标维度信息对应的数据量。73.本技术提供的一种数据处理方法,通过获取消息队列中存储的实时业务数据;根据内存中存储的目标数据量以及实时业务数据,获得与目标维度信息对应的数据总量,目标数据量为由存储设备中获取的与目标维度信息对应的历史业务数据的数据量。实现了在数据回溯过程中,仅需对消息队列中存储的实时业务数据利用实时流计算得到,并根据实时流计算得到的结果与预先获取的与目标维度信息对应的历史业务数据的数据量获得与目标维度信息对应的数据总量,使得数据处理过程简单,且计算效率高,且无需占用太多的消息队列资源。74.具体的,请结合参阅图4所示,通过采用本技术的数据处理方法,在数据处理过程中,由于获取消息队列中存储的实时业务数据并根据实时业务数据获得不同维度信息对应的实时业务数据是由电子设备中的处理器在内存中调用实时流计算框架进行计算得到的,而目标维度信息对应的历史业务数据的数据量是预先获取并存储在内存中的,也即本技术的数据处理方法不需要考虑批处理计算代码和实时流计算代码两份代逻辑的一致性,使得本技术的数据处理方法通用性较好,适合所有需要回溯业务历史总量数据的场景,回溯业务历史总量数据的过程中,也无需利用消息队列存储历史业务数据,因此,数据处理过程简单且计算效率高,且无需占用太多的消息队列资源。75.请参阅图5,本技术实施例提供一种可应用于电子设备的数据处理方法,方法包括:76.步骤s210:根据历史全量业务数据获得每种维度信息对应的历史业务数据的数据量。77.其中,历史全量业务数据可以是指业务系统在指定时刻之前产生的所有历史业务数据。也可以是指业务系统在指定时刻和预设时刻之间产生的历史业务数据,其中预设时刻位于指定时刻之前。还可以是指务系统在指定时刻之前预设时长内产生的历史业务数据。78.考虑到业务系统产生的业务数据中,不同维度信息对应的维度信息不同,且通常情况下,业务系统中产生的业务数据的数据量较大,因此,上述根据全量业务数据获得每种维度信息对应的历史业务数据的数据量的方式可以是:对历史全量业务数据进行批处理计算,得到与每种维度信息分别对应的历史业务数据的数据量。79.其中,批处理计算是指对某对象(历史全量业务数据)进行批量的处理,通常被认为是一种简化的脚本语言,它应用于dos和windows系统中。批处理可以理解为一系列相关的任务按顺序或并行的,一个接一个地执行。批处理地输入是在一段时间内收集好地数据。每次批处理的输出都可以是下次批处理的输入。80.在该种实施方式下,具体可以是根据多种维度信息对历史全量业务数据进行批量划分,以得到每种维度信息分别对应的历史业务数据,并统计每种维度信息分别对应的历史业务数据的数据量。81.步骤s220:将每种维度信息对应的历史业务数据的数据量存储至存储设备。82.其中,每种维度信息对应的历史业务数据的数据量包括目标维度信息对应的历史业务数据的数据量,内存中存储的目标数据量为预先由存储设备中获取的与目标维度信息对应的历史业务数据的数据量。83.上述将每种维度信息对应的历史业务数据的数据量存储至存储设备的方式可以有多种,如将每种维度信息对应的历史业务数据的数据量以顺序存储的方式存储在存储设备中,或者以链接存储的方式存储在存储设备中,或者以键值对的方式存储在存储设备中,又或者以散列存储的方式存储在存储设备中。84.在一种实施方式中,可以是将每种维度信息对应的历史业务数据的数据量,以键值对的形式存储于分布式存储设备。85.其中,键值对是存储是数据库最简单的组织形式,使用key(键)专门来区分不同的对象(也即维度信息),而value(值)才是不同的对象的实际内容(也即历史业务数据的数据量)。由于key是作为对象的区分,所以在查找某个元素的时候用key来查找。86.步骤s230:获取消息队列中存储的实时业务数据。87.在一种可实施方式中,若历史全量业务数据为在指定时刻之前的采集的业务数据,则上述步骤s230可以是:获取消息队列中存储的指定业务数据作为实时业务数据,指定业务数据的数据采集时刻在指定时刻之后。88.步骤s240:根据内存中存储的目标数据量以及实时业务数据,获得与目标维度信息对应的数据总量,目标数据量为预先从存储设备中获取并存储在内存的与目标维度信息对应的历史业务数据的数据量。89.步骤s250:根据目标维度信息对应的数据总量更新内存中与目标维度信息对应的历史业务数据的数据量。90.本技术实施例提供的一种数据处理方法,通过根据历史全量业务数据获得每种维度信息对应的历史业务数据的数据量,将每种维度信息对应的历史业务数据的数据量存储至存储设备,实现在数据回溯时,仅需根据存储在存储设备中的与每种维度信息对应的历史业务数据的数据量和消息队列中存储的实时业务数据即可获得目标维度信息对应的数据总量。在数据回溯时能够高效恢复目标维度对应的数据总量,且回溯过程中,不会占用消息队列的存储空间。91.请参阅图6,本技术实施例还提供一种可应用于电子设备的数据处理方法,方法包括:92.步骤s310:获取消息队列中存储的实时业务数据。93.步骤s320:检测内存中是否存储有目标维度信息对应的历史业务数据的数据量。94.在一种可实施方式中,检测内存中是否存储有目标维度信息对应的历史业务数据的数据量的方式可以是:检测内存中是否存储有以键值对形式存储的目标维度信息及与目标维度信息对应的历史业务数据的数据量,在该种方式下,具体可以是检测内存出是否存储有键值对中的键(目标维度信息),若存储有,则依据键值对中的键查找对应的值(与目标维度信息对应的历史业务数据的数据量)。应当理解,在未检测到键值对中的键或未查找到与键对应的值,则内存中为存储有目标维度信息对应的历史业务数据的数据量。95.在另一种可实施方式中,检测内存中是否存储有目标维度信息对应的历史业务数据的数据量的方式可以是:内存中为不同的维度信息分配有不同的存储空间,通过检测目标维度信息对应的存储空间中是否存储有数据,即可确认内存中是否存储有目标维度信息对应的历史业务数据的数据量。96.在又一种可实施方式中,检测内存中是否存储有目标维度信息对应的历史业务数据的数据量的方式可以是:根据内存中存储的与目标维度信息对应的标记值,确认内存中是否存储有与目标维度信息对应的历史业务数据的数据量,其中,在标记值为第一标记值时表征内存中存储有与目标维度信息对应的历史业务数据的数据量。也即,若内存中存储的与目标维度信息对应的标记值不为第一标记值时,则可以确认内存中未存储有与目标维度信息对应的历史业务数据的数据量。97.其中,第一标记值可以是0、1、2等任意常数,示例性的,在第一标记值为1,也即当内存中与目标维度信息对应的标记值为1时,表征内存中存储有与目标维度信息对应的历史业务数据的数据量。98.若未存储,则执行步骤s330:从存储设备中获取与目标维度信息对应的历史业务数据的数据量,并存储至内存中。99.其中,存储设备可以是与电子设备关联的服务器或计算设备中的存储器,也可以是与电子设备关联的云平台或存储器,还可以是设置于电子设备中除内存和消息队列以外的具有数据存储功能的器件。100.应当理解,存储设备中存储的与目标维度信息对应的历史业务数据的数据量可以采用如上述实施例中的步骤s210-s220获得,因此,关于与目标维度信息对应的历史业务数据的数据量的解释可以参阅前文对步骤s210-s220的描述以及前文对步骤s120的具体描述,此处不作一一赘述。101.若存储有目标维度信息对应的历史业务数据的数据量,或将目标维度信息对应的历史业务数据的数据量,并存储至内存之后,执行步骤s340:根据内存中存储的目标数据量以及实时业务数据,获得与目标维度信息对应的数据总量。102.步骤s350:根据目标维度信息对应的数据总量更新内存中与目标维度信息对应的历史业务数据的数据量。103.本技术提供的一种数据处理方法,通过获取消息队列中存储的实时业务数据,检测内存中是否存储有目标维度信息对应的历史业务数据的数据量。若未存储,则从存储设备中获取与目标维度信息对应的历史业务数据的数据量,并存储至内存中。若存储有目标维度信息对应的历史业务数据的数据量,或将目标维度信息对应的历史业务数据的数据量,并存储至内存之后,根据内存中存储的目标数据量以及实时业务数据,获得与目标维度信息对应的数据总量,使得本技术的数据处理过程简单,且计算效率高,且无需占用太多的消息队列资源。104.请结合参阅图7,本技术还提供一种可应用于电子设备的数据处理方法,该方法包括:105.步骤s410:对历史全量业务数据进行批处理计算,得到与每种维度信息分别对应的历史业务数据的数据量。106.其中,若当前所在天为第t天时,上述步骤s410具体可以是:获取业务系统生成业务数据的生成时刻为t-1天的起始时刻之前的所有业务数据进行作为历史全量业务数据,对历史全量业务数据进行批处理计算,得到与每种维度信息(key)对应的历史业务数据的数据量(value)。由于批处理计算资源相对丰富,通过历史全量业务数据进行批处理计算可以提高获得与每种维度信息分别对应的历史业务数据的数据量的效率。107.步骤s420:将每种维度信息对应的历史业务数据的数据量,以键值对的形式存储于分布式存储设备。108.考虑到批处理计算花费的时间较长,上述步骤s420具体可以是:由定时任务定时将每种维度信息(key)对应的历史业务数据的数据量(value)写入到分布式存储系统(key-value存储系统)中。109.步骤s430:获取消息队列中存储的实时业务数据。110.其中,当历史全量业务数据为业务系统生成业务数据的生成时刻为t-1天的起始时刻之前所有业务数据,那么在获取消息队列中存储的实时业务数据为,依次获取t-1天的起始时刻及其之后业务系统产生的业务数据,即,在获取过程中,会将t-1天的起始时刻作为消息队列的消费时间点。111.步骤s440:根据实时业务数据得到与目标维度信息对应的实时业务数据的数据量。112.步骤s450:检测内存中是否存储有目标维度信息对应的历史业务数据的数据量。113.其中,上述步骤s440具体可以是:根据内存中存储的与目标维度信息对应的标记值,确认内存中是否存储有与目标维度信息对应的历史业务数据的数据量,其中,在标记值为第一标记值时表征内存中存储有与目标维度信息对应的历史业务数据的数据量。114.示例性的,目标维度信息对应的标记值可以包括第一标记值和第二标记值,当目标维度信息对应的标记值为第一标记值,如1时,表征内存中存储有与目标维度信息对应的历史业务数据的数据量,也即内存无需从存储设备中加载目标维度信息对应的历史业务数据的数据量;当目标维度信息对应的标记值为第二标记值,如0时,表征内存中未存储有与目标维度信息对应的历史业务数据的数据量,也即内存需要从存储设备中加载目标维度信息对应的历史业务数据的数据量。115.若未存储,则执行步骤s460:从存储设备中获取与目标维度信息对应的历史业务数据的数据量,并存储至内存中。116.若存储有目标维度信息对应的历史业务数据的数据量或在将与目标维度信息对应的历史业务数据的数据量存储至内存之后,则执行步骤s470:将目标维度信息对应的实时业务数据的数据量与内存中的目标维度信息对应的历史业务数据的数据量进行融合,得到与目标维度信息对应数据总量。117.步骤s480:根据目标维度信息对应的数据总量更新内存中与目标维度信息对应的历史业务数据的数据量。118.在完成更新之后,所述方法还包括:步骤s190:向与所述内存关联的业务存储系统发送所述目标维度信息对应数据总量,以供查询。119.应当理解,当目标维度信息为多个时,应当针对每个维度信息,分别执行上述步骤s410-s480中的全部或部分步骤,以完成每个目标维度信息对应的数据总量的获取和更新。120.示例性的,以当前天为t天,利用电子设备对医疗系统中生成的流感病患信息(业务数据)按照不同省份(维度信息)回溯每个省份的患病量为例,其中,流感患病信息中包括用户信息、该用户对应的省份信息以及医疗系统生成该患病信息的时间。具体的数据处理过程如下:121.电子设备可以获取医疗系统中t-1天之前生成的所有历史流感病患信息作为历史全量业务数据,并对历史全量业务数据按照省份信息进行批量划分,得到每个省份的对应的历史流感病患信息的数据量。将每个省份对应的历史流感患病信息的数据量以键值对的形式存储在存储设备中。122.由于医疗系统会实时产生流感患病信息,因此,电子设备会调用实时流计算程序,以使在内存中运行该计算程序,且在回溯不同时间段的不同省份的流感病患信息的数据量时,均需重启实时流计算程序,因此,在电子设备需要回溯不同时间段的目标省份的流感病患信息的数据量时,会检测内存中是否存储有目标省份的流感病患信息的数据量,若未存储,则需要从存储设备中获取目标省份的流感病患信息的数据量并存储在内存中,以在计算截止当前时刻目标省份的流感病患信息的数据总量时,根据实时业务数据得到与目标省份的实时流感病患信息的数据量;将目标省份对应的实时流感病患信息的数据量与目标维度信息对应的目标省份的历史流感病患信息的数据量进行叠加,得到与目标省份的流感病患信息的数据总量。在一次计算完成之后,可以将目标省份的流感病患信息的数据总量作为新的目标身份的历史流感病患信息的数据量并存储在内存中,以便再次获取到消息队列中的实时流感患病信息时得到新的与目标省份的流感病患信息的数据总量,如此循环更新,可以毫秒级地生成该目标省份的流感病患信息的数据量。最后,可以通过定时器把该key的结果数据写入到业务的存储系统中,供业务查询使用。123.通过采用本技术的上述方法,可以极大地提高了业务计算逻辑调整后(也即需要回溯不同时段或不同目标维度信息对应的业务数据时),实时流计算应用的适应效率,由于避免了业务计算逻辑调整后需要使用实时流计算计算t-1天(含)之前所有历史全量数据,因此,回溯数据时间从数十天降到了本发明所需的数小时。此外,根据上述可知,上述进行批处理计算和实时流计算可以分步执行,因此,上述的数据处理过程,仅需维护一份实时流计算代码,不需要考虑批处理计算代码和实时流计算代码两份代逻辑的一致性,人力成本可以节约50%左右,且通用性较好,适合所有需要实时流计算业务历史总量数据的场景,由于不需要要考虑批处理计算代码和实时流计算代码两份代逻辑的一致性因此,也不会出现数据抖动会出现误差。此外,计算过程中,也无需将历史业务数据存储至消息队列中,从而无需用宝贵的消息队列资源保存历史业务数据,消息队列只需要保存数天的数据即可,由于消息队列的存储比批处理计算的存储资源珍贵很多,因此可以节约消息队列资源。124.请参阅图8,本技术提供了一种应用于电子设备的数据处理装置500,装置500包括:数据获取模块510、数据总量获得模块520以及数据量更新模块530。125.数据获取模块510,用于获取消息队列中存储的实时业务数据。126.数据总量获得模块520,用于根据内存中存储的目标数据量以及实时业务数据,获得与目标维度信息对应的数据总量,目标数据量为预先获取的与目标维度信息对应的历史业务数据的数据量。127.其中,数据总量获得模块520包括数据量获得单元和数据融合单元。128.数据量获得单元,用于根据实时业务数据得到与目标维度信息对应的实时业务数据的数据量。129.数据融合单元,用于将目标维度信息对应的实时业务数据的数据量与目标维度信息对应的历史业务数据的数据量进行融合,得到与目标维度信息对应数据总量。130.数据量更新模块530,用于根据目标维度信息对应的数据总量更新内存中与目标维度信息对应的历史业务数据的数据量。131.在一种可实施方式中,数据处理装置500还包括:数据量获得模块和第一存储模块。132.数据量获得模块,用于根据历史全量业务数据获得每种维度信息对应的历史业务数据的数据量。133.其中,数据量获得模块还用于对历史全量业务数据进行批处理计算,得到与每种维度信息分别对应的历史业务数据的数据量。134.第一存储模块,用于将每种维度信息对应的历史业务数据的数据量存储至存储设备,其中,每种维度信息对应的历史业务数据的数据量包括目标维度信息对应的历史业务数据的数据量,内存中存储的目标数据量为预先由存储设备中获取的与目标维度信息对应的历史业务数据的数据量。135.其中,第一存储模块还用于将每种维度信息对应的历史业务数据的数据量,以键值对的形式存储于分布式存储设备。136.在一种可实施方式中,历史全量业务数据为在指定时刻之前的采集的业务数据,数据获取模块510还用于获取消息队列中存储的指定业务数据作为实时业务数据,指定业务数据的数据采集时刻在指定时刻之后。137.在一种可实施方式中,数据处理装置500还包括第二存储模块。138.第二存储模块用于在内存中未存储目标维度信息对应的历史业务数据的数据量时,从存储设备中获取与目标维度信息对应的历史业务数据的数据量,并存储至内存中。139.在一种可实施方式中,数据处理装置500还包括确认模块。确认模块用于在内存中存储的与目标维度信息对应的标记值不为第一标记值时,确认内存中未存储有与目标维度信息对应的历史业务数据的数据量。140.在一种可实施方式中,数据处理装置500还包括第一发送模块,用于向与内存关联的业务存储系统发送目标维度信息对应数据总量,以供查询。141.在一种可实施方式中,数据处理装置500还包括第二发送模块,用于向存储设备发送目标维度信息对应数据总量,以使存储设备在接收到目标维度信息对应数据总量时,保存该数据总量和接收到该数据总量的接收时刻。142.需要说明的是,本技术中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。143.下面将结合图8对本技术提供的一种电子设备100进行说明。144.请参阅图9,基于上述实施例提供的数据处理方法,本技术实施例还提供的另一种包括可以执行前述方法的处理器102的电子设备100,该电子设备100可以为服务器10或终端设备,终端设备可以是智能手机、平板电脑、计算机或者便携式计算机等设备。145.电子设备100还包括存储器104。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。146.其中,处理器102可以包括一个或者多个用于处理数据的核以及消息矩阵单元。处理器102利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器102可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。147.存储器104可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所获取的数据(如,维度信息、维度信息对应的数据总量以及维度信息对应的历史业务数据的数据量等)。148.电子设备100还可以包括网络模块以及屏幕,网络模块用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。网络模块可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(sim)卡、存储器等等。网络模块可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。屏幕可以进行界面内容的显示以及进行数据交互。149.在一些实施例中,电子设备100还可以包括有:外设接口106和至少一个外围设备。处理器102、存储器104和外设接口106之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外设接口连接。具体地,外围设备包括:射频组件108、定位组件112、摄像头114、音频组件116、显示屏118以及电源122等中的至少一种150.外设接口106可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器102和存储器104。在一些实施例中,处理器102、存储器104和外设接口106被集成在同一芯片或电路板上;在一些其他实施例中,处理器102、存储器104和外设接口106中的任意一个或两个可以在单独的芯片或电路板上实现,本技术实施例对此不加以限定。151.射频组件108用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频组件108通过电磁信号与通信网络以及其他通信设备进行通信。射频组件108将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频组件108包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频组件108可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频组件108还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本技术对此不加以限定。152.定位组件112用于定位电子设备的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件112可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。153.摄像头114用于采集图像或视频。可选地,摄像头114包括前置摄像头和后置摄像头。通常,前置摄像头设置在电子设备100的前面板,后置摄像头设置在电子设备100的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头114还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。154.音频组件116可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器102进行处理,或者输入至射频组件108以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器102或射频组件108的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频组件114还可以包括耳机插孔。155.显示屏118用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏118是触摸显示屏时,显示屏118还具有采集在显示屏118的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器102进行处理。此时,显示屏118还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏118可以为一个,设置电子设备100的前面板;在另一些实施例中,显示屏118可以为至少两个,分别设置在电子设备100的不同表面或呈折叠设计;在又一些实施例中,显示屏118可以是柔性显示屏,设置在电子设备100的弯曲表面上或折叠面上。甚至,显示屏118还可以设置成非矩形的不规则图形,也即异形屏。显示屏118可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,机发光二极管)等材质制备。156.电源122用于为电子设备100中的各个组件进行供电。电源122可以是交流电、直流电、一次性电池或可充电电池。当电源122包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。157.本技术实施例还提供一种计算机可读存储介质。该计算机可读介质中存储有程序代码,程序代码可被处理器调用执行上述方法实施例中所描述的方法。158.计算机可读存储介质可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质包括非易失性计算机可读介质(non-transitorycomputer-readablestoragemedium)。计算机可读存储介质具有执行上述方法中的任何方法步骤的程序代码的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码可以例如以适当形式进行压缩。159.本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中描述的方法。160.综上,本技术提供的一种数据处理方法、装置、设备及存储介质,通过获取消息队列中存储的实时业务数据;根据内存中存储的目标数据量以及实时业务数据,获得与目标维度信息对应的数据总量,目标数据量为由存储设备中获取的与目标维度信息对应的历史业务数据的数据量。实现了在数据回溯过程中,仅需对消息队列中存储的实时业务数据利用实时流计算得到,并根据实时流计算得到的结果与预先获取的与目标维度信息对应的历史业务数据的数据量获得与目标维度信息对应的数据总量,使得数据处理过程简单,且计算效率高,且无需占用太多的消息队列资源。161.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1