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

实时合并多种业务指标数据的方法、装置和计算机设备

文献发布时间:2023-06-19 12:07:15


实时合并多种业务指标数据的方法、装置和计算机设备

技术领域

本申请涉及数据处理技术领域,特别是涉及一种实时合并多种业务指标数据的方法、装置、计算机设备和存储介质。

背景技术

近年来,随着互联网技术的高速发展,待处理的数据量也大幅增加。特别是企业运营过程中,往往需要对多系统多维度的数据进行实时合并计算。然而,传统多系统多维度数据的实时合并计算方法通常是按周期抽取数据到HDFS中,然后通过Hive SQL对这些数据进行关联,实现多系统之间的数据加工、清洗及合并,最后形成一个完整维度的数据以提供给报表系统查询使用。该方法是在T时间处理T-1时间对应的数据,导致数据延迟性大;而且传统操作是把每个业务系统的指标数据都抽取到本地系统进行合并计算,需要海量抽取业务系统的数据,会对提供数据的业务系统的数据库造成很大的压力,从而影响业务系统接收外部信息查询时的响应时间,并且Hive SQL会消耗大量的计算资源。

发明内容

基于此,有必要针对上述技术问题,提供一种低侵入低延时的实时合并多种业务指标数据的方法、装置、计算机设备和存储介质。

本发明第一方面提供一种实时合并多种业务指标数据的方法,多种业务指标数据分别存储于多个外部数据表中,多个外部数据表设有相同的业务主键字段,在本地预置有多个本地数据表,多个本地数据表与多个外部数据表一一对应;所述方法包括:

实时将任一外部数据表中更新的业务指标记录存入该外部数据表对应的本地数据表中,每条业务指标记录包括业务主键字段信息和业务指标字段信息;

定时获取各本地数据表中的增量业务指标记录,对所有增量业务指标记录的业务主键字段信息进行合并去重处理,生成中间增量数据表,各增量业务指标记录为各本地数据表在过去预设时长内存入的业务指标记录,中间增量数据表包括多条更新业务主键字段信息;

根据每条更新业务主键字段信息从各本地数据表中获取对应的业务指标字段信息,对从各本地数据表中获取的业务指标字段信息进行合并计算,得到每条更新业务主键字段信息对应的复合业务指标数据。

在其中一个实施例中,实时将任一外部数据表中更新的业务指标记录存入该外部数据表对应的预置的本地数据表中,包括:

实时采集任一外部数据表在发生数据更新后产生的binlog日志,根据binlog日志获得该外部数据表中更新的业务指标记录,并将更新的业务指标记录存入该外部数据表对应的预置的本地数据表中。

在其中一个实施例中,业务指标记录还包括时间戳信息,中间增量数据表还包括与多条更新业务主键字段信息一一对应的多条更新时间戳信息;对所有增量业务指标记录的业务主键字段信息进行合并去重处理,生成中间增量数据表,包括:

对所有增量业务指标记录的业务主键字段信息进行合并去重处理,得到多条更新业务主键字段信息;

在所有增量业务指标记录中获取多条更新业务主键字段信息分别对应的最大时间戳信息,作为与多条更新业务主键字段信息一一对应的多条更新时间戳信息;

根据多条更新业务主键字段信息和与多条更新业务主键字段信息一一对应的多条更新时间戳信息,生成中间增量数据表。

在其中一个实施例中,多个本地数据表分别为在库数据表、在途入库数据表和在途出库数据表,在库数据表设置的业务指标字段为在库数字段,在途入库数据表设置的业务指标字段为在途入库数字段,在途出库数据表设置的业务指标字段为在途出库数字段;

根据每条更新业务主键字段信息从各本地数据表中获取对应的业务指标字段信息,包括:

根据每条更新业务主键字段信息,从在库数据表中获取该条更新业务主键字段信息对应的在库数、从在途入库数据表中获取该条更新业务主键字段信息对应的在途入库数以及从在途出库数据表中获取该条更新业务主键字段信息对应的在途出库数;

对从各本地数据表中获取的业务指标字段信息进行合并计算,得到每条更新业务主键字段信息对应的复合业务指标数据,包括:

对每条更新业务主键字段信息对应的所有在途入库数进行求和计算,得到每条更新业务主键字段信息对应的总在途入库数;

对每条更新业务主键字段信息对应的所有在途出库数进行求和计算,得到每条更新业务主键字段信息对应的总在途出库数;

对每条更新业务主键字段信息对应的在库数、总在途入库数和总在途出库数进行合并计算,得到每条更新业务主键字段信息对应的复合业务指标数据。

在其中一个实施例中,根据binlog日志获得该外部数据表中更新的业务指标记录,包括:

将binlog日志放入第一消息队列,对第一消息队列中的binlog日志进行解析得到该外部数据表中更新的业务指标记录。

在其中一个实施例中,根据binlog日志获得该外部数据表中更新的业务指标记录,包括:解析binlog日志得到该外部数据表中更新的业务指标记录,将该外部数据表中更新的业务指标记录放入第一消息队列;

将更新的业务指标记录存入该外部数据表对应的预置的本地数据表,包括:从第一消息队列获取出更新的业务指标记录存入该外部数据表对应的预置的本地数据表。

在其中一个实施例中,所述方法还包括:

将每条更新业务主键字段信息以及该更新业务主键字段信息对应的更新时间戳信息和复合业务指标数据存储到第二消息队列中,第二消息队列中的数据用于供下游业务系统进行消费;

具体地,外部数据表为Mysql数据库的数据表;第一消息队列和第二消息队列均为kafka消息队列;

具体地,业务主键字段信息包括商品编码、地点编码、库位编码以及供应商编码。

本发明第二方面提供一种实时合并多种业务指标数据的装置,多种业务指标数据分别存储于多个外部数据表中,多个外部数据表设有相同的业务主键字段,在本地预置有多个本地数据表,多个本地数据表与多个外部数据表一一对应;所述装置包括:

实时获取模块,用于实时将任一外部数据表中更新的业务指标记录存入该外部数据表对应的本地数据表中,每条业务指标记录包括业务主键字段信息和业务指标字段信息;

中间表生成模块,用于定时获取各本地数据表中的增量业务指标记录,对所有增量业务指标记录的业务主键字段信息进行合并去重处理,生成中间增量数据表,各增量业务指标记录为各本地数据表在过去预设时长内存入的业务指标记录,中间增量数据表包括多条更新业务主键字段信息;

合并计算模块,用于根据每条更新业务主键字段信息从各本地数据表中获取对应的业务指标字段信息,对从各本地数据表中获取的业务指标字段信息进行合并计算,得到每条更新业务主键字段信息对应的复合业务指标数据。

本发明第三方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一方法的实施例的步骤。

本发明第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的实施例的步骤。

在上述实施例中,本地预置有与多个外部数据表一一对应的多个本地数据表,服务器实时将任一外部数据表中更新的业务指标记录存入该外部数据表对应的本地数据表中,并定时获取各本地数据表中的增量业务指标记录进行处理后得到中间增量数据表,该中间增量数据表包括多条更新业务主键字段信息,根据每条更新业务主键字段信息从各本地数据表中获取对应的业务指标字段信息进行计算,可以得到每条更新业务主键字段信息对应的复合业务指标数据。

其中,上述多个外部数据表可能存在于相同或不同的业务系统中,服务器实时获取各外部数据表中更新的业务指标记录,每次从业务系统抽取的数据量少,能够减轻数据获取对业务系统数据库造成的压力,从而降低对业务系统的侵入性;同时,服务器还定时获取各本地数据表中的增量业务指标记录,生成中间增量数据表,再通过该中间增量数据表从各本地数据表中获取数据,计算得到复合业务指标数据,保证了数据合并计算的实时性和准确性。

附图说明

图1为一个实施例中实时合并多种业务指标数据的方法的应用环境图;

图2为一个实施例中实时合并多种业务指标数据的方法的流程示意图;

图3为一个实施例中中间增量数据表生成步骤的流程示意图;

图4为一个实施例中实时合并多种业务指标数据的装置的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

实施例一

在本实施例中,本申请提供的实时合并多种业务指标数据的方法可以应用于如图1所示的应用环境中。其中,本地服务器102通过网络与业务服务器104进行通信,本地服务器102还可以通过网络与下游系统106和/或终端108进行通信。业务服务器104中运行有多个业务系统,每个业务系统都具备一种或多种业务指标数据,以上多种业务指标数据分别存储于多个外部数据表中,该多个外部数据表设有相同的业务主键字段,且上述多个外部数据表可能存在于相同或不同的业务系统中,本地服务器102中预置有多个本地数据表,该多个本地数据表与多个外部数据表一一对应。本地服务器102可从业务服务器104实时获取到任一外部数据表中更新的业务指标记录,将这些更新的业务指标记录存入本地数据表中,本地服务器102还定时获取各本地数据表中的增量业务指标记录,生成中间增量数据表,再通过该中间增量数据表从各本地数据表中获取数据,计算得到复合业务指标数据,以供下游系统106或终端108使用。

其中,本地服务器102、业务服务器104和下游系统106均可以用独立的服务器或者是多个服务器组成的服务器集群来实现,也可以是由分布式系统来实现;终端108可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。

本实施例提供的一种实时合并多种业务指标数据的方法包括如图2所示的步骤,以下以该方法应用于图1中的本地服务器102为例进行说明。

步骤100,实时将任一外部数据表中更新的业务指标记录存入该外部数据表对应的本地数据表中。

其中,外部数据表可以为关联数据库的数据表,比如Mysql数据库的数据表。已知业务指标数据通常用于反映业务数量特征的概念和数值,一般由指标名称和指标数值两部分组成,则步骤100中的业务指标记录可视为一条具体的业务指标数据。

在一种实施方式中,每条业务指标记录包括业务主键字段信息和业务指标字段信息,其中,业务主键字段信息可以用于表示一个业务对象,业务指标字段信息则可以是该业务对象对应的一个指标数值,上述业务对象与其对应的指标数值共同组成一条业务指标记录。

比如,当业务指标数据为商品在库数量数据时,其对应的一条业务指标记录通常就是包括商品要素信息和商品在库数量的一条记录信息。上述商品要素信息即业务主键字段信息,用于表示作为业务对象的某种商品,商品在库数量即业务指标字段信息,也就是某种商品对应的在库数量的具体数值,在库数量通常是一个正整数值。在一些涉及商品销售、运输或库存的具体实施场景下,例如上述方法应用于库存领域时,商品要素信息可以包括商品编码、地点编码、库位编码以及供应商编码。

在另一种实施方式中,每条业务指标记录不仅包括业务主键字段信息和业务指标字段信息,还包括记录时间信息,该记录时间信息可以用于记录数据更新的时间,一般采用字段形式来记录,比如时间戳字段。此时,每条业务指标记录包括业务主键字段信息、业务指标字段信息和时间戳信息,各所述本地数据表设置的字段为业务主键字段、业务指标字段和时间戳字段。

为了降低从业务系统抽取的数据量,减轻数据获取对业务系统数据库造成的压力,本地服务器102实时获取各外部数据表中更新的业务指标记录,而非全部业务指标数据。具体地,本地服务器102从外部数据表实时获取数据时,可采用以下获取更新数据的几种方法,比如:建立触发器,将外部数据表中增删改的操作提取出来,分析得到更新的业务指标记录;或者,通过解析外部数据表的日志信息,获取到更新的业务指标记录。

以通过解析日志信息获取更新数据这一方法为例,在一种实施方式中,步骤100包括以下步骤:

实时采集任一外部数据表在发生数据更新后产生的binlog日志,根据binlog日志获得该外部数据表中更新的业务指标记录,并将更新的业务指标记录存入该外部数据表对应的预置的本地数据表中。

其中,binlog日志是记录所有数据库表结构变更以及表数据修改的二进制日志,所以只要外部数据表发生变化,就会产生binlog日志。例如,易购页面某商品下单,该商品的库存发生变化,库存系统就会对该商品的库存减一,就产生了Binlog日志。

对于多个业务系统进行数据抽取时,往往会导致业务系统数据库压力提升,而在本实施方式中采用了采集并解析外部数据表的binlog日志这一方式,可以与外部数据表中的业务数据解耦,实现了对业务系统的低侵入,极大的减轻了对业务系统的影响。

此外,在上述对binlog日志进行采集、解析和存入本地数据表的日志处理步骤中,考虑到可能存在由不同服务器执行上述操作的情况,还可以采用消息队列来存储日志处理过程中产生的中间数据,以便其他服务器也可以利用消息队列中的中间数据。

因此,基于上述实施方式,在一种实施方式中,根据binlog日志获得该外部数据表中更新的业务指标记录的步骤,可以进一步地包括:将binlog日志放入第一消息队列,对第一消息队列中的binlog日志进行解析得到该外部数据表中更新的业务指标记录。

在另一种实施方式中,根据binlog日志获得该外部数据表中更新的业务指标记录的步骤,可以进一步地包括:解析binlog日志得到该外部数据表中更新的业务指标记录,将该外部数据表中更新的业务指标记录放入第一消息队列;在本实施方式中,将更新的业务指标记录存入该外部数据表对应的预置的本地数据表的步骤,包括:从第一消息队列获取出更新的业务指标记录存入该外部数据表对应的预置的本地数据表。

在上述实施方式中,可以使用日志采集工具来实时采集和解析binlog日志,比如Flume、logstash等日志采集工具;第一消息队列可以采用常见的消息队列,比如Kafka、ActiveMQ、RabbitMQ等。

值得注意的是,除了列举出的获取更新数据的方式以外,还可以通过其他方式实现该过程,本发明实施例对具体的获取更新数据方式不加以限定。

步骤200,定时获取各本地数据表中的增量业务指标记录,对所有增量业务指标记录的业务主键字段信息进行合并去重处理,生成中间增量数据表。

其中,各增量业务指标记录为各本地数据表在过去预设时长内存入的业务指标记录,中间增量数据表包括多条更新业务主键字段信息,该更新业务主键字段信息为通过将所有增量业务指标记录中的相同的业务主键字段信息进行合并后得到的业务主键字段信息,每条更新业务主键字段信息为在过去预设时长内所有外部数据表中其对应的业务指标字段信息发生数据更新的业务主键字段信息,可知各条更新业务主键字段信息是不同的业务主键字段信息。

具体地,本地服务器102以预设时长为间隔定时获取各本地数据表中的增量业务指标记录,也即获取各本地数据表在过去预设时长内存入的业务指标记录,对每次获取到的业务指标记录的业务主键字段信息进行合并去重处理,生成中间增量数据表。

实际应用场景中,为了保证实时合并数据的实时性和准确性,预设时长可以设定为小于5分钟的任一时间值,比如1分钟、2分钟等,并通过实时流数据处理工具来定时获取增量业务指标记录以生成中间增量数据表,比如:通过Spark Streaming定时获取和处理增量业务指标记录,得到中间增量数据表,这里的中间增量数据表可以为临时存在的一个中间表,可以用于存储各本地数据表之间关联后的数据,使得各本地数据表之间相互独立,实现解耦,使用中间表的好处是中间表只存在一个会话中,当这个会话结束时会中间表自动删除和释放其所占用的资源,使用灵活,提高数据处理速度。

其中,Spark Streaming是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理,其支持从多种数据源获取数据,包括Kafka、Flume,还可以使用高级函数进行算法处理,并将处理结果存储到数据库中。

在一种实施方式中,业务指标记录还包括时间戳信息,中间增量数据表还包括与多条更新业务主键字段信息一一对应的多条更新时间戳信息,中间增量数据表设置的字段为业务主键字段和时间戳字段;对所有增量业务指标记录的业务主键字段信息进行合并去重处理,生成中间增量数据表,包括如图3所示的步骤:

步骤210,对所有增量业务指标记录的业务主键字段信息进行合并去重处理,得到多条更新业务主键字段信息。

步骤220,在所有增量业务指标记录中获取多条更新业务主键字段信息分别对应的最大时间戳信息,作为与多条更新业务主键字段信息一一对应的多条更新时间戳信息。

步骤230,根据多条更新业务主键字段信息和与多条更新业务主键字段信息一一对应的多条更新时间戳信息,生成中间增量数据表。

其中,已知时间戳越大,数据越新,上述实施方式中通过选取每条更新业务主键字段信息对应的最大时间戳信息作为其对应的更新时间戳信息,确保中间增量数据表中记录的是最新的数据更新时间,同时保证了后续系统可以获取到最新的复合业务指标数据。

步骤300,根据每条更新业务主键字段信息从各本地数据表中获取对应的业务指标字段信息,对从各本地数据表中获取的业务指标字段信息进行合并计算,得到每条更新业务主键字段信息对应的复合业务指标数据。

其中,复合业务指标数据可以是通过对从各本地数据表中获取的业务指标字段信息进行合并计算得到的一个具体数值。例如,当各个业务指标字段信息均为某项数值时,复合业务指标数据可以为各项数值按预设规则计算得到的一个数值。

以所述方法用于实时合并库存指标数据为例,在一种实施方式中,多个本地数据表分别为在库数据表、在途入库数据表和在途出库数据表,在库数据表设置的业务指标字段为在库数字段,在途入库数据表设置的业务指标字段为在途入库数字段,在途出库数据表设置的业务指标字段为在途出库数字段。

根据每条更新业务主键字段信息从各本地数据表中获取对应的业务指标字段信息,包括:根据每条更新业务主键字段信息,从在库数据表中获取该条更新业务主键字段信息对应的在库数、从在途入库数据表中获取该条更新业务主键字段信息对应的在途入库数以及从在途出库数据表中获取该条更新业务主键字段信息对应的在途出库数。

其中,在库数是指与更新主键字段信息对应的在库数字段信息,在途入库数与更新主键字段信息对应的在途入库数字段,在途出库数是与更新主键字段信息对应的在途出库数字段。

对从各本地数据表中获取的业务指标字段信息进行合并计算,得到每条更新业务主键字段信息对应的复合业务指标数据,包括:

对每条更新业务主键字段信息对应的所有在途入库数进行求和计算,得到每条更新业务主键字段信息对应的总在途入库数。

对每条更新业务主键字段信息对应的所有在途出库数进行求和计算,得到每条更新业务主键字段信息对应的总在途出库数。

对每条更新业务主键字段信息对应的在库数、总在途入库数和总在途出库数进行合并计算,得到每条更新业务主键字段信息对应的复合业务指标数据。

其中,在库数据表的存储方式是更新存储,如果一个商品库存发生变化,则把变化后的在库数按业务主键字段信息更新到在库数据表;在途入库数据表和在途出库数据表的存储方式均为增量存储,在途入库或在途出库的每一笔正常订单,都有一次入库或出库数量,所以对每条更新业务主键字段信息对应的所有在途入库数或在途出库数进行求和计算。

在库存系统中,经常存在库存更新不实时、库存数据不准确的情况,难以有效地控制总库存和平衡各渠道库存,造成库存贬值和不必要的库存调拨。上述实时合并多种业务指标数据的方法可以适用于各类库存数据的实时计算,让库存管理更实时、更准确。

在一种实施方式中,所述方法还包括:将每条更新业务主键字段信息以及该更新业务主键字段信息对应的更新时间戳信息和复合业务指标数据存储到第二消息队列中,第二消息队列中的数据用于供下游业务系统进行消费。

其中,第二消息队列可以采用常见的消息队列,比如Kafka、ActiveMQ、RabbitMQ等,具体实施时,第二消息队列即可以与第一消息队列采用同样的格式,也可以采用不同格式。下游业务系统可以为需要使用复合业务指标数据的任一业务系统,这些业务系统通常和本地服务器属于不同的系统。

具体地,由于企业内部的组织架构关系,下游业务系统在需要使用复合业务指标数据时,往往无法直接访问业务系统的数据库或本地服务器的数据库,因此本地服务器把数据存储到第二消息队列中,以供下游业务系统进行消费。下游业务系统在实时消费第二消息队列中的数据时,对具有相同的更新业务主键字段信息的多条数据,选取更新时间戳信息最大的一条数据,保证获取到的复合业务指标数据是最新的。

在上述实施例中,本地预置有与多个外部数据表一一对应的多个本地数据表,服务器实时将任一外部数据表中更新的业务指标记录存入该外部数据表对应的本地数据表中,并定时获取各本地数据表中的增量业务指标记录进行处理后得到中间增量数据表,该中间增量数据表包括多条更新业务主键字段信息,根据每条更新业务主键字段信息从各本地数据表中获取对应的业务指标字段信息进行计算,可以得到每条更新业务主键字段信息对应的复合业务指标数据。

其中,上述多个外部数据表可能存在于相同或不同的业务系统中,服务器实时获取各外部数据表中更新的业务指标记录,每次从业务系统抽取的数据量少,能够减轻数据获取对业务系统数据库造成的压力,从而降低对业务系统的侵入性;同时,服务器还定时获取各本地数据表中的增量业务指标记录,生成中间增量数据表,再通过该中间增量数据表从各本地数据表中获取数据,计算得到复合业务指标数据,保证了数据合并计算的实时性和准确性。

应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的流程图的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

实施例二

本实施例提供了一种实时合并多种业务指标数据的装置,多种业务指标数据分别存储于多个外部数据表中,多个外部数据表设有相同的业务主键字段,在本地预置有多个本地数据表,多个本地数据表与多个外部数据表一一对应;如图4所示,该装置包括:

实时获取模块402,用于实时将任一外部数据表中更新的业务指标记录存入该外部数据表对应的本地数据表中,每条业务指标记录包括业务主键字段信息和业务指标字段信息。

中间表生成模块404,用于定时获取各本地数据表中的增量业务指标记录,对所有增量业务指标记录的业务主键字段信息进行合并去重处理,生成中间增量数据表,各增量业务指标记录为各本地数据表在过去预设时长内存入的业务指标记录,中间增量数据表包括多条更新业务主键字段信息。

合并计算模块406,用于根据每条更新业务主键字段信息从各本地数据表中获取对应的业务指标字段信息,对从各本地数据表中获取的业务指标字段信息进行合并计算,得到每条更新业务主键字段信息对应的复合业务指标数据。

在一种实施方式中,上述实时获取模块具体用于实时采集任一外部数据表在发生数据更新后产生的binlog日志,根据binlog日志获得该外部数据表中更新的业务指标记录,并将更新的业务指标记录存入该外部数据表对应的预置的本地数据表中。

在一种实施方式中,业务指标记录还包括时间戳信息,中间增量数据表还包括与多条更新业务主键字段信息一一对应的多条更新时间戳信息;上述中间表生成模块包括:

更新业务主键字段信息获取单元,用于对所有增量业务指标记录的业务主键字段信息进行合并去重处理,得到多条更新业务主键字段信息。

更新时间戳信息获取单元,用于在所有增量业务指标记录中获取多条更新业务主键字段信息分别对应的最大时间戳信息,作为与多条更新业务主键字段信息一一对应的多条更新时间戳信息。

中间表生成单元,用于根据多条更新业务主键字段信息和与多条更新业务主键字段信息一一对应的多条更新时间戳信息,生成中间增量数据表。

在一种实施方式中,多个本地数据表分别为在库数据表、在途入库数据表和在途出库数据表,在库数据表设置的业务指标字段为在库数字段,在途入库数据表设置的业务指标字段为在途入库数字段,在途出库数据表设置的业务指标字段为在途出库数字段;上述合并计算模块,包括:

业务指标字段信息获取单元,用于根据每条更新业务主键字段信息,从在库数据表中获取该条更新业务主键字段信息对应的在库数、从在途入库数据表中获取该条更新业务主键字段信息对应的在途入库数以及从在途出库数据表中获取该条更新业务主键字段信息对应的在途出库数;

合并计算单元,用于对从各本地数据表中获取的业务指标字段信息进行合并计算,得到每条更新业务主键字段信息对应的复合业务指标数据,具体用于:对每条更新业务主键字段信息对应的所有在途入库数进行求和计算,得到每条更新业务主键字段信息对应的总在途入库数;对每条更新业务主键字段信息对应的所有在途出库数进行求和计算,得到每条更新业务主键字段信息对应的总在途出库数;对每条更新业务主键字段信息对应的在库数、总在途入库数和总在途出库数进行合并计算,得到每条更新业务主键字段信息对应的复合业务指标数据。

在一种实施方式中,上述实时获取模块进一步具体用于将binlog日志放入第一消息队列,对第一消息队列中的binlog日志进行解析得到该外部数据表中更新的业务指标记录。

在另一种实施方式中,上述实时获取模块具体用于解析binlog日志得到该外部数据表中更新的业务指标记录,将该外部数据表中更新的业务指标记录放入第一消息队列;从第一消息队列获取出更新的业务指标记录存入该外部数据表对应的预置的本地数据表。

在一种实施方式中,所述装置还包括:

数据存储模块,用于将每条更新业务主键字段信息以及该更新业务主键字段信息对应的更新时间戳信息和复合业务指标数据存储到第二消息队列中,第二消息队列中的数据用于供下游业务系统进行消费;可选地,外部数据表为Mysql数据库的数据表;第一消息队列和第二消息队列均为kafka消息队列;可选地,业务主键字段信息包括商品编码、地点编码、库位编码以及供应商编码。

关于实时合并多种业务指标数据的装置的具体限定可以参见上文中对于实时合并多种业务指标数据的方法的限定,在此不再赘述。上述实时合并多种业务指标数据的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

实施例三

在本实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上述实施例一和实施例二中所介绍的一种实时合并多种业务指标数据的方法的步骤。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

实施例四

在本实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述实施例一和实施例二中所介绍的一种实时合并多种业务指标数据的方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 实时合并多种业务指标数据的方法、装置和计算机设备
  • 指标数据查询方法、装置、计算机设备和计算机程序产品
技术分类

06120113178048