CN108959279B - 数据处理方法、数据处理装置、可读介质及电子设备 - Google Patents
数据处理方法、数据处理装置、可读介质及电子设备 Download PDFInfo
- Publication number
- CN108959279B CN108959279B CN201710347597.0A CN201710347597A CN108959279B CN 108959279 B CN108959279 B CN 108959279B CN 201710347597 A CN201710347597 A CN 201710347597A CN 108959279 B CN108959279 B CN 108959279B
- Authority
- CN
- China
- Prior art keywords
- index
- database
- expression
- data
- matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据处理方法、数据处理装置、可读介质及电子设备。该数据处理方法包括:获取第一数据库中的增量数据;对所述增量数据进行统计分析,以生成统计结果;将所述统计结果存储至第二数据库;基于所述第二数据库响应客户端的数据查询请求。本发明的技术方案使得对数据的统计及查询操作不会占用第一数据库的资源,进而能够避免数据统计及查询操作影响第一数据库的正常业务操作。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种数据处理方法、数据处理装置、可读介质及电子设备。
背景技术
对于关系型数据库,往往都有报表统计的需求,例如电商系统需要统计每分钟用户的下单量,物流系统需要统计每分钟妥投的包裹量。如果业务量大,关系型数据库的压力也会很大,如果关系型数据库在处理业务请求的同时,还要处理报表统计需求,有可能会影响正常业务请求的处理。另外,在业务量巨大的情况下,关系型数据库可能使用了分库分表技术,这时若想通过数据库来统计整体的报表,就变得很困难。
相关技术中提出的通过查询关系型数据库来生成统计报表数据的方案如图1所示,其过程主要包括:客户端发起报表查询请求,Web服务接收到客户端发起的请求,然后根据客户端的请求生成报表统计SQL语句并发送给数据库,数据库执行SQL,并将结果返回给Web服务,Web服务将数据库返回的结果发送给客户端。
但是,对于复杂逻辑的统计报表来说,相关技术中采用的SQL查询方式效率低、并且会占用数据库的资源,有可能影响数据库的正常业务操作;而为了实现复杂逻辑统计报表的查询,往往需要给数据库建立适合统计报表的索引,这也会降低数据库的业务写操作的执行性能;并且相关技术中的方案也无法支持分库分表之后的统计报表操作。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的在于提供一种数据处理方法,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的第一方面,提供了一种数据处理方法,包括:获取第一数据库中的增量数据;对所述增量数据进行统计分析,以生成统计结果;将所述统计结果存储至第二数据库;基于所述第二数据库响应客户端的数据查询请求。
在本发明的一些实施例中,基于前述方案,对所述增量数据进行统计分析,以生成统计结果的步骤,包括:获取指标公式,其中,每个所述指标公式对应于所述增量数据的一种统计指标;根据所述指标公式,在所述增量数据中查找对应的指标增量;根据查找到的指标增量,生成所述统计结果。
在本发明的一些实施例中,基于前述方案,根据所述指标公式,在所述增量数据中查找对应的指标增量的步骤,包括:解析所述指标公式中包含的各个匹配表达式,以得到所述各个匹配表达式的值;基于所述各个匹配表达式的值,匹配所述增量数据中的指标增量。
在本发明的一些实施例中,基于前述方案,解析所述指标公式中包含的任一匹配表达式的过程,包括:根据所述任一匹配表达式的内容,基于匹配表达式与解析代码的映射关系生成所述任一匹配表达式的解析代码;编译所述任一匹配表达式的解析代码,得到所述任一匹配表达式的实现类;根据所述任一匹配表达式的实现类,生成所述任一匹配表达式的解析实例;通过所述任一匹配表达式的解析实例解析所述任一匹配表达式。
在本发明的一些实施例中,基于前述方案,还包括:在生成所述任一匹配表达式的解析代码之前,判断是否已存在所述任一匹配表达式的解析实例;若已存在所述任一匹配表达式的解析实例,则直接根据所述任一匹配表达式的解析实例解析所述任一匹配表达式;若不存在所述任一匹配表达式的解析实例,则根据所述任一匹配表达式的内容,基于匹配表达式与解析代码的映射关系生成所述任一匹配表达式的解析代码。
在本发明的一些实施例中,基于前述方案,所述各个匹配表达式包括:用于判断所述增量数据是否符合指标计算要求的指标条件表达式、用于标识要统计的指标维度的指标维度表达式、用于标识要统计的指标值的指标增量值表达式、用于标识指标业务发生时间的时间表达式。
在本发明的一些实施例中,基于前述方案,还包括:在对所述增量数据进行统计分析时,根据所述增量数据的业务主键判断是否已对所述增量数据进行统计分析;若根据所述增量数据的业务主键判定已对所述增量数据进行统计分析,则不对所述增量数据进行统计分析。
在本发明的一些实施例中,基于前述方案,根据查找到的指标增量,生成所述统计结果的步骤,包括:根据所述指标公式的标识码、所述指标公式统计的指标维度和所述指标公式统计的指标业务时间的基础部分生成哈希表的key;根据所述指标公式统计的指标业务时间的刻度部分生成哈希表的field;基于所述哈希表的key和所述哈希表的field生成哈希表,并将查找的指标增量作为对应的field的值存储至所述哈希表中。
在本发明的一些实施例中,基于前述方案,在所述第二数据库为基于内存存储的数据库的情况下,所述数据处理方法还包括:将所述第二数据库中存储的历史统计结果转存至第三数据库,并通过所述第二数据库和所述第三数据库响应所述客户端的数据查询请求。
在本发明的一些实施例中,基于前述方案,将所述第二数据库中存储的历史统计结果转存至第三数据库的步骤,包括:判断基于所述指标公式得到的统计结果是否已结转到指定时间;若基于所述指标公式得到的统计结果未结转到所述指定时间,则从所述第二数据库中获取基于所述指标公式得到的在所述指定时间之前的统计结果;将从所述第二数据库中获取的统计结果存储至所述第三数据库中。
在本发明的一些实施例中,基于前述方案,将从所述第二数据库中获取的统计结果存储至所述第三数据库中的步骤,包括:在所述第三数据库中创建表结构,所述表结构包括多列,所述多列分别用于存储所述指标公式的标识码、所述指标公式统计的指标维度、所述指标公式统计的指标业务时间的基础部分、所述指标公式统计的指标业务时间的每一刻度部分所对应的指标增量;将从所述第二数据库中获取的统计结果插入所述表结构中。
在本发明的一些实施例中,基于前述方案,获取第一数据库中的增量数据的步骤,包括:获取所述第一数据库中的增量日志;基于所述增量日志,获取所述增量数据。
根据本发明的第二方面,提供了一种数据处理装置,包括:获取单元,用于获取第一数据库中的增量数据;统计单元,用于对所述增量数据进行统计分析,以生成统计结果;存储单元,用于将所述统计结果存储至第二数据库;处理单元,用于基于所述第二数据库响应客户端的数据查询请求。
根据本发明的第三方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述第一方面所述的数据处理方法。
根据本发明的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述第一方面所述的数据处理方法。
在本发明的一些实施例所提供的技术方案中,通过获取第一数据库中的增量数据,并对获取到的增量数据进行统计分析,将统计结果存储至第二数据库,以基于第二数据库响应客户端的数据查询请求,使得对数据的统计及查询操作不会占用第一数据库的资源,进而能够避免数据统计及查询操作影响第一数据库的正常业务操作。
在本发明的一些实施例所提供的技术方案中,通过根据指标公式来查找对应的指标增量,使得能够提高指标增量的查询效率,进而能够提高数据统计的效率。
在本发明的一些实施例所提供的技术方案中,通过基于哈希表的形式存储查找到的指标增量,一方面可以提高存储效率,另一方面也可以提高数据的读取效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了相关技术中查询关系型数据库来生成统计报表的流程图;
图2示意性示出了根据本发明的实施例的数据处理方法的流程图;
图3示意性示出了根据本发明的实施例的对增量数据进行统计分析,以生成统计结果的流程图;
图4示意性示出了根据本发明的实施例的数据处理系统的结构示意图;
图5示意性示出了根据本发明的实施例的图4中所示的统计引擎的处理流程图;
图6示意性示出了根据本发明的实施例的指标数据在关系型数据库中的存储结构图;
图7示意性示出了根据本发明的实施例的数据处理装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图2示意性示出了根据本发明的实施例的数据处理方法的流程图。
参照图2,根据本发明的实施例的数据处理方法,包括:
步骤S20,获取第一数据库中的增量数据。
根据本发明的示例性实施例,步骤S202包括:获取所述第一数据库中的增量日志;基于所述增量日志,获取所述增量数据。
步骤S22,对所述增量数据进行统计分析,以生成统计结果。
根据本发明的示例性实施例,如图3所示,步骤S22中对所述增量数据进行统计分析,以生成统计结果的过程具体包括:
步骤S220,获取指标公式,其中,每个所述指标公式对应于所述增量数据的一种统计指标。
在本发明的实施例中,指标公式可以包含标识码(即指标公式ID),并且可以用该标识码来标识所述增量数据的统计指标。
此外,指标公式中还可以包含多个匹配表达式,如用于判断所述增量数据是否符合指标计算要求的指标条件表达式、用于标识要统计的指标维度的指标维度表达式、用于标识要统计的指标值的指标增量值表达式、用于标识指标业务发生时间的时间表达式等。
步骤S222,根据所述指标公式,在所述增量数据中查找对应的指标增量。
根据本发明的示例性实施例,步骤S222包括:解析所述指标公式中包含的各个匹配表达式,以得到所述各个匹配表达式的值;基于所述各个匹配表达式的值,匹配所述增量数据中的指标增量。
进一步地,在本发明的实施例中,解析指标公式中包含的任一匹配表达式的过程,包括:根据所述任一匹配表达式的内容,基于匹配表达式与解析代码的映射关系生成所述任一匹配表达式的解析代码;编译所述任一匹配表达式的解析代码,得到所述任一匹配表达式的实现类;根据所述任一匹配表达式的实现类,生成所述任一匹配表达式的解析实例;通过所述任一匹配表达式的解析实例解析所述任一匹配表达式。
此外,在生成所述任一匹配表达式的解析代码之前,可以判断是否已存在所述任一匹配表达式的解析实例;若已存在所述任一匹配表达式的解析实例,则直接根据所述任一匹配表达式的解析实例解析所述任一匹配表达式;若不存在所述任一匹配表达式的解析实例,则根据所述任一匹配表达式的内容,基于匹配表达式与解析代码的映射关系生成所述任一匹配表达式的解析代码。
步骤S224,根据查找到的指标增量,生成所述统计结果。
根据本发明的示例性实施例,步骤S224包括:根据所述指标公式的标识码、所述指标公式统计的指标维度和所述指标公式统计的指标业务时间的基础部分生成哈希表的key;根据所述指标公式统计的指标业务时间的刻度部分生成哈希表的field;基于所述哈希表的key和所述哈希表的field生成哈希表,并将查找的指标增量作为对应的field的值存储至所述哈希表中。
需要说明的是,划分指标业务时间的基础部分和刻度部分的主要目的是为了在存储指标增量时,能够尽量减少哈希表占用的存储空间。其中的基础部分可以是较大的时间单位对应的部分,刻度部分可以是较小的时间单位对应的部分,比如基础部分包含年、月、日、小时,刻度部分包含分钟和秒。
此外,在对所述增量数据进行统计分析时,根据所述增量数据的业务主键判断是否已对所述增量数据进行统计分析;若根据所述增量数据的业务主键判定已对所述增量数据进行统计分析,则不对所述增量数据进行统计分析。
继续参照图2,所述的数据处理方法还包括:
步骤S24,将所述统计结果存储至第二数据库。
步骤S26,基于所述第二数据库响应客户端的数据查询请求。
此外,在本发明的实施例中,当所述第二数据库为基于内存存储的数据库的情况下,所述数据处理方法还包括:将所述第二数据库中存储的历史统计结果转存至第三数据库,并通过所述第二数据库和所述第三数据库响应所述客户端的数据查询请求。
在该实施例中,由于第二数据库是基于内存存储的数据库(如Redis),其内存有限,因此为了避免存储数据过多影响第二数据库的性能,可以将第二数据库中的历史统计结果转存至第三数据库中。
在本发明的一些实施例中,基于前述方案,将所述第二数据库中存储的历史统计结果转存至第三数据库的步骤,包括:判断基于所述指标公式得到的统计结果是否已结转到指定时间;若基于所述指标公式得到的统计结果未结转到所述指定时间,则从所述第二数据库中获取基于所述指标公式得到的在所述指定时间之前的统计结果;将从所述第二数据库中获取的统计结果存储至所述第三数据库中。
在本发明的一些实施例中,基于前述方案,将从所述第二数据库中获取的统计结果存储至所述第三数据库中的步骤,包括:在所述第三数据库中创建表结构,所述表结构包括多列,所述多列分别用于存储所述指标公式的标识码、所述指标公式统计的指标维度、所述指标公式统计的指标业务时间的基础部分、所述指标公式统计的指标业务时间的每一刻度部分所对应的指标增量;将从所述第二数据库中获取的统计结果插入所述表结构中。
以下以上述的第一数据库为关系型数据库,上述的第二数据库为Redis(一个开源的、基于内存的可持久化的高性能key-value存储系统,具有可存储Value数据类型和原子操作丰富等特性)为例,对本发明实施例的技术方案进行详细说明。
如图4所示为根据本发明的实施例的数据处理系统的结构示意图,基于该系统结构,本发明实施例的处理过程如下,具体包括:
步骤1,通过增量数据抽取器抽取关系型数据库的日志得到一台或多台数据库变化的增量数据。其中,对于不同的数据库,增量数据抽取器也不同,比如可以使用开源的Canal抽取mysql中的增量日志,使用ogg for java抽取oracle中的增量日志等。
步骤2,抽取增量数据之后将增量数据发送到消息队列MQ(Message queue,是开源的基于JMS的消息总线,经常被用来作为异步处理的一种实现方式)中。
步骤3,统计引擎消费MQ中的消息,经计算后将统计结果存储到Redis中。
步骤4,数据转移模块定期将Redis中的统计结果转移到统计结果库中。其中,统计结果库可以是关系型数据库。
后续客户端可以基于Web服务直接在Redis和/或统计结果库中查询统计结果,如查询统计报表。
以下对统计引擎和数据转移单元的处理过程进行详细说明:
如图5所示为根据本发明的实施例的统计引擎的处理过程,具体包括以下步骤:
步骤S502,配置指标公式。其中,指标公式包括进行报表统计时所需要的统计方法属性,包含:
1)指标公式ID:用来唯一标识一种统计指标。
2)指标条件表达式:用于判断获取到的数据库增量数据是否是符合指标计算的要求。比如如下的指标条件表达式:
@{message.after.getByte('yn')==1&&message.after.getInt('order_status_id')==10110}表示增量消息message修改后的数据表列yn等于1并且order_status_id列的值等于10110。
3)指标维度表达式:用于确定指标维度。例如在统计报表时需要统计配送站点妥投包裹量,维度就是站点id,指标维度表达式举例如下:@{message.after.getInt('site_id')}。
4)指标增量值表达式:用于统计具体的数据。其中,指标增量值表达式可以是常量,如指标增量值表达式为“1”时,表示统计指标增量为常量1;指标增量值表达式也可以是表达式,如指标增量值表达式为@{message.after.price}表示指标增量为商品价格。
5)指标业务发生时间表达式:用于确定指标业务的发生时间。如可以为:@{message.after.getDate('operate_time')}。
6)统计报表的单位时间类型,包括:秒、分钟、5分钟、10分钟等不同时间刻度。
步骤S504,判断指标条件表达式是否成立,若是,则执行步骤S506;否则,结束。需要说明的是,判断指标条件表达式是否成立是判断增量数据是否符合指标计算的要求。
在判断指标条件表达式是否成立时,需要对指标条件表达式进行解析,得到指标条件表达式的值。其中,在本发明的示例性实施例中,对指标条件表达式进行解析的过程包括:
步骤1、判断表达式缓冲池中是否有该表达式计算器的已编译版本,即判断表达式缓冲池中是否有表达式的解析实例,如果没有,则执行步骤2,如果有,则执行步骤5。
步骤2、基于表达式内容,根据表达式和代码映射表生成表达式解析的java代码。
步骤3:使用javassit编译步骤2中生成的java代码,得到实现表达式计算器的实现类。
步骤4:生成表达式计算器的实例,并放入表达式缓冲池。
步骤5:使用表达式解析实例解析表达式得到表达式值。
继续参照图5,统计引擎的处理过程还包括:
步骤S506,解析指标公式中的指标维度表达式。其中,对指标维度表达式的解析过程同上。
步骤S508,解析增量数据的业务主键。
步骤S510,根据增量数据的业务主键,通过redis的setnx命令判断此增量数据是否已经做过统计,防止因为数据重发导致的统计重复,如果重复则跳出,否则继续执行步骤S512。
步骤S512,解析指标公式中的指标增量值表达式。其中,对指标增量值表达式的解析过程同上。
步骤S514,解析指标公式中的指标业务发生时间表达式。其中,对指标业务发生时间表达式的解析过程同上。
步骤S516,基于上述的解析过程,得到各个表达式的值,然后找到相应的指标增量,并存储指标增量。
需要说明的是,对指标公式中的各个表达式的解析顺序并不限于图5中所示的顺序,本领域技术人员可以根据实际需要对其进行调整。
另外,可以将指标增量数据存储到redis中。具体地,在redis中以hash表的形式存储,hash表的Key为指标公式id+指标维度+指标业务时间的基础部分,hash表的field为指标业务时间的刻度部分,field的value为指标数值。在存储时需要首先计算指标的hashKey、field,然后执行redis的hincr操作来插入value值。
上述提到的业务时间的基础部分和刻度部分的计算方法是根据指标时间单位来计算的,例如时间单位为秒,那么基础部分为YYYYMMddHH(年、月、日、小时)的整数形式,刻度部分为MMss(分钟和秒)的整数形式。基础部分和刻度部分的划分原则是避免一个Redishash表占用较大的内存空间(如避免一个Redis hash表占用超过20k的内存空间),这样可以保证redis存取的高性能。
对于图4中所示的数据转移单元的处理过程说明如下:
数据转移单元负责将redis中的指标结果值转移到关系型数据库中,因为redis是基于内存存储的,其性能较高但容量不足,故需要定期将历史统计报表结果数据转存到关系型数据库中。其转存过程包括如下步骤:
步骤1:取得指标公式列表,循环判断基于指标公式获得的指标结果是否结转到指定时间,如果未结转,则执行步骤2;如果已结转,则循环下一指标公式。
步骤2:计算上述指定时间对应的redis中存储的业务时间的基础部分,并取得该业务时间的基础部分对应的所有统计维度值数据,循环处理每一个维度,将指标公式id+指标维度+指标业务时间的基础部分组合获得redis Key,并从redis中获得指标时间刻度和指标值。
步骤3:根据步骤2中的业务时间计算存储到关系型数据库时的基础部分,并将刻度部分拼接为insert/update SQL语句插入到关系型数据库中。
在本发明的示例性实施例中,指标数据在关系型数据库中的存储结构如图6所示:第1列可以为指标类型的指标公式id,第2列可以为指标维度,第3列可以为业务时间的基础部分,第4列开始为v+业务时间刻度部分,这样表结构可以提高指标增量的存储读取的性能,并且也能够减少指标增量的存储空间。
步骤4,循环步骤1、2、3,以完成对所有指标公式获得的指标结果的结转。
本发明实施例的技术方案能够实现如下技术效果:
1、通过数据库日志接出消息的方式来计算统计报表,可以避免因为统计功能占用数据库资源而影响业务操作或延长业务操作时间;
2、通过在指标公式中配置表达式的方式来查找指标增量,可以提高统计报表的开发效率;
3、通过redis hash结构存储大量的统计指标数据,既可以提高存储效率,也可以提高读取报表结果的性能;
4、通过将业务时间划分为基础部分和刻度部分来定义数据库的表结构,可以提高数据库存储读取报表结果数据的性能。
图7示意性示出了根据本发明的实施例的数据处理装置的框图。
参照图7,根据本发明的实施例的数据处理装置700,包括:获取单元702、统计单元704、存储单元706和处理单元708。
具体地,获取单元702用于获取第一数据库中的增量数据;统计单元704用于对所述增量数据进行统计分析,以生成统计结果;存储单元706用于将所述统计结果存储至第二数据库;处理单元708用于基于所述第二数据库响应客户端的数据查询请求。
需要说明的是,上述数据处理装置700中包含的各模块/单元的具体细节已经在对应的数据处理方法中进行了详细的描述,因此此处不再赘述。
此外,本发明的实施方式还提供一种电子设备,可以包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明上述实施例所述的数据处理方法。
在示例性实施例中,本发明的实施例还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备可以实现如上述实施例中所述的数据处理方法。例如,可以实现如图2中所示的:步骤S20,获取第一数据库中的增量数据;步骤S22,对所述增量数据进行统计分析,以生成统计结果;步骤S24,将所述统计结果存储至第二数据库;步骤S26,基于所述第二数据库响应客户端的数据查询请求。又如,也可以实现如图3和/或图5中所示的步骤。
需要说明的是,本发明实施例中所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明的实施例中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (12)
1.一种数据处理方法,其特征在于,包括:
获取第一数据库中的增量日志;
基于所述增量日志,获取所述第一数据库中的增量数据;
获取指标公式,其中,每个所述指标公式对应于所述增量数据的一种统计指标,所述指标公式包括标识码和多个匹配表达式,所述多个匹配表达式包括指标条件表达式、指标维度表达式、指标增量表达式和时间表达式;
根据所述指标公式,在所述增量数据中查找对应的指标增量;
根据查找到的指标增量,生成统计结果;
将所述统计结果存储至第二数据库;
基于所述第二数据库响应客户端的数据查询请求;
其中,根据查找到的指标增量,生成所述统计结果的步骤,包括:
根据所述指标公式的标识码、所述指标公式统计的指标维度和所述指标公式统计的指标业务时间的基础部分生成哈希表的key;
根据所述指标公式统计的指标业务时间的刻度部分生成哈希表的field;
基于所述哈希表的key和所述哈希表的field生成哈希表,并将查找的指标增量作为对应的field的值存储至所述哈希表中。
2.根据权利要求1所述的数据处理方法,其特征在于,根据所述指标公式,在所述增量数据中查找对应的指标增量的步骤,包括:
解析所述指标公式中包含的各个匹配表达式,以得到所述各个匹配表达式的值;
基于所述各个匹配表达式的值,匹配所述增量数据中的指标增量。
3.根据权利要求2所述的数据处理方法,其特征在于,解析所述指标公式中包含的任一匹配表达式的过程,包括:
根据所述任一匹配表达式的内容,基于匹配表达式与解析代码的映射关系生成所述任一匹配表达式的解析代码;
编译所述任一匹配表达式的解析代码,得到所述任一匹配表达式的实现类;
根据所述任一匹配表达式的实现类,生成所述任一匹配表达式的解析实例;
通过所述任一匹配表达式的解析实例解析所述任一匹配表达式。
4.根据权利要求3所述的数据处理方法,其特征在于,还包括:
在生成所述任一匹配表达式的解析代码之前,判断是否已存在所述任一匹配表达式的解析实例;
若已存在所述任一匹配表达式的解析实例,则直接根据所述任一匹配表达式的解析实例解析所述任一匹配表达式;
若不存在所述任一匹配表达式的解析实例,则根据所述任一匹配表达式的内容,基于匹配表达式与解析代码的映射关系生成所述任一匹配表达式的解析代码。
5.根据权利要求2所述的数据处理方法,其特征在于,所述各个匹配表达式包括:
用于判断所述增量数据是否符合指标计算要求的指标条件表达式、用于标识要统计的指标维度的指标维度表达式、用于标识要统计的指标值的指标增量值表达式、用于标识指标业务发生时间的时间表达式。
6.根据权利要求1所述的数据处理方法,其特征在于,还包括:
在对所述增量数据进行统计分析时,根据所述增量数据的业务主键判断是否已对所述增量数据进行统计分析;
若根据所述增量数据的业务主键判定已对所述增量数据进行统计分析,则不对所述增量数据进行统计分析。
7.根据权利要求1所述的数据处理方法,其特征在于,在所述第二数据库为基于内存存储的数据库的情况下,所述数据处理方法还包括:
将所述第二数据库中存储的历史统计结果转存至第三数据库,并通过所述第二数据库和所述第三数据库响应所述客户端的数据查询请求。
8.根据权利要求1所述的数据处理方法,其特征在于,将所述第二数据库中存储的历史统计结果转存至第三数据库的步骤,包括:
判断基于所述指标公式得到的统计结果是否已结转到指定时间;
若基于所述指标公式得到的统计结果未结转到所述指定时间,则从所述第二数据库中获取基于所述指标公式得到的在所述指定时间之前的统计结果;
将从所述第二数据库中获取的统计结果存储至所述第三数据库中。
9.根据权利要求8所述的数据处理方法,其特征在于,将从所述第二数据库中获取的统计结果存储至所述第三数据库中的步骤,包括:
在所述第三数据库中创建表结构,所述表结构包括多列,所述多列分别用于存储所述指标公式的标识码、所述指标公式统计的指标维度、所述指标公式统计的指标业务时间的基础部分、所述指标公式统计的指标业务时间的每一刻度部分所对应的指标增量;
将从所述第二数据库中获取的统计结果插入所述表结构中。
10.一种数据处理装置,其特征在于,包括:
获取单元,用于获取第一数据库中的增量日志;基于所述增量日志获取所述第一数据库中的增量数据;
统计单元,用于获取指标公式,其中,每个所述指标公式对应于所述增量数据的一种统计指标,所述指标公式包括标识码和多个匹配表达式,所述多个匹配表达式包括指标条件表达式、指标维度表达式、指标增量表达式和时间表达式;根据所述指标公式,在所述增量数据中查找对应的指标增量;根据查找到的指标增量,生成统计结果;
存储单元,用于将所述统计结果存储至第二数据库;
处理单元,用于基于所述第二数据库响应客户端的数据查询请求;
所述统计单元用于根据所述指标公式的标识码、所述指标公式统计的指标维度和所述指标公式统计的指标业务时间的基础部分生成哈希表的key;根据所述指标公式统计的指标业务时间的刻度部分生成哈希表的field;基于所述哈希表的key和所述哈希表的field生成哈希表,并将查找的指标增量作为对应的field的值存储至所述哈希表中。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至9中任一项所述的数据处理方法。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至9中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710347597.0A CN108959279B (zh) | 2017-05-17 | 2017-05-17 | 数据处理方法、数据处理装置、可读介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710347597.0A CN108959279B (zh) | 2017-05-17 | 2017-05-17 | 数据处理方法、数据处理装置、可读介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959279A CN108959279A (zh) | 2018-12-07 |
CN108959279B true CN108959279B (zh) | 2021-11-02 |
Family
ID=64461507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710347597.0A Active CN108959279B (zh) | 2017-05-17 | 2017-05-17 | 数据处理方法、数据处理装置、可读介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108959279B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800269A (zh) * | 2018-12-13 | 2019-05-24 | 中国平安财产保险股份有限公司 | 数据管理方法、装置、计算机设备及存储介质 |
CN110109672B (zh) * | 2019-04-17 | 2023-01-10 | 奇安信科技集团股份有限公司 | 一种表达式的解析处理方法及装置 |
CN110688424A (zh) * | 2019-09-25 | 2020-01-14 | 浙江中控技术股份有限公司 | 一种生产监控方法及装置 |
CN111339070A (zh) * | 2020-02-20 | 2020-06-26 | 上海二三四五网络科技有限公司 | 一种订单重复提交的控制方法及装置 |
CN113535374A (zh) * | 2020-04-15 | 2021-10-22 | 马上消费金融股份有限公司 | 一种业务指标的处理方法及装置 |
CN114064682B (zh) * | 2022-01-17 | 2022-04-08 | 睿至科技集团有限公司 | 一种基于大数据的信息处理方法及系统 |
CN116467262A (zh) * | 2023-05-24 | 2023-07-21 | 和创(北京)科技股份有限公司 | 基于元数据能力客户活跃度分析方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012125166A1 (en) * | 2011-03-17 | 2012-09-20 | Hewlett-Packard Development Company L.P. | Data source analytics |
CN103209215A (zh) * | 2013-04-16 | 2013-07-17 | 上海爱数软件有限公司 | 一种系统管理数据的分布式缓存方法及文件管理系统 |
WO2016150183A1 (en) * | 2015-03-24 | 2016-09-29 | Huawei Technologies Co., Ltd. | System and method for parallel optimization of database query using cluster cache |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141666B2 (en) * | 2013-06-28 | 2015-09-22 | Microsoft Technology Licensing, Llc | Incremental maintenance of range-partitioned statistics for query optimization |
CN105590259A (zh) * | 2015-11-04 | 2016-05-18 | 中国银联股份有限公司 | 交易系统的诊断装置和方法 |
CN105630934A (zh) * | 2015-12-23 | 2016-06-01 | 浪潮电子信息产业股份有限公司 | 一种数据统计方法及系统 |
CN105956123A (zh) * | 2016-05-03 | 2016-09-21 | 无锡雅座在线科技发展有限公司 | 基于局部更新软件的数据处理方法及装置 |
CN106446144A (zh) * | 2016-09-21 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种基于kettle的大数据平台数据抽取和统计方法 |
-
2017
- 2017-05-17 CN CN201710347597.0A patent/CN108959279B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012125166A1 (en) * | 2011-03-17 | 2012-09-20 | Hewlett-Packard Development Company L.P. | Data source analytics |
CN103209215A (zh) * | 2013-04-16 | 2013-07-17 | 上海爱数软件有限公司 | 一种系统管理数据的分布式缓存方法及文件管理系统 |
WO2016150183A1 (en) * | 2015-03-24 | 2016-09-29 | Huawei Technologies Co., Ltd. | System and method for parallel optimization of database query using cluster cache |
Also Published As
Publication number | Publication date |
---|---|
CN108959279A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959279B (zh) | 数据处理方法、数据处理装置、可读介质及电子设备 | |
US9135647B2 (en) | Methods and systems for flexible and scalable databases | |
CN112800095A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN104813318A (zh) | 用于翻译的基于上下文对消息分组的技术 | |
CN109614327B (zh) | 用于输出信息的方法和装置 | |
CN115335821B (zh) | 卸载统计收集 | |
CN111400170A (zh) | 一种数据权限测试方法及装置 | |
CN110019367B (zh) | 一种统计数据特征的方法和装置 | |
CN107391528B (zh) | 前端组件依赖信息搜索方法及设备 | |
CN113360581A (zh) | 数据处理方法、装置及存储介质 | |
CN110990350A (zh) | 日志的解析方法及装置 | |
CN111858576A (zh) | 实时消息处理方法、系统、装置、存储介质及电子设备 | |
CN110888972A (zh) | 一种基于Spark Streaming的敏感内容识别方法及装置 | |
CN105512271A (zh) | 实时分析系统中uv的统计方法、装置和服务器 | |
CN110020166B (zh) | 一种数据分析方法及相关设备 | |
CN112463785B (zh) | 一种数据质量监控方法、装置、电子设备及存储介质 | |
CN112131257B (zh) | 数据查询方法和装置 | |
CN113722321A (zh) | 数据导出方法、装置和电子设备 | |
CN113961632A (zh) | 消息数据处理方法、装置及电子设备 | |
CN113419957A (zh) | 基于规则的大数据离线批处理性能容量扫描方法及装置 | |
CN115794806A (zh) | 金融数据的网格化处理系统及方法、装置、计算设备 | |
CN113780666A (zh) | 一种缺失值的预测方法及装置、可读存储介质 | |
CN113032256A (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 | |
CN107995301B (zh) | 一种快速的基于互联网的数据收发方法 | |
CN110674839A (zh) | 异常用户识别方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |