数据上报的方法、装置、设备及存储介质与流程

文档序号:15979188发布日期:2018-11-17 00:07阅读:357来源:国知局

本发明涉及计算机技术领域,尤其涉及一种的数据上报的方法、装置、设备及存储介质。

背景技术

在互联网信息处理技术中,有些业务数据需要被上报至特定位置,以供用户进行查找和提取,例如,用户在终端设备上运行应用程序时,所述终端设备会记录相应的业务数据并将其上报至指定位置,例如上报至服务器,便于应用开发者在服务器端对上报的数据进行分析后形成报表,通过报表来分析用户的使用习惯。在现有的数据上报方法中,需要在业务系统上通过软件开发工具包将业务数据写入redis中,因此需要封装redis中间件,还需要封装数据上报接口或者通过http接口来直接上报至数据平台。

然而,发明人在实施本发明的过程中发现,在现有技术中,在数据上报过程中,当数据平台或服务器端等相关设备有需求变更时需要业务系统配合更新版本,降低了数据上报的稳定性,并且降低了用户体验感。



技术实现要素:

针对上述问题,本发明的目的在于提供一种数据上报的方法、装置、设备以及存储介质,可以解决当数据平台或数据上报系统等有需求变更时需要业务系统配合更新版本的问题,提高数据上报的稳定性。

第一方面,本发明实施例提供了一种数据上报的方法,包括:

监听消息队列;其中,所述消息队列中存放来自至少一个业务系统的业务数据;

当监听到所述消息队列中有业务数据时,从所述消息队列中获取所述业务数据;

对获取到的所述业务数据进行聚合,得到聚合后的数据;

将所述数据上报至数据平台以进行存储和分析。

在第一方面的第一种实现方式中,在将所述数据上报至数据平台以进行存储和分析之后,还包括:

根据所述数据的上报情况生成数据上报日志;其中,所述数据上报日志用于记录所述数据是否上报成功,以使得可以根据所述数据上报日志进行问题跟踪。

在第一方面的第二种实现方式中,在所述当监听到所述消息队列中有业务数据时,从所述消息队列中获取所述业务数据之后,还包括:

根据所述业务数据的获取情况生成数据消费日志;其中,所述数据消费日志用于记录所述业务数据的消费情况。

在第一方面的第三种实现方式中,在所述将所述数据上报至数据平台并生成数据上报日志之后,还包括:

定时从所述数据平台中拉取指定的数据并进行统计,生成统计结果。

根据第一方面的第三种实现方式,在第一方面的第四种实现方式中,所述定时从所述数据平台中拉取指定的数据并进行统计,生成统计结果,具体为:

根据指定的查询语句定时从所述数据平台中分批次拉取与所述查询语句对应的数据;

将拉取到的所有数据进行统计,生成统计结果。

根据第一方面的第四种实现方式,在第一方面的第五种实现方式中,还包括:

当检测到对当前批次的第一数据拉取失败时,生成与所述第一数据对应的告警信息;

将所述告警信息加入告警通知列表并从所述数据平台中拉取所述与当前批次的下一批次对应的数据;其中,所述告警通知列表中的所有告警信息用于通过第三方应用进行通知。

根据第一方面的第五种实现方式,在第一方面的第六种实现方式中,所述当检测到对与当前批次对应的第一数据拉取失败时,生成与所述第一数据对应的告警信息,具体为:

当检测到对与当前批次对应的第一数据拉取失败时,重新从所述数据平台中拉取所述第一数据,并记录所述第一数据的拉取失败次数;

当所述拉取失败次数达到预设的次数阈值时,停止拉取所述第一数据并生成与所述第一数据对应的告警信息。

第二方面,本发明实施例还提供了一种数据上报的装置,包括:

数据监听模块,用于监听消息队列;其中,所述消息队列中存放来自至少一个业务系统的业务数据;

数据消费模块,用于当监听到所述消息队列中有业务数据时,从所述消息队列中获取所述业务数据;

数据聚合模块,用于对获取到的所述业务数据进行聚合,得到聚合后的数据;

数据上报模块,用于将所述数据上报至数据平台以进行存储和分析。

第三方面,本发明实施例还提供了一种数据上报设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项所述的数据上报的方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的数据上报的方法。

上述技术方案中的一个技术方案具有如下优点:通过从消息队列中拉取业务数据进行消费,当业务系统并发量比较高时不会影响到系统性能;并且将拉取到的业务数据进行聚合,使得当有需求变更时不需要业务系统配合更新版本,提高数据上报的稳定性。当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明第一实施例提供的数据上报的方法的流程示意图。

图2是本发明第一实施例提供的数据上报的方法的拉取业务数据示意图。

图3是本发明第二实施例提供的数据上报的方法的数据上报与统计架构图。

图4是本发明第三实施例提供的数据上报的装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,本发明第一实施例提供了一种数据上报的方法,其可以在数据上报设备上执行,并包括以下步骤:

s10,监听消息队列;其中,所述消息队列中存放来自至少一个业务系统的业务数据。

s20,当监听到所述消息队列中有业务数据时,从所述消息队列中获取所述业务数据。

在本实施例中,所述数据上报设备可以为手机、笔记本电脑、pda(个人数字助理)、pad(平板电脑),数字广播接收器或导航装置等移动终端,也可以为数字tv、台式计算机或服务器等等固定终端,通过数据上报设备可以获取来自一个业务系统或者多个业务系统的业务数据并上传至数据平台,其中所述业务数据可以为在当前所述数据上报设备上产生的业务数据,例如当前数据上报设备(例如手机)上的不同应用程序产生的数据,当然,也可以为在其他数据上报设备上产生的业务数据。

在本实施例中,利用消息队列来存放业务系统提供的业务数据,使得所述业务系统不需要通过http接口来上报数据。在这里,所述消息队列可以为messagequeue(mq,消息队列)。其中,消息队列(mq)是一种应用程序对应用程序的通信方法,应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。作为示例,如图2所示,当业务系统(即生产者)产生业务数据(例如在应用程序上进行操作时产生的操作数据)时,所述业务系统将所述业务数据发送至mq,同时,所述数据上报设备会一直监听所述消息队列。因此,当监听到所述mq中有消息(即业务数据)时,所述数据上报设备则获取所述mq中的业务数据进行消费,在这里,利用mq拉模式来获取所述业务数据。

在本实施例中,还包括:根据所述业务数据的获取情况生成数据消费日志;其中,所述数据消费日志用于记录所述业务数据的消费情况。在本实施例中,当监听到所述消息队列中有消息(即业务数据)时,所述数据上报设备会对所述消息队列中的消息进行拉取,根据消息拉取的情况(即获取情况)生成数据消费日志。作为示例,所述数据消费日志用于记录此次所述业务数据是否被拉取成功(或消费成功),也可以用于记录此次消费的业务数据的数量,同时还可以用于此次消费进度(即消费位置),使得所述数据上报设备在下一次从所述消息队列中拉取数据时根据此次的消费进度(即消费位置)拉取之后的业务数据。

s30,对获取到的所述业务数据进行聚合,得到聚合后的数据。

s40,将所述数据上报至数据平台以进行存储和分析。

在本实施例中,所述数据上报设备需要将获取得到的所述业务数据进行聚合处理,对于数据聚合,一般指的是数据转换过程,常见的聚合运算都有相关的统计函数快速实现,当然也可以自定义聚合运算。作为示例,将获取得到的所述业务数据转化成数据平台数据,例如按照预设的转换关系将所述业务数据转换成预定的格式数据等。在本实施例中,当检测到将所述业务数据进行聚合成功后,在预定的时间段或者定期(例如每个星期五)将聚合得到的数据上报至数据平台,例如上报至odps(opendataprocessingservice,开放数据处理服务),以使得所述数据平台将所述数据进行存储和计算分析等。

在本实施例中,还包括:根据所述数据的上报情况生成数据上报日志;其中,所述数据上报日志用于记录所述数据是否上报成功,以使得可以根据所述数据上报日志进行问题跟踪。作为示例,当所述数据上报设备将所述数据上报至所述数据平台时,针对所述数据上报是否成功的情况生成数据上报日志,从而使得可以对所述数据上报日志进行查询来判断所述数据是否上报成功,可以对数据上报产生的问题和情况(例如某一条数据出现漏报或上报失败)及时进行跟踪。

综上所述,通过从消息队列中拉取业务数据进行消费,当业务系统并发量比较高时不会影响到系统的性能;并且将拉取到的业务数据进行聚合,使得当有需求变更时不需要业务系统配合更新版本,提高数据上报的稳定性;通过增加日志记录,可以方便且及时地对问题进行追踪,可以很快地获取得到对数据上报成功或者失败的情况,提高了用户体验感。

本发明第二实施例:

在第一个实施例的基础上,在步骤s40之后,还包括:

定时从所述数据平台中拉取指定的数据并进行统计,生成统计结果。

在本实施例中,如图3所示的架构图,所述数据平台会对所述上报的数据进行计算和分析,并将计算分析得到的数据进行存储,使得其他数据上报设备可以从所述数据平台上获取所需要的数据。作为示例,所述数据上报设备还具有定时统计任务的功能,当启动定时任务时,通过自定义的维度从所述数据平台中拉取所需要的数据,例如采用计时器,每隔一段时间就拉取指定的数据,或者在每个预定的时间点拉取指定的数据,并将拉取得到的数据进行统计,得到统计结果。

在本实施例中,具体地,根据指定的查询语句定时从所述数据平台中分批次拉取与所述查询语句对应的数据;将拉取到的所有数据进行统计,生成统计结果。所述数据上报设备在启动定制任务时,利用指定的查询语句从所述数据平台中分批次拉取对应的数据。作为示例,odps数据平台支持丰富的sql(structuredquerylanguage,结构化查询语言)语法,因此可以将需要查询的sql语句作为查询参数通过odps-http接口从所述odps数据平台中拉取与所述sql语句对应的数据,在这里,分批次进行拉取,例如每次拉取1000条指定的数据,从而对每次拉取到的数据进行统计,生成统计结果。

在本实施例中,还包括:当检测到对当前批次的第一数据拉取失败时,生成与所述第一数据对应的告警信息;将所述告警信息加入告警通知列表并从所述数据平台中拉取所述与当前批次的下一批次对应的数据;其中,所述告警通知列表中的所有告警信息用于通过第三方应用进行通知。作为示例,所述数据上报设备分批次拉取指定的数据,假设拉取第一批数据时拉取不成功,则将第一批数据拉取失败的告警信息加入告警通知列表中,接着对第二批数据进行拉取,以此类推。在这里,所述告警通知列表中的告警信息可以通过邮件和微信通知等方法及时地通知工作人员(例如系统管理员),从而使得工作人员能够及时发现和解决问题。

在本实施例中,所述数据上报设备还添加了失败重试机制,具体地,当检测到对与当前批次对应的第一数据拉取失败时,重新从所述数据平台中拉取所述第一数据,并记录所述第一数据的拉取失败次数;当所述拉取失败次数达到预设的次数阈值时,停止拉取所述第一数据并生成与所述第一数据对应的告警信息。作为示例,假设所述数据上报设备拉取第一批数据时拉取失败,记录失败的次数(即失败次数为1),并且重新从数据平台中继续拉取第一批数据,若失败则继续拉取,每次重试都记录对应的失败次数,所当失败次数达到预设的次数阈值时(例如3次),则停止拉取所述第一批数据,并生成第一批数据拉取失败的告警信息,将该告警信息加入告警通知列表中。

在本实施例中,所述数据上报设备还可以将统计得到的统计结果写入指定的数据库,例如mysql数据库,使得工作人员可以通过查询相关的sql语句从所述mysql数据库中获取所需要的数据等。

通过上述方式,在所述数据上报设备上进行定时统计任务,可以及时察觉和判断数据是否统计成功或者是否有丢失,并且添加失败重试机制,可以提高统计模块的稳定性,提高系统稳定性;利用告警通知列表及时通知相关人员解决问题,提高用户体验感。

请参阅图4,本发明第三实施例还提供了一种数据上报的装置,包括:

数据监听模块10,用于监听消息队列;其中,所述消息队列中存放来自至少一个业务系统的业务数据;

数据消费模块20,用于当监听到所述消息队列中有业务数据时,从所述消息队列中获取所述业务数据;

数据聚合模块30,用于对获取到的所述业务数据进行聚合,得到聚合后的数据;

数据上报模块40,用于将所述数据上报至数据平台以进行存储和分析。

优选地,所述数据上报的装置还包括:

上报日志生成模块,用于根据所述数据的上报情况生成数据上报日志;其中,所述数据上报日志用于记录所述数据是否上报成功,以使得可以根据所述数据上报日志进行问题跟踪。

优选地,所述数据上报的装置还包括:

消费日志生成模块,用于根据所述业务数据的获取情况生成数据消费日志;其中,所述数据消费日志用于记录所述业务数据的消费情况。

优选地,所述数据上报的装置还包括:

定时统计模块,用于定时从所述数据平台中拉取指定的数据并进行统计,生成统计结果。

进一步地,所述定时统计模块具体为:

数据拉取单元,用于根据指定的查询语句定时从所述数据平台中分批次拉取与所述查询语句对应的数据;

结果统计单元,用于将拉取到的所有数据进行统计,生成统计结果。

进一步地,所述数据上报的装置还包括:

告警信息生成单元,用于当检测到对当前批次的第一数据拉取失败时,生成与所述第一数据对应的告警信息;

告警信息加入单元,用于将所述告警信息加入告警通知列表并从所述数据平台中拉取所述与当前批次的下一批次对应的数据;其中,所述告警通知列表中的所有告警信息用于通过第三方应用进行通知。

进一步地,所述告警信息生成单元具体为:

失败重试单元,用于当检测到对与当前批次对应的第一数据拉取失败时,重新从所述数据平台中拉取所述第一数据,并记录所述第一数据的拉取失败次数;

失败次数判断单元,用于当所述拉取失败次数达到预设的次数阈值时,停止拉取所述第一数据并生成与所述第一数据对应的告警信息。

本发明第四实施例提供了一种数据上报设备。该实施例的数据上报设备包括:处理器、显示器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如数据上报的程序。所述处理器执行所述计算机程序时实现上述各个数据上报的方法的实施例中的步骤,例如图1所示的步骤s10。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各单元的功能,例如图4所示的数据监听模块10。

示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述数据上报设备中的执行过程。

所述数据上报设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述数据上报设备可包括,但不仅限于,处理器、存储器、显示器。本领域技术人员可以理解,上述部件仅仅是数据上报设备的示例,并不构成对数据上报设备的限定,可以包括比上述部件更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述数据上报设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述数据上报设备的控制中心,利用各种接口和线路连接整个所述数据上报设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述数据上报设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、文字转换功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、文字消息数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述数据上报设备集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一个计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

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