一种基于预处理组件的报表计算方法、装置、设备及介质与流程
未命名
09-23
阅读:148
评论:0
1.本技术涉及报表计算领域,具体涉及一种基于预处理组件的报表计算方法、装置、设备及介质。
背景技术:
2.近年来,随着信息化系统逐渐完善,bs架构下的各种报表中,单元格中的数据大量的来自于业务系统,企业erp中各业务系统产生的数据,往往需要以表格的形式做最终的呈现,这就导致报表产品的数据来源复杂。为了保证数据的实时性,直接从原业务系统取数需要编写复杂sql,大量的复杂sql很难保证取数计算的性能。
3.为了提高性能,现有的解决方案往往依托数据中台通过etl等工具对业务数据进行清洗加工整理后再提供给报表取数计算,这样做数据实时性很难保证,且需要额外部署数据中台增加了运维成本。
技术实现要素:
4.为了解决上述问题,本技术提出了一种基于预处理组件的报表计算方法、装置、设备及介质,其中方法包括:
5.获取当前处理器的算力值,并基于所述算力值设定触发阈值;获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件;若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务;若未触发所述预处理组件,则直接执行所述目标计算任务。
6.在一个实施例中,所述按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,具体包括:获取目标报表中的报表公式,并将所述报表公式转换为标准数据库语言;将所述标准数据库语言转换为语法树,并通过遍历语法树解析所述标准数据库语言,以得到取数字段、取数来源表以及查询条件字段;赋予具有相同取数来源表的报表公式以相同的第一标识;建立目标取数来源表,并将所述取数来源表中的数据导入至所述目标取数来源表;将所述标准数据库语言中的取数来源表改写为所述目标取数来源表的第二标识,所述第二标识由所述第一标识与系统变量结合而成。
7.在一个实施例中,所述获取目标计算任务的算力需求,具体包括:接收所述目标计算任务的任务要求,并通过自然语言处理技术,确定所述目标计算任务的计算内容;基于所述计算内容,获取所述目标计算任务对应的第一标识数量,以及所述第一标识分别对应的公式数量;基于所述第一标识数量以及所述公式数量,确定所述目标计算任务的算力需求。
8.在一个实施例中,所述按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务,具体包括:确定所述目标报表对应的全部第一标识;基于执行顺序,根据所述第一标识以及重构后的所述标准数据库语言,生成预处理配置表;所述预处理配置表中还包括用于根据所述第二标识建立
目标取数来源表,并将所述取数来源表中的数据导入至所述目标取数来源表的数据库语言。
9.在一个实施例中,所述通过遍历语法树解析所述标准数据库语言,以得到取数字段、取数来源表以及查询条件字段后,所述方法还包括:基于所述第一标识,将所述第一标识对应的所述取数来源、所述取数字段、过滤条件、以及公式数量进行记录,以得到解析结果记录表。
10.在一个实施例中,所述使用转化后的数据库语言执行所述目标计算任务之后,所述方法还包括:获取所述目标计算任务的执行进度;基于所述执行进度,异步删除以所述第二标识为名称的表格。
11.在一个实施例中,所述系统变量为执行所述预处理组件时的线程标识。
12.本技术还提供了一种基于预处理组件的报表计算装置,包括:
13.触发阈值模块,获取当前处理器的算力值,并基于所述算力值设定触发阈值;判断模块,获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件;预处理模块,若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务;直接执行模块,若未触发所述预处理组件,则直接执行所述目标计算任务。
14.本技术还提供了一种基于预处理组件的报表计算设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:获取当前处理器的算力值,并基于所述算力值设定触发阈值;获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件;若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务;若未触发所述预处理组件,则直接执行所述目标计算任务。
15.本技术还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:获取当前处理器的算力值,并基于所述算力值设定触发阈值;获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件;若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务;若未触发所述预处理组件,则直接执行所述目标计算任务。
16.通过本技术提出的方法能够带来如下有益效果:能够通过分析计算公式,对业务数据进行合理的预处理加工,在资源有限的情况下可以大幅提高计算性能。通过预处理技术可以将业务系统原始数据预先整理成为适合报表取数场景的结构,从而实现灵活且高性能的报表计算。
附图说明
17.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
18.图1为本技术实施例中一种基于预处理组件的报表计算方法的流程示意图;
19.图2为本技术实施例中一种基于预处理组件的报表计算方法的逻辑示意图;
20.图3为本技术实施例中一种预处理过程的流程示意图;
21.图4为本技术实施例中一种基于预处理组件的报表计算装置的模块示意图;
22.图5为本技术实施例中一种基于预处理组件的报表计算设备的结构示意图。
具体实施方式
23.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
24.以下结合附图,详细说明本技术各实施例提供的技术方案。
25.图1为本说明书一个或多个实施例提供的一种基于预处理组件的报表计算方法的流程示意图。该方法可以应用于不同的业务类型对应的报表,比如,互联网金融业务类型、电商业务类型、即时通讯业务类型、游戏业务类型、公务业务类型等。该流程可以由相应领域的计算设备(比如,支付业务对应的风控服务器或者智能移动终端等)执行,流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
26.本技术实施例涉及的分析方法的实现可以为终端设备,也可以为服务器,本技术对此不作特殊限制。为了方便理解和描述,以下实施例均以服务器为例进行详细描述。
27.需要说明的是,该服务器可以是单独的一台设备,可以是由多台设备组成的系统,即,分布式服务器,本技术对此不做具体限定。
28.如图1、图2及图3所示,本技术实施例提供一种基于预处理组件的报表计算方法,包括:
29.s101:获取当前处理器的算力值,并基于所述算力值设定触发阈值。
30.首先,确定当前处理器的算力值,并根据处理器的算力值设定触发阈值,这里的算力值指的是与处理器的算力有关的阈值,如处理器的最小剩余算力,当前剩余算力等。触发阈值是工作人员提前设定的,用于与当目标计算任务所需算力进行比较的阈值,可以是目标计算任务所需算力,也可以是目标计算任务所需算力所占当前处理器算力的比重。
31.s102:获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件。
32.获取目标计算任务的算力需求,并基于目标计算任务需要的算力与触发阈值进行比较,以判断目标计算任务是否触发预处理组件,即是否需要预处理组件进行处理,以减少目标计算任务的所需算力。
33.s103:若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务。
34.若满足预处理组件的触发条件,则按照预处理组件的预制规则,对目标计算任务中的数据库语言进行转化,并对业务数据进行合理的预处理加工,在资源有限的情况下可以大幅提高计算性能,使用转化后的数据库语言执行目标计算任务,以降低所需算力。
35.s104:若未触发所述预处理组件,则直接执行所述目标计算任务。
36.若未满足预处理组件的触发条件,则直接按照原有的数据库语言执行目标计算任务,并将结果返回。
37.在一个实施例中,在对数据库语言进行转化时,首先要获取目标报表中的报表公式,并将报表公式转换为标准数据库语言(structured query language,sql),然后将标准数据库语言转换为语法树,并通过遍历语法树解析标准数据库语言,以得到取数字段、取数来源表以及查询条件字段。针对具有相同取数来源的公式赋予相同的第一标识(fid)。例如,有三个取数公式都是向表一、表二进行取数,则可以将这三个取数公式赋予相同的第一标识,然后建立目标取数来源表,并将取数来源表中的数据导入至所述目标取数来源表。将所述标准数据库语言中的取数来源表改写为所述目标取数来源表的第二标识,所述第二标识由所述第一标识与系统变量结合而成。仍以上述三个取数公式为例,三个取数公式都是向表一、表二取数,则可以根据三个取数公式,提前将需要取出的数据导入至新建立的目标取数来源表中,并给目标取数来源表进行命名,如表a。需要说明的是,在进行命名时,为了防止在一个处理器中有多个线程同时对业务数据进行预处理,对目标取数来源表进行命名时命名为fid《!pid!》,此处的《!pid!》表示一个系统变量,将在后续被替换为运行时线程的唯一标识。在对外显示是仅显示fid,即表a。
38.如图2所示,在一个实施例中,在对数据库语言进行转化时,还可以确定目标报表对应的全部第一标识,并基于执行顺序,根据第一标识以及重构后的标准数据库语言,生成预处理配置表,这里的预处理配置表中包括用于根据第二标识建立目标取数来源表,并将取数来源表中的数据导入至目标取数来源表的数据库语言,即图2中预处理步骤定义处所对应的部分。
39.进一步地,在获取目标计算任务的算力需求时,首先要接收目标计算任务的任务要求,并通过自然语言处理技术,确定目标计算任务的计算内容,然后基于计算内容,获取目标计算任务对应的第一标识数量,即具有相同取数来源表的公式名称,以及第一标识分别对应的公式数量,即每个第一标识下对应的公式数量,然后将第一标识数量以及公式数量相乘,确定目标计算任务的算力需求。如图3中,计算任务包括计算10000家单位,报表上的所有公式,此时由于不同单位的公式的取数来源表不同,因此第一标识数量为10000,即n为10000。若每个第一标识对应的公式数量为1,则此时m为1。
40.如图2所示,在一个实施例中,在解析标准数据库语言之后,还可以基于获取到的第一标识,将第一标识对应的取数来源、取数字段、过滤条件、以及公式数量进行记录,以得到解析结果记录表,如图2中解析结果记录所对应的部分。
41.在一个实施例中,在使用转化后的数据库语言执行了目标计算任务之后,可以基于获取到的目标计算任务的执行进度,异步删除以第二标识为名称的表格,即删除自建的表格。
42.如图4所示,本技术实施例还提供了一种基于预处理组件的报表计算装置,包括:
43.触发阈值模块201,获取当前处理器的算力值,并基于所述算力值设定触发阈值;
44.判断模块202,获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件;
45.预处理模块203,若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任
务;
46.直接执行模块204,若未触发所述预处理组件,则直接执行所述目标计算任务。
47.如图5所示,本技术实施例还提供了一种基于预处理组件的报表计算设备,包括:
48.至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
49.获取当前处理器的算力值,并基于所述算力值设定触发阈值;获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件;若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务;若未触发所述预处理组件,则直接执行所述目标计算任务。
50.本技术实施例还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
51.获取当前处理器的算力值,并基于所述算力值设定触发阈值;获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件;若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务;若未触发所述预处理组件,则直接执行所述目标计算任务。
52.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
53.本技术实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
54.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
55.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
56.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
57.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
58.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
59.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
60.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
61.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
62.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
技术特征:
1.一种基于预处理组件的报表计算方法,其特征在于,包括:获取当前处理器的算力值,并基于所述算力值设定触发阈值;获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件;若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务;若未触发所述预处理组件,则直接执行所述目标计算任务。2.根据权利要求1所述的方法,其特征在于,所述按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,具体包括:获取目标报表中的报表公式,并将所述报表公式转换为标准数据库语言;将所述标准数据库语言转换为语法树,并通过遍历语法树解析所述标准数据库语言,以得到取数字段、取数来源表以及查询条件字段;赋予具有相同取数来源表的报表公式以相同的第一标识;建立目标取数来源表,并将所述取数来源表中的数据导入至所述目标取数来源表;将所述标准数据库语言中的取数来源表改写为所述目标取数来源表的第二标识,所述第二标识由所述第一标识与系统变量结合而成。3.根据权利要求2所述的方法,其特征在于,所述获取目标计算任务的算力需求,具体包括:接收所述目标计算任务的任务要求,并通过自然语言处理技术,确定所述目标计算任务的计算内容;基于所述计算内容,获取所述目标计算任务对应的第一标识数量,以及所述第一标识分别对应的公式数量;基于所述第一标识数量以及所述公式数量,确定所述目标计算任务的算力需求。4.根据权利要求2所述的方法,其特征在于,所述按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务,具体包括:确定所述目标报表对应的全部第一标识;基于执行顺序,根据所述第一标识以及重构后的所述标准数据库语言,生成预处理配置表;所述预处理配置表中还包括用于根据所述第二标识建立目标取数来源表,并将所述取数来源表中的数据导入至所述目标取数来源表的数据库语言。5.根据权利要求2所述的方法,其特征在于,所述通过遍历语法树解析所述标准数据库语言,以得到取数字段、取数来源表以及查询条件字段后,所述方法还包括:基于所述第一标识,将所述第一标识对应的所述取数来源、所述取数字段、过滤条件、以及公式数量进行记录,以得到解析结果记录表。6.根据权利要求2所述的方法,其特征在于,所述使用转化后的数据库语言执行所述目标计算任务之后,所述方法还包括:获取所述目标计算任务的执行进度;基于所述执行进度,异步删除以所述第二标识为名称的表格。
7.根据权利要求2所述的方法,其特征在于,所述系统变量为执行所述预处理组件时的线程标识。8.一种基于预处理组件的报表计算装置,其特征在于,包括:触发阈值模块,获取当前处理器的算力值,并基于所述算力值设定触发阈值;判断模块,获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件;预处理模块,若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务;直接执行模块,若未触发所述预处理组件,则直接执行所述目标计算任务。9.一种基于预处理组件的报表计算设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:获取当前处理器的算力值,并基于所述算力值设定触发阈值;获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件;若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务;若未触发所述预处理组件,则直接执行所述目标计算任务。10.一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:获取当前处理器的算力值,并基于所述算力值设定触发阈值;获取目标计算任务的算力需求,并基于所述算力需求以及所述触发阈值,判断所述目标计算任务是否触发预处理组件;若触发所述预处理组件,则按照所述预处理组件规则,对所述目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行所述目标计算任务;若未触发所述预处理组件,则直接执行所述目标计算任务。
技术总结
本申请公开了一种基于预处理组件的报表计算方法、装置、设备及介质,其中方法包括:获取当前处理器的算力值,并基于触发阈值设定触发阈值;获取目标计算任务的算力需求,并基于算力需求以及触发阈值,判断目标计算任务是否触发预处理组件;若触发预处理组件,则按照预处理组件规则,对目标计算任务中的数据库语言进行转化,并使用转化后的数据库语言执行目标计算任务;若未触发预处理组件,则直接执行目标计算任务。能够通过分析计算公式,对业务数据进行合理的预处理加工,在资源有限的情况下可以大幅提高计算性能。通过预处理技术可以将业务系统原始数据预先整理成为适合报表取数场景的结构,从而实现灵活且高性能的报表计算。算。算。
技术研发人员:彭鹏
受保护的技术使用者:浪潮通用软件有限公司
技术研发日:2023.06.30
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种生态修复用水净化装置的制作方法 下一篇:一种原位口腔癌动物模型的构建方法和应用
