掌桥专利:专业的专利平台
掌桥专利
首页

数据的计量统计方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:32:36


数据的计量统计方法、装置、电子设备及存储介质

技术领域

本申请属于计算机技术领域,尤其涉及一种数据的计量统计方法、装置、电子设备及存储介质。

背景技术

在服务运营中,技术或产品工作人员通常需要对服务的运营情况以及服务本身所使用技术的运行情况进行把控,这就需要全方位了解、掌握服务的数据流入和处理情况,相应需要某种技术手段统计与记录服务的数据流入、处理等情况的相关信息。

目前,一般使用缓存数据库对服务的数据流入、处理等情况进行相关信息的统计与记录,存在对数据库的高度依赖。然而,对数据库的高度依赖,会对整个服务的数据处理过程的延迟性产生影响,导致服务延迟升高、性能下降。

发明内容

有鉴于此,本申请提供了一种数据的计量统计方法、装置、电子设备及存储介质,通过利用服务内部维护的计数器对服务的数据处理情况进行计量统计,降低服务对外部数据库的依赖,相应降低服务的延迟、提升服务性能。

具体技术方案如下:

一种数据的计量统计方法,包括:

获取第一服务的通知信息;所述通知信息至少用于表示所述第一服务当前完成对预定数量单位的待处理数据的处理;

根据所述通知信息,触发所述第一服务内部维护的计数器对所述预定数量单位的待处理数据进行计数处理,得到相匹配的计数结果;

在满足时间条件情况下,利用中间存储媒介将所述计数器的计数结果转移存储至目标位置。

可选的,所述获取第一服务的通知信息,包括:

利用所述第一服务内部启动的辅助线程接收所述第一服务的通知信息;

所述根据所述通知信息,触发所述第一服务内部的计数器对所述预定数量单位的待处理数据进行计数处理,包括:

所述辅助线程触发所述计数器根据所述通知信息中包括的分区信息,在目标分区统计维度对所述预定数量单位的待处理数据进行计数处理;

其中,所述第一服务的待处理数据属于多个数据分区中的相应分区;所述分区信息用于指示所述预定数量单位的待处理数据所属的目标数据分区;所述目标分区统计维度为与所述目标数据分区对应的统计维度。

可选的,所述在目标分区统计维度对所述预定数量单位的待处理数据进行计数处理,包括:

将计数器在所述目标分区统计维度对应的至少一个计数周期维度的计数结果,增加所述预定数量单位。

可选的,所述计数器为原子计数器;

所述原子计数器存储有所述多个数据分区的分区信息集合,集合中的不同分区信息分别对应不同的分区统计维度;

所述原子计数器基于锁机制,避免不同通知信息分别对应的不同计数任务之间的计数冲突。

可选的,所述在满足时间条件情况下,利用中间存储媒介将所述计数器的计数结果转移存储至目标位置,包括:

在满足第一时间条件情况下,将所述计数器的计数结果写入第一服务的本地文件;

在满足第二时间条件情况下,将所述本地文件存储至预定存储位置;

对所述预定存储位置的至少一个本地文件的计数数据进行聚合处理,得到第一聚合结果;将所述第一聚合结果写入数据库并存储;

其中,不同本地文件分别为相同第一服务或不同第一服务的本地文件。

可选的,所述在满足时间条件情况下,利用中间存储媒介将所述计数器的计数结果转移存储至目标位置,包括:

在满足第三时间条件情况下,将所述计数器的计数结果写入预定消息队列组件的第一消息队列;

从所述第一消息队列获取至少一个第一服务的计数器计数结果;

对所述至少一个第一服务的计数器计数结果进行聚合处理,得到第二聚合结果;将所述第二聚合结果写入数据库并存储。

可选的,所述第一服务通过至少一个第二消息队列获取第二服务推送的待处理数据;

每一第二消息队列为所述第一服务对应的一个数据分区。

可选的,所述第二服务维护有多维内存数组;所述多维内存数组的不同维度分别对应所述第一服务的不同数据分区;

所述第二服务每产生一待处理数据,则将产生的待处理数据的预定属性信息记录至所述多维内存数组中与产生的待处理数据的分区信息相匹配的维度空间;

在所述多维内存数组的相应维度空间记录的预定属性信息满足批量处理条件时,将所述相应维度空间记录的信息所对应的多条待处理数据批量推送至相匹配的第二消息队列进行发送。

可选的,在所述利用中间存储媒介将所述计数器的计数结果转移存储至目标位置之后,还包括:

根据所述目标位置存储的所述第一服务的计数器计数结果,获得所述第一服务已完成处理的数据对应的第一统计结果;

获取对第二服务生产的数据进行统计所得的第二统计结果;

确定所述第一统计结果与所述第二统计结果是否一致,得到确定结果。

一种数据的计量统计装置,包括:

获取单元,用于获取第一服务的通知信息;所述通知信息至少用于表示所述第一服务当前完成对预定数量单位的待处理数据的处理;

计数单元,用于根据所述通知信息,触发所述第一服务内部维护的计数器对所述预定数量单位的待处理数据进行计数处理,得到相匹配的计数结果;

存储处理单元,用于在满足时间条件情况下,利用中间存储媒介将所述计数器的计数结果转移存储至目标位置。

一种电子设备,包括:

存储器,用于存放计算机指令集;

处理器,用于通过执行所述存储器上存放的指令集,实现如上任一项所述的数据的计量统计方法。

一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令集,所述计算机指令集被处理器执行时实现如上任一项所述的数据的计量统计方法。

根据以上方案可知,本申请提供的数据的计量统计方法、装置、电子设备及存储介质,提出了在服务内部维护计数器的技术思想,每当服务完成对预定数量单位的待处理数据的处理,则基于通知消息,触发服务内部维护的计数器对当前完成的预定数量单位的待处理数据进行计数处理,后续,在满足时间条件情况下,利用中间存储媒介将计数器的计数结果转移存储至目标位置。本申请通过利用服务内部维护的计数器对服务处理完成的数据进行计量统计,并仅在满足时间条件情况下,才对计数器的计数结果进行转移存储,能有效降低对外部数据库的依赖,减少服务与外部数据库之间的交互,相应可达到降低服务的数据处理延迟、提升服务性能的目的。

附图说明

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

图1是本申请实施例提供的本申请方法的一应用场景架构图;

图2是本申请实施例提供的数据的计量统计方法的一种流程示意图;

图3是本申请实施例提供的计数器的统计维度架构图;

图4是本申请实施例提供的基于第一服务的本地文件将计数器的计数结果转移存储至目标位置的逻辑示意图;

图5是本申请实施例提供的基于消息队列组件将计数器的计数结果转移存储至目标位置的逻辑示意图;

图6是本申请实施例提供的数据流处理服务基于消息队列获取上游服务生产的数据的示意图;

图7是本申请实施例提供的上游服务与数据流处理服务之间进行数据传输,以及数据流处理服务进行计量统计处理的逻辑示意图;

图8是本申请实施例提供的数据的计量统计方法的另一种流程示意图;

图9是本申请实施例提供的数据的计量统计装置的一种结构示意图;

图10是本申请实施例提供的数据的计量统计装置的另一种结构示意图;

图11是本申请实施例提供的电子设备的结构示意图。

具体实施方式

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

在服务运营中,传统技术一般使用缓存数据库对服务的数据流入、处理等情况进行相关信息的收集、统计与记录,以作为技术或产品工作人员对服务的运营情况以及服务本身所使用技术的运行情况进行把控时的数据基础,在该依托数据库的方式中,服务每处理完成一条数据,就向数据库推送一条消息,数据库基于服务消息对服务所完成的数据进行计数累加。发明人发现,该依托数据库的方式在serverless(无服务器)以及云原生等服务架构中的可行度较低,原因在于,这些服务架构中服务的数据并发请求量往往很大,同时要求有一个较低的服务延迟性。上述方式由于存在对数据库的高度依赖,必然会对整个服务的延迟性产生影响,导致服务延迟升高、性能下降。

为解决该技术问题,本申请公开一种数据的计量统计方法、装置、电子设备及存储介质,用于在保证服务低延迟、高性能/高可用情况下,提供对服务已处理完成的数据进行计量统计的功能,相应为技术或产品工作人员对服务运营情况以及服务本身所使用技术的运行情况的把控提供数据基础。

本申请方案可应用于但不限于需对数据流进行计量统计的场景中,以下首先介绍本申请实施例的一典型应用场景。

如图1示出的应用场景架构,其中包括上游服务和数据流处理服务,上游服务负责生产数据,数据流处理服务用来消费上游服务生产的数据,负责对上游服务生产的数据进行所需处理。上游服务生产数据,具体可以是指由上游服务基于自身逻辑流程生成数据,或者还可以是指将上游服务自身作为一接口层,接收其他业务应用或业务服务提供的数据,并将接收的数据转化为数据流处理服务所需格式而传输至数据流处理服务进行消费。

上游服务和数据流处理服务可根据实际需求进行部署,本申请实施例主要以将上游服务和数据流处理服务部署在云平台(如,公有云云平台)为例,对本申请方案的处理过程进行描述,在该示例中,部署在云平台的上游服务处于各业务服务商/运营商所提供的业务服务(如音视频服务、基于搜索引擎的数据搜索服务等)的底层,用于为各业务服务提供一个接口层,负责收集各业务服务生产的数据,并将收集的数据转换格式后输出至数据流处理服务进行消费。

参见图2,提供了本申请中数据的计量统计方法的流程示意图,对应于上述的应用场景,该方法可应用于但不限于具有数据处理功能的手机、平板电脑、个人PC(如笔记本、一体机、台式机)等终端设备中,或具有数据处理功能的私有云/公有云云平台、局域网/互联网络服务器等对应的物理机中。且实施中,可以在一个物理机或跨物理机实现,本申请对此不加限制。

如图2所示,本实施例中,数据的计量统计方法包括以下处理过程:

步骤201、获取第一服务的通知信息;该通知信息至少用于表示第一服务当前完成对预定数量单位的待处理数据的处理。

可选的,第一服务可以为上述应用场景中的数据流处理服务,用于消费其上游服务生产的数据,对其上游服务如处于其上游的第二服务生产的数据进行所需处理。第一服务所执行的数据处理,可以是但不限于对第二服务接入的相应业务应用/业务服务数据(如音视频服务、搜索服务的相关日志信息等)进行大数据分析、数据挖掘、规律研究、模型训练等处理。

第一服务具体可基于其数据流处理程序所对应的线程,对上游服务生产的数据进行处理,为便于对第一服务已处理完成的数据进行计量统计,第一服务每处理完成预定数量单位的待处理数据,就生成一通知信息,以该通知信息作为执行一次计数任务的触发条件。

容易理解,该通知信息相应至少能表示第一服务当前已完成对预定数量单位的待处理数据的处理。

上述的预定数量单位,可以是1或其他的非1数值,优选地,实施中,可将预定数量单位设定为1,基于此设定,第一服务每处理完成其上游服务生产的一条数据,就触发上述的通知信息,相应触发一次计数任务。

第一服务运营过程中,除了启动其数据流处理程序所对应的线程(一个或多个线程,可认为是第一服务的主线程),还在第一服务内部启动有一辅助线程,该辅助线程在第一服务启动时自动创建,负责接收第一服务(如其主线程)发送过来的上述通知信息,并维护有用于对第一服务已完成处理的数据进行计量统计的计数器。

步骤202、根据上述通知信息,触发第一服务内部维护的计数器对当前完成的预定数量单位的待处理数据进行计数处理,得到相匹配的计数结果。

第一服务的辅助线程每接收到第一服务的通知信息,就触发所维护的计数器执行一次计数任务。在一次计数任务中,计数器通过在当前已有计数数据基础上累加上述预定数量单位,如加1,而实现对第一服务当前完成的上述预定数量单位的待处理数据进行计数。

实际应用中,常常存在对已完成处理的不同属性数据分别进行单独统计的需求,例如,对已完成处理的不同业务类型(如音视频业务类型、搜索业务类型)数据分别进行单独统计,或对已完成处理的不同运营商/服务商数据分别进行单独统计等,针对该需求,本实施例为第一服务的待处理数据设置了多个数据分区,每一数据分区用于存储需进行单独统计的相应属性待处理数据,相应的,每条待处理数据属于某一特定分区。

与此相匹配,第一服务内部维护的上述计数器中,存放有该多个数据分区的分区信息集合,集合中的不同分区信息分别对应不同的分区统计维度。

进一步地,参见图3,每一分区统计维度可以对应至少一个计数周期维度,示例性地,比如每一分区统计维度均对应分钟、小时、天这三个计数周期维度等,相应地,对于每个分区统计维度,均同时在分钟级、小时级、天级的计数周期内进行已处理数据的累加计数,以满足数据在多计数周期维度的计数要求。

在设置有多个数据分区的该实施方式下,第一服务每处理完成预定数量单位的待处理数据,则向辅助线程发送一通知信息,并在通知消息中携带当前所完成处理的数据的分区信息,以标示数据所属的目标数据分区。

辅助线程接收该通知信息,并触发计数器根据通知信息中包括的分区信息,在相匹配的目标分区统计维度对当前所完成的上述预定数量单位的数据进行计数处理,具体地,可将计数器在上述目标分区统计维度对应的各个计数周期维度的计数结果,增加上述预定数量单位。这样,针对第一服务每次完成处理的预定数量单位的待处理数据,均能利用第一服务内部维护的计数器及时对数据在所匹配的分区维度进行计数。

实际应用中,针对多个数据分区的待处理数据,第一服务可启动一个线程对各数据分区的待处理数据进行串行处理,或同时启动多个线程对不同数据分区的待处理数据进行并行处理,对此不加限制。

辅助线程可能会同时接收到多个通知信息或在较短时间内顺序接收到多个通知信息,为避免不同通知信息分别对应的不同计数任务之间的计数冲突,本实施例中,优选的,第一服务维护的计数器采用原子计数器,针对不同通知信息对应的不同计数任务,该原子计数器基于锁机制保证每一计数任务下计数操作的原子性,避免不同计数任务的计数冲突导致的计数不准确问题。

步骤203、在满足时间条件情况下,利用中间存储媒介将计数器的计数结果转移存储至目标位置。

目标位置可以是但不限于用于存储统计结果数据的数据库。

在一可选实施方式中,中间存储媒介为第一服务的本地文件。

该实施方式下,具体可基于第一服务的本地文件,通过以下处理将计数器的计数结果转移存储至目标位置:

1)在满足第一时间条件情况下,将计数器的计数结果写入第一服务的本地文件;

其中,满足第一时间条件,可以是指到达第一服务中计数器的计数周期切换节点。相应地,在每到达第一服务中计数器的计数周期切换节点时,即计数满一个周期时,将当前一个周期的计数结果(对应于相应分区统计维度)写入第一服务的本地文件。

例如,针对计数器的每个分区统计维度均对应1分钟/1小时/1天这三个计数周期维度的情况,具体可在每个分区统计维度计数满1分钟时,将当前1分钟的计数结果写入本地文件,在每计数满1小时时,将当前1小时的计数结果写入第一服务的本地文件,以及在每计数满一天时,相应将当前1天的计数结果写入本地文件。

2)在满足第二时间条件情况下,将上述本地文件存储至预定存储位置;

其中,满足第二时间条件,可以是指到达设定的时间点,或经历设定的计时时长。基于该第二时间条件,每当到达设定的时间点(如每天凌晨0点)或经历设定的计时时长,则将第一服务的本地文件存储至预定存储位置,实现对本地文件在指定位置的文件存储。

参见图4,实施中,可预先在第一服务的本机部署一定时脚本,基于该脚本,定时地将第一服务的本地文件保存到上述预定存储位置进行文件存储。

3)对上述预定存储位置的至少一个本地文件的计数数据进行聚合处理,得到第一聚合结果;将该第一聚合结果写入数据库并存储。

之后,可由一服务(如图4中示出的中心服务)定时从上述预定存储位置拉取文件,并将拉取的各本地文件进行汇总聚合处理,最终将所得的第一聚合结果写入数据库。

其中,拉取的不同本地文件可以为相同第一服务或不同第一服务的本地文件,本实施例对此不作限制。

实施中,如图4所示,为提升处理效率,可对批量部署的多个第一服务(如云平台中批量部署于多个物理机的多个第一服务)的计数器计量结果进行统一的转移存储管理,其中,具体可将多个第一服务的本地文件上传至统一指定的文件存储位置,进而由相应服务(如图4中示出的中心服务)从该位置拉取多个第一服务的本地文件,并对其做汇总聚合后,将聚合结果写入数据库。

在另一可选实施方式中,中间存储媒介还可以为消息队列组件提供的消息队列,其中,消息队列组件可以是但不限于Kafka消息队列组件。

该实施方式下,具体可基于消息队列组件,通过以下处理将计数器的计数结果转移存储至目标位置:

1)在满足第三时间条件情况下,将计数器的计数结果写入预定消息队列组件的第一消息队列;

本实施例中,满足第三时间条件,同样可以是指到达第一服务中计数器的计数周期切换节点。

该实施方式下,每到达第一服务中计数器的计数周期切换节点时,即计数满一个周期时,将当前一个周期的计数结果(对应于相应分区统计维度)推送至消息队列组件的第一消息队列。比如,具体可推送至Kafka消息队列,并将不同分区维度的分区信息作为Kafka的不同Topic(主题),以此实现利用Kafka消息队列对第一服务的不同分区维度的计量结果进行推送、传输。

2)从第一消息队列获取至少一个第一服务的计数器计数结果;

3)对至少一个第一服务的计数器计数结果进行聚合处理,得到第二聚合结果;将第二聚合结果写入数据库并存储。

之后,可由一服务(如图5中示出的内部消费服务)通过订阅Kafka等消息队列的不同分区(topic)数据而得到第一服务的计数器计量结果,并对其做汇总聚合处理,得到第二聚合结果,最终将得到的第二聚合结果写入数据库并存储。例如,在每天的某特定时刻,将当前订阅得到的第一服务各分区计量数据进行聚合等。

相类似,如图5所示,为提升处理效率,该实施方式下同样可对批量部署的多个第一服务(如云平台中批量部署于多个物理机的多个第一服务)的计数器计量结果进行统一的转移存储管理,其中,具体可将多个第一服务的计数器计量结果上传至Kafka等消息队列组件的消息队列,进而由相应服务(如图5中内部消费服务)通过订阅Kafka消息队列的不同分区(topic)数据而得到各个第一服务的各分区计量结果,并对其做汇总聚合后,将聚合结果写入数据库。

在上述两种实施方式中,对所拉取的各个本地文件中的计量数据进行聚合处理,或对订阅的消息队列中的计量数据进行聚合处理,可以包括但不限于:将同一第一服务的计量结果,按分区维度及计数周期维度进行汇总;并在有需要时,还可以对同一或不同第一服务的计量结果按分区维度及计数周期维度进行相应统计处理,如,统计某一时间段在对应的所有分区维度总计数值最大或最小的第一服务,或统计同一第一服务在某一时间段的计数值最大或最小的相应数据分区等。

且,在上述两种实施方式中,最终保存至数据库的计量结果数据,可以包括但不限于:数据分区、数据所属的用户ID(Identity document,身份标识号)、计数周期维度(如1分钟或1小时、1天等)、计量指标值(如1分钟的计数结果)。其中,数据所属的用户ID,可以是但不限于数据所属运营商的运营商ID。

上述基于消息队列的实施方式与基于第一服务本地文件的实施方式相比,可避免占用第一服务的本地系统存储空间,进一步节约了第一服务的本地存储资源。

根据以上方案可知,本实施例的方法提出了在服务内部维护计数器的技术思想,每当服务完成对预定数量单位的待处理数据的处理,则基于通知消息,触发服务内部维护的计数器对当前完成的预定数量单位的待处理数据进行计数处理,后续,在满足时间条件情况下,利用中间存储媒介将计数器的计数结果转移存储至目标位置。本申请通过利用服务内部维护的计数器对服务处理完成的数据进行计量统计,并仅在满足时间条件情况下,才对计数器的计数结果进行转移存储,能有效降低对外部数据库的依赖,减少服务与外部数据库之间的交互,相应可达到降低服务的数据处理延迟、提升服务性能的目的。

第一服务可通过相应接口从第二服务获取待处理数据以进行消费处理,在本申请一可选实施中,参见图6,优选的,第一服务利用至少一个第二消息队列(图6中的Queue)作为接口获取第二服务推送的待处理数据;其中,第二服务为第一服务的上游服务,用于生产数据,如基于自身逻辑流程生产数据,或者作为接口层接收其他业务应用或业务服务输入的数据等,并将数据转换为第一服务所需格式,进而将格式转换后的数据通过至少一个第二消息队列传输至第一服务进行消费处理。

第一服务与第二服务之间的每一第二消息队列,同时还作为第一服务对应的一个数据分区。

实施中,可选的,第二服务可在每生产一条数据后,根据该数据对应的分区信息(具体可基于该数据的属性信息如业务类型或所属的运营商等,确定其所对应的分区),实时将其推送至相匹配的第二消息队列。

或者,可选的,还可以将第二服务生产的待处理数据批量推送至相匹配的第二消息队列。

在该批量推送的实施方式中,具体可在第二服务内部启动一辅助线程,该辅助线程维护有一用于缓存或存储所生产数据的预定属性信息的组件,实施中,具体可以但不限于采用数组、数据表等形式实现该组件功能,优选的,本实施例采用内存数组形式提供该组件功能,即,第二服务内部启动的上述辅助线程维护有一多维内存数组,内存数组的不同维度分别对应不同的第二消息队列,也即,分别对应第一服务的不同数据分区。

第二服务内部启动的该辅助线程,用于负责在第二服务每生产一条数据时,将数据的预定属性信息缓存到内存数组的与数据的分区信息相匹配的维度空间。缓存到内存数组的预定属性信息,可以包括但不限于数据的分区信息、数据的大小、所属用户ID等信息中的任意一种或多种。

当内存数组的某维度空间存储的预定属性信息满足批量处理条件时,再将该维度空间记录的信息所对应的多条待处理数据批量推送至相匹配的第二消息队列进行发送。

其中,上述的批量处理条件可以设定为以下的任意一种:

内存数组的相应维度空间所存储的预定属性信息的条数,或所存储的预定属性信息表征的待处理数据的条数达到数量阈值;

内存数组在相应维度空间的数组长度达到预定长度。

在该实施方式中,上游服务(第二服务)与数据流处理服务(第一服务)之间的数据传输,以及数据流处理服务的计量统计处理逻辑具体可参见图7所示。

本实施例基于多维内存数组,通过在满足批量处理条件时,将数组中对应于相应分区的多条待处理数据批量推送至相匹配的第二消息队列(供第一服务消费),可避免逐条数据分别实时推送的方式中第二服务与第二消息队列之间的频繁交互,提升了数据的推送性能。

在本申请一可选实施例中,参见图8示出的数据的计量统计方法的流程示意图,本申请方法在步骤203之后,还可以包括:

步骤204、根据上述目标位置存储的第一服务的计数器计数结果,获得第一服务已完成处理的数据对应的第一统计结果。

具体地,当技术或产品工作人员需要对第一服务(数据流处理服务)的运营情况以及服务本身所使用技术的运行情况进行把控时,可从保存有第一服务的计数器计量结果的目标位置(如数据库)中,读取所需信息,并将读取的原始信息(如第一服务在不同分区维度的不同计数周期维度对应的计数结果)作为上述第一统计结果,或者,还可以根据需求对读取的原始信息按相应统计方式进行统计处理,并将处理结果作为上述第一统计结果。

该第一统计结果,能用于反映第一服务在相应分区维度(各个单一分区维度,和/或多个分区维度的总和)、相应时段(一个或多个原始计数周期对应的时间段)的数据处理情况。

步骤205、获取对第二服务的生产数据进行统计所得的第二统计结果。

其中,可通过对第二服务生产数据时产生的日志信息进行分析、统计,而得到该第二统计结果。

以第二服务用于作为一接口层,负责接收其他业务应用或业务服务产生的数据,并在格式转换后输出至第一服务供第一服务消费为例,第二服务每接收到业务应用或业务服务的一条数据处理请求(如可以但不限于采用http/https请求的形式),就产生一条日志信息,该日志信息可以但不限于记录本次请求处理的数据对应的用户ID(如所属运营商ID)、数据大小、请求时间等属性信息。

后续,当技术或产品工作人员需要对第一服务的运营情况以及服务本身所使用技术的运行情况进行把控时,具体可通过对第二服务生产数据时产生的上述日志信息按要求进行分析、统计,而得到所需分区维度、所需时间段的生产数据的第二统计结果。

优选的,第二统计结果所对应的分区维度及时间段,分别与第一统计结果所对应的分区维度及时间段相一致,以便于技术或产品工作人员针对相同分区维度、相同时间段,确定上游生产的数据和数据流处理完成的数据是否一致。

例如,若第一统计结果为一定时间段内,对第一服务在各个单一分区维度已完成数据的统计结果,则第二统计结果相应为该时间段内,对第二服务在各个单一分区维度的已生产数据的统计结果;若第一统计结果为一定时间段内,对第一服务在所有分区维度的已完成数据的总统计结果,则第二统计结果相应为该时间段内,对第二服务在所有分区维度的已生产数据的总统计结果。

步骤206、确定上述第一统计结果与上述第二统计结果是否一致,得到确定结果。

最终,可通过确定上述第一统计结果与第二统计结果是否一致,而判定上游生产的数据和数据流处理完成的数据是否一致,进而便于技术或产品工作人员对服务运营情况以及服务本身所使用技术的运行情况进行把控,其中,如果两者是一致的,则说明第一服务运行稳定,否则,若不一致,则第一服务对上游第二服务生产的数据存在遗漏处理或重复处理情况,相应表明第一服务的运行不够稳定,后续可进一步针对该情况对第一服务进行问题排查及修复。

对应于上述的数据的计量统计方法,本实施例还公开一种数据的计量统计装置,参见图9提供的装置结构示意图,该装置可以包括:

获取单元901,用于获取第一服务的通知信息;该通知信息至少用于表示第一服务当前完成对预定数量单位的待处理数据的处理;

计数处理单元902,用于根据上述通知信息,触发第一服务内部维护的计数器对上述预定数量单位的待处理数据进行计数处理,得到相匹配的计数结果;

存储处理单元903,用于在满足时间条件情况下,利用中间存储媒介将上述计数器的计数结果转移存储至目标位置。

在本申请实施例的一可选实施方式中,获取单元901,具体用于:

利用第一服务内部启动的辅助线程接收第一服务的通知信息;

计数处理单元902,具体用于:

基于上述辅助线程触发计数器根据上述通知信息中包括的分区信息,在目标分区统计维度对上述预定数量单位的待处理数据进行计数处理;

其中,第一服务的待处理数据属于多个数据分区中的相应分区;上述分区信息用于指示上述预定数量单位的待处理数据所属的目标数据分区;上述目标分区统计维度为与上述目标数据分区对应的统计维度。

在本申请实施例的一可选实施方式中,计数处理单元902在目标分区统计维度对上述预定数量单位的待处理数据进行计数处理方面,具体用于:

将计数器在上述目标分区统计维度对应的至少一个计数周期维度的计数结果,增加上述预定数量单位。

在本申请实施例的一可选实施方式中,上述计数器为原子计数器;

该原子计数器存储有上述多个数据分区的分区信息集合,集合中的不同分区信息分别对应不同的分区统计维度;

该原子计数器基于锁机制,避免不同通知信息分别对应的不同计数任务之间的计数冲突。

在本申请实施例的一可选实施方式中,存储处理单元903,具体用于:

在满足第一时间条件情况下,将上述计数器的计数结果写入第一服务的本地文件;

在满足第二时间条件情况下,将上述本地文件存储至预定存储位置;

对上述预定存储位置的至少一个本地文件的计数数据进行聚合处理,得到第一聚合结果;将该第一聚合结果写入数据库并存储;

其中,不同本地文件分别为相同第一服务或不同第一服务的本地文件。

在本申请实施例的一可选实施方式中,存储处理单元903,具体用于:

在满足第三时间条件情况下,将上述计数器的计数结果写入预定消息队列组件的第一消息队列;

从上述第一消息队列获取至少一个第一服务的计数器计数结果;

对至少一个第一服务的计数器计数结果进行聚合处理,得到第二聚合结果;将该第二聚合结果写入数据库并存储。

在本申请实施例的一可选实施方式中,第一服务通过至少一个第二消息队列获取第二服务推送的待处理数据;

每一第二消息队列为第一服务对应的一个数据分区。

在本申请实施例的一可选实施方式中,第二服务维护有多维内存数组;该多维内存数组的不同维度分别对应第一服务的不同数据分区;

第二服务每产生一待处理数据,则将产生的待处理数据的预定属性信息记录至上述多维内存数组中与产生的待处理数据的分区信息相匹配的维度空间;

在多维内存数组的相应维度空间记录的预定属性信息满足批量处理条件时,将上述相应维度空间记录的信息所对应的多条待处理数据批量推送至相匹配的第二消息队列进行发送。

在本申请实施例的一可选实施方式中,如图10示出的装置结构示意图,该装置还可以包括:

判定单元904,用于:根据上述目标位置存储的第一服务的计数器计数结果,获得第一服务已完成处理的数据对应的第一统计结果;获取对第二服务生产的数据进行统计所得的第二统计结果;确定上述第一统计结果与上述第二统计结果是否一致,得到确定结果。

对于本申请实施例公开的数据的计量统计装置而言,由于其与上文方法实施例公开的数据的计量统计方法相对应,所以描述的比较简单,相关相似之处请参见上文相应方法实施例的说明即可,此处不再详述。

本申请实施例还公开了一种电子设备,该电子设备可以是但不限于具有数据处理功能的手机、平板电脑、个人PC(如笔记本、一体机、台式机)等终端设备,或具有数据处理功能的私有云/公有云云平台、局域网/互联网络服务器等对应的物理机。

如图11示出的电子设备的结构示意图,至少包括:

存储器1101,用于存放计算机指令集;

上述的计算机指令集可以采用计算机程序的形式实现。

存储器1101可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器1102,用于通过执行存储器上存放的指令集,实现如上任一方法实施例公开的数据的计量统计方法。

其中,处理器1102可以为中央处理器(Central Processing Unit,CPU),特定应用集成电路(application-specific integrated circuit,ASIC),数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件等。

除此之外,电子设备还可以包括通信接口、通信总线等组成部分。存储器、处理器和通信接口通过通信总线完成相互间的通信。

通信接口用于电子设备与其他设备之间的通信。通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等,该通信总线可以分为地址总线、数据总线、控制总线等。

本实施例中,电子设备中的处理器通过执行存储器中存放的计算机指令集,提出了在服务内部维护计数器的技术思想,每当服务完成对预定数量单位的待处理数据的处理,则基于通知消息,触发服务内部维护的计数器对当前完成的预定数量单位的待处理数据进行计数处理,后续,在满足时间条件情况下,利用中间存储媒介将计数器的计数结果转移存储至目标位置。本申请通过利用服务内部维护的计数器对服务处理完成的数据进行计量统计,并仅在满足时间条件情况下,才对计数器的计数结果进行转移存储,能有效降低对外部数据库的依赖,减少服务与外部数据库之间的交互,相应可达到降低服务的数据处理延迟、提升服务性能的目的。

另外,本申请实施例还公开一种计算机可读存储介质,该计算机可读存储介质内存储有计算机指令集,计算机指令集被处理器执行时实现如上文任一方法实施例公开的数据的计量统计方法。

具体地,本实施例的计算机可读存储介质中的计算机指令集被处理器执行时,每当服务完成对预定数量单位的待处理数据的处理,则基于通知消息,触发服务内部维护的计数器对当前完成的预定数量单位的待处理数据进行计数处理,后续,在满足时间条件情况下,利用中间存储媒介将计数器的计数结果转移存储至目标位置。本申请通过利用服务内部维护的计数器对服务处理完成的数据进行计量统计,并仅在满足时间条件情况下,才对计数器的计数结果进行转移存储,能有效降低对外部数据库的依赖,减少服务与外部数据库之间的交互,相应可达到降低服务的数据处理延迟、提升服务性能的目的。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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

相关技术
  • 数据的计量统计方法、装置、电子设备及存储介质
  • 一种数据请求频次统计方法、装置、电子设备及存储介质
技术分类

06120112965598