CN114036180A - 报表生成方法、装置、设备及存储介质 - Google Patents
报表生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114036180A CN114036180A CN202111340466.2A CN202111340466A CN114036180A CN 114036180 A CN114036180 A CN 114036180A CN 202111340466 A CN202111340466 A CN 202111340466A CN 114036180 A CN114036180 A CN 114036180A
- Authority
- CN
- China
- Prior art keywords
- report
- data
- target
- export
- task thread
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种报表生成方法、装置、设备及存储介质,属于数据处理领域。该方法包括:响应于接收的第一报表导出请求,建立第一导出任务线程;执行第一导出任务线程,在存储业务数据的分布式数据库中对业务数据进行计算,得到第一计算结果数据;将第一报表备选数据复制至事务型数据库,第一报表备选数据包括第一计算结果数据,或者,第一报表备选数据包括第一计算结果数据和业务数据;在事务型数据库的第一报表备选数据中查询第一导出任务线程指示的第一目标数据,根据查询得到的第一目标数据生成第一目标报表。根据本申请实施例能够提高报表生成的效率。
Description
技术领域
本申请属于数据处理领域,尤其涉及一种报表生成方法、装置、设备及存储介质。
背景技术
随着电子信息技术的发展,越来越多的业务处理可通过电子设备完成。具体地,可将数据上传至电子设备,由电子设备统一进行处理。在一些业务领域中,每天都会产生大量的数据,日积月累,数据量甚至可达到太字节即TB或拍字节即PB级别。为了缓解数据存储压力,现阶段选择将大量数据存储在分布式数据库中。
在业务处理中需要利用数据生成报表,因此需要从分布式数据库中查询和导出数据。但在需要查询和导出大量数据的情况下,分布式数据库中查询和导出数据所花费的时间非常长,导致报表生成的效率较低。
发明内容
本申请实施例提供一种报表生成方法、装置、设备及存储介质,能够提高报表生成的效率。
第一方面,本申请实施例提供一种报表生成方法,包括:响应于接收的第一报表导出请求,建立第一导出任务线程;执行第一导出任务线程,在存储业务数据的分布式数据库中对业务数据进行计算,得到第一计算结果数据;将第一报表备选数据复制至事务型数据库,第一报表备选数据包括第一计算结果数据,或者,第一报表备选数据包括第一计算结果数据和业务数据;在事务型数据库的第一报表备选数据中查询第一导出任务线程指示的第一目标数据,调用报表生成工具,根据查询得到的第一目标数据生成第一目标报表。
在一些可能的实施例中,将报表备选数据复制至事务型数据库,包括:根据第一导出任务线程的数据处理性能,确定单批次处理数据量;按照单批次处理数据量,分批次将第一报表备选数据复制至事务型数据库。
在一些可能的实施例中,调用报表生成工具,根据查询得到的第一目标数据生成第一目标报表,包括:按照预设的拆分维度,划分查询得到的第一目标数据,得到至少一组第一目标数据;调用第一导出任务线程指示的报表模板,将各组第一目标数据分别填装至报表模板,调用报表生成工具,生成各组第一目标数据各自对应的第一目标报表。
在一些可能的实施例中,拆分维度包括以下一项或两项以上:用户维度、用户属性维度、数据属性维度。
在一些可能的实施例中,该方法还包括:在具有空闲线程的情况下,响应于接收的第二报表导出请求,建立第二导出任务线程;与第一导出任务线程并行执行第二导出任务线程,在存储业务数据的分布式数据库中对业务数据进行计算,得到第二计算结果数据;将第二报表备选数据复制至事务型数据库,第二报表备选数据包括第二计算结果数据,或者,第二报表备选数据包括第二计算结果数据和业务数据;在事务型数据库的第二报表备选数据中查询第二导出任务线程指示的第二目标数据,调用报表生成工具,根据查询得到的第二目标数据生成第二目标报表。
在一些可能的实施例中,在调用报表生成工具,根据查询得到的第一目标数据生成第一目标报表之后,该方法还包括:在事务型数据库中删除第一报表备选数据。
在一些可能的实施例中,该方法还包括:响应于中断指令,对第一导出任务线程进行轮询;在轮询确定第一导出任务线程正在执行线程程序的情况下,将第一导出任务线程的任务状态更改为取消状态,以中断第一导出任务线程。
第二方面,本申请实施例提供一种报表生成装置,包括:线程建立模块,用于响应于接收的第一报表导出请求,建立第一导出任务线程;计算模块,用于执行第一导出任务线程,在存储业务数据的分布式数据库中对业务数据进行计算,得到第一计算结果数据;复制模块,用于将第一报表备选数据复制至事务型数据库,第一报表备选数据包括第一计算结果数据,或者,第一报表备选数据包括第一计算结果数据和业务数据;处理模块,用于在事务型数据库的第一报表备选数据中查询第一导出任务线程指示的第一目标数据,调用报表生成工具,根据查询得到的第一目标数据生成第一目标报表。
第三方面,本申请实施例提供一种报表生成设备,包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现第一方面的报表生成方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现第一方面的报表生成方法。
本申请实施例提供一种报表生成方法、装置、设备及存储介质,响应于第一报表导出请求,可建立第一导出任务线程,通过执行线程来实现报表的生成。执行第一导出任务线程,在存储业务数据的分布式数据库中进行业务数据的计算,得到第一计算结果数据。通过在分布式数据库进行业务数据的存储和计算,分散了存储和运算压力,减少了业务运算所需花费的时间。将包括计算得到的第一报表备选数据复制至事务型数据库,在事务型数据库中进行数据的查询和导出,调用报表生成工具,生成第一目标报表,利用了事务型数据库中索引查询速度快的优势,减少了查询数据所需花费的时间,进而减少了报表生成所花费的时间,提高了报表生成的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的报表生成方法的一实施例的流程图;
图2为本申请提供的报表生成方法的另一实施例的流程图;
图3为本申请提供的报表生成方法的又一实施例的流程图;
图4为本申请提供的报表生成方法的再一实施例的流程图;
图5为本申请实施例提供的报表生成的逻辑原理的一示例的示意图;
图6为本申请提供的报表生成装置的一实施例的示意图;
图7为本申请提供的报表生成装置的另一实施例的示意图;
图8为本申请提供的报表生成装置的又一实施例的示意图;
图9为本申请提供的报表生成设备的一实施例的结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
随着电子信息技术的发展,越来越多的业务不再需要人工进行处理,可将业务数据上传至电子设备,由电子设备统一进行处理。在一些业务领域如金融领域中,每天都会产生大量的数据,日积月累,数据量甚至可达到太字节即TB或拍字节即PB级别。为了缓解数据存储压力,将大量数据存储在分布式数据库中。分布式数据库基本能够满足数据的存储要求和计算要求。但在业务处理过程中需要利用数据生成报表,因此需要从分布式数据库中查询和导出数据。但分布式数据库中查询和导出数据需要花费的时间较长,在需要查询和导出大量数据的情况下,会导致报表生成的效率非常低。
例如,假设有20万用户的数据需要在分布式数据库中查询并导出,在分布式数据库中查询单个用户的数据需要7秒,导出生成报表需要1秒,那么对20万用户的数据进行查询并导出生成报表共需约18.5天的时间,无法满足报表生成的效率要求。
本申请实施例提供一种报表生成方法、装置、设备及存储介质,在此并不限定报表生成方法、装置、设备及存储介质的应用领域。例如,本申请实施例提供的报表生成方法、装置、设备及存储介质可应用于金融领域、医学领域、交通领域、网络技术领域等,在此并不限定。在本申请实施例提供的报表生成方法、装置、设备及存储介质中,业务数据的存储和计算在分布式数据库中进行,数据的查询和导出在事务型数据库中进行,以减少大量数据的查询和导出生成报表所需要的时间,从而提高报表生成的效率。
下面对报表生成方法、装置、设备及存储介质依次进行说明。
本申请提供一种报表生成方法,可应用于报表生成装置或设备,即可由报表生成装置或设备执行。图1为本申请提供的报表生成方法的一实施例的流程图。如图1所示,该报表生成方法可包括步骤S101至步骤S104。
在步骤S101中,响应于接收的第一报表导出请求,建立第一导出任务线程。
第一报表导出请求可为任意一个报表导出请求。报表导出请求可用于请求导出报表。第一报表导出请求可为用户对报表生成装置或设备输入的请求,也可为用户通过用户终端向报表生成装置或设备发送的请求,在此并不限定。在一些示例中,第一报表导出请求可包括请求导出的报表的要求等,在此并不限定。
响应于第一报表导出请求,将与第一报表导出请求对应的任务搭载于线程形成第一导出任务线程。具体地,报表生成装置或设备接收第一报表导出请求,识别第一报表导出请求的请求类型等,实例化线程模型,将第一报表导出请求对应的任务交给线程执行。在执行步骤S101之前,报表生成装置或设备可预先完成对外请求接口的注册,该对外请求接口用于接收报表导出请求。
在步骤S102中,执行第一导出任务线程,在存储业务数据的分布式数据库中对业务数据进行计算,得到第一计算结果数据。
执行第一导出任务线程,可将第一导出任务线程对应的任务数据插入事务型数据库进行记录,以便于在有需求的时候进行查找。
第一导出任务线程被执行,调用分布式数据库,在分布式数据库中进行数据计算。分布式数据库用于存储业务数据以及进行业务数据的计算。在此并不限定分布式数据库的类型,例如,分布式数据库可为采用大规模并行处理(Massively Parallel Processing,MPP)结合GreenPlum技术即GP技术的分布式数据库。在分布式数据库中,业务数据分片存储在分布式数据库的集群中的节点上,可根据第一导出任务线程指示的计算规则,利用分布式数据库的集群中的计算节点分散计算压力,以满足业务数据的存储要求和计算要求。
业务数据的类型可根据业务场景、业务需求等确定,在此并不限定。例如,在金融基金管理业务场景中,业务数据可包括用户账户、用户账户资产、用户投入资产、用户收回资产等,在此并不限定。第一计算结果数据为利用业务数据进行第一导出任务线程指示的计算规则得到的数据。在分布式数据库中对业务数据进行的计算可按照第一导出任务线程指示的计算规则进行,在此并不限定。第一导出任务线程指示的计算规则可根据第一导出任务对应的任务即第一报表导出请求对应的任务确定,在此并不限定。例如,业务数据包括用户账户资产,第一报表导出请求请求导出包括用户账户资产变化率这一数据的报表,对应地,第一导出任务线程指示的计算规则包括变化率计算规则,可在分布式数据库中利用用户账户资产这一数据按照变化率计算规则进行计算,得到用户账户资产变化率这一数据,用户账户资产变化率即可作为第一计算结果数据。
在步骤S103中,将第一报表备选数据复制至事务型数据库。
第一报表备选数据包括第一报表导出请求请求导出的报表中的数据。在一些示例中,第一报表备选数据可包括第一计算结果数据。在另一些示例中,第一报表备选数据可包括第一计算结果数据和业务数据。
调用事务型数据库,将第一报表备选数据复制到事务型数据库中。事务型数据库中对数据的查询采用索引查询的方式进行,索引查询速度更快,可达到毫秒级别。在此并不限定事务型数据库的类型,例如,事务型数据库可包括Oracle数据库。
在步骤S104中,在事务型数据库的第一报表备选数据中查询第一导出任务线程指示的第一目标数据,调用报表生成工具,根据查询得到的第一目标数据生成第一目标报表。
第一报表备选数据复制至事务型数据库,即第一报表备选数据存储在事务型数据库中。在事务型数据库中可利用索引查询数据,提高了数据查询的速度,减少了数据查询所花费的时间。第一导出任务线程指示的第一目标数据即为生成第一目标报表所需的数据。第一报表备选数据包括第一目标数据。可将查询得到的第一目标数据填装至报表模板中,调用报表生成工具,生成第一目标报表。第一目标报表包括第一目标数据。
报表生成工具可为第三方软件工具或操作系统自带工具,在此并不限定。报表生成工具用于生成报表文件,即可以各种文件的格式展示第一目标报表。
在此并不限定第一目标报表的数量,第一目标报表的数量可为一个,也可为多个。在此也并不限定第一目标报表的格式,可通过调用的报表生成工具,选择第一目标报表的格式。例如,第一目标报表的格式可包括Word格式、Excel格式、PDF格式等。
在一些示例中,在根据查询得到的第一目标数据生成第一目标报表之后,可在事务型数据库中删除第一报表备选数据,以释放事务型数据库的存储资源,避免影响其他报表生成的流程,提高多报表生成场景下的报表生成效率。
在本申请实施例中,响应于第一报表导出请求,可建立第一导出任务线程,通过执行线程来实现报表的生成。执行第一导出任务线程,在存储业务数据的分布式数据库中进行业务数据的计算,得到第一计算结果数据。通过在分布式数据库进行业务数据的存储和计算,分散了存储和运算压力,减少了业务运算所需花费的时间。将包括计算得到的第一报表备选数据复制至事务型数据库,在事务型数据库中进行数据的查询和导出,调用报表生成工具,生成第一目标报表,利用了事务型数据库中索引查询速度快的优势,减少了查询数据所需花费的时间,进而减少了报表生成所花费的时间,提高了报表生成的效率。
例如,利用本申请实施例中的表报生成方法,对20万用户的数据进行查询并导出生成报表共需约5至6个小时的时间,大大减少了报表生成所花费的时间,能够满足表报生成的效率要求。
在一些实施例中,为了保证报表生成过程的稳定性和可靠性,在数据量较大的情况下,可将第一报表数据分批次复制至事务型数据库。图2为本申请提供的报表生成方法的另一实施例的流程图。图2与图1的不同之处在于,图1中的步骤S103可具体细化为图2中的步骤S1031和步骤S1032。
在步骤S1031中,根据第一导出任务线程的数据处理性能,确定单批次处理数据量。
报表生成装置或设备的数据处理性能会影响导出任务线程的数据处理能力,导出任务线程的数据处理能力会影响从分布式数据库一次能够复制到事务型数据库中的数据的数据量。为了避免一次复制的数据量过多导致报表生成流程卡顿或堵塞,可根据第一导出任务线程的数据处理性能,先行确定单批次处理数据量。单批次处理数据量在第一导出任务线程的数据处理性能的能力范围内。第一导出任务线程的数据处理性能与报表生成装置或设备的数据处理性能呈正相关,单批次处理数据量与第一导出任务线程的处理性能呈正相关。
在步骤S1032中,按照单批次处理数据量,分批次将第一报表备选数据复制至事务型数据库。
每一批次将单批次数据量的第一报表备选数据复制至事务型数据库。在一些示例中,可预先计算得到从分布式数据库将第一报表备选数据复制到事务型数据库所需的批次数量。可计算第一报表备选数据的数据量与单批次处理数据量的比值,若该比值为整数,则将该比值作为从分布式数据库将第一报表备选数据复制到事务型数据库所需的批次数量;若该比值不是整数,可对该比值进行取整运算,取整得到的整数部分加一即可作为从分布式数据库将第一报表备选数据复制到事务型数据库所需的批次数量。
通过分批次将第一报表备选数据从分布式数据库复制到事务型数据库,可避免报表生成流程卡顿或堵塞,从而提高报表生成流程的稳定性和可靠性。
在一些实施例中,可针对需求生成个性化报表。图3为本申请提供的报表生成方法的又一实施例的流程图。图3与图1的不同之处在于,图1中的步骤S104可具体细化为图3中的步骤S1041和步骤S1042。
在步骤S1041中,按照预设的拆分维度,划分查询得到的第一目标数据,得到至少一组第一目标数据。
查询得到的第一目标数据的数据量依然很大,且第一目标数据包括多项数据,数据仍然较为杂乱。可预先设定拆分维度,按照拆分维度,对第一目标数据进行分组。
在一些示例中,拆分维度包括以下一项或两项以上:用户维度、用户属性维度、数据属性维度。用户维度为用户的维度,按照用户维度划分第一目标数据,划分后的一组第一目标数据可对应一个客户。用户属性维度可包括用户属性的维度,用户属性可表征用户的性质,按照用户属性维度划分第一目标数据,一组第一目标数据所对应的用户的用户属性相同,例如,用户属性为年龄,按照用户属性维度划分第一目标数据,划分后的一组第一目标数据所对应的用户的年龄在同一年龄区间。数据属性维度可包括数据属性的维度,数据属性可表征数据的性质,按照数据属性维度划分第一目标数据,一组第一目标数据对应的数据的数据属性相同,例如,数据属性为资产估值,按照资产估值划分第一目标数据,划分后的一组第一目标数据所对应的资产估值在同一估值区间。
在步骤S1042中,调用第一导出任务线程指示的报表模板,将各组第一目标数据分别填装至报表模板,调用报表生成工具,生成各组第一目标数据各自对应的第一目标报表。
报表模板中指定了各项数据的位置,可按照报表模板的格式,将各组第一目标数据分别填装至报表模板。一组第一目标数据填装至报表模板可对应生成一个第一目标报表。
按照拆分维度,对第一目标数据进行拆分,根据拆分后的各组第一目标数据填装得到第一目标报表是与拆分维度对应的第一目标报表,更有针对性,实现了对报表的个性化和定制化。
在一些实施例中,可并发执行两个以上的导出任务线程,提高报表生成任务的并发度。图4为本申请提供的报表生成方法的再一实施例的流程图。图4与图1的不同之处在于,图4所示的报表生成方法还可包括步骤S105至步骤S108。
在步骤S105中,在具有空闲线程的情况下,响应于接收的第二报表导出请求,建立第二导出任务线程。
在报表生成装置或设备具有空闲线程的情况下,可并行执行多个导出任务线程。报表生成装置或设备可并行的线程数与报表生成装置的线程执行性能相关。
第二报表导出请求为与第一报表导出请求不同的任意一个报表导出请求。第二报表导出请求可为用户对报表生成装置或设备输入的请求,也可为用户通过用户终端向报表生成装置或设备发送的请求,在此并不限定。在一些示例中,第二报表导出请求可包括请求导出的报表的要求等,在此并不限定。
响应于第二报表导出请求,将与第二报表导出请求对应的任务搭载于线程形成第二导出任务线程。具体地,报表生成装置或设备接收第二报表导出请求,识别第二报表导出请求的请求类型等,实例化线程模型,将第二报表导出请求对应的任务交给线程执行。
在步骤S106中,与第一导出任务线程并行执行第二导出任务线程,在存储业务数据的分布式数据库中对业务数据进行计算,得到第二计算结果数据。
第一导出任务线程与第二导出任务线程可并行执行。第二计算结果数据为利用业务数据进行第二导出任务线程指示的计算规则得到的数据。在分布式数据库中对业务数据进行的计算可按照第二导出任务线程指示的计算规则进行,在此并不限定。第二导出任务线程指示的计算规则可根据第二导出任务对应的任务即第二报表导出请求对应的任务确定,在此并不限定。步骤S106的具体内容可参照上述步骤S102的相关说明,在此不再赘述。
在步骤S107中,将第二报表备选数据复制至事务型数据库。
第二报表备选数据包括第二报表导出请求请求导出的报表中的数据。在一些示例中,第二报表备选数据包括第二计算结果数据。在另一些示例中,第二报表备选数据包括第二计算结果数据和业务数据。
步骤S107的具体内容可参照上述步骤S103的相关说明,在此不再赘述。
在步骤S108中,在事务型数据库的第二报表备选数据中查询第二导出任务线程指示的第二目标数据,调用报表生成工具,根据查询得到的第二目标数据生成第二目标报表。
第二报表备选数据复制至事务型数据库,即第二报表备选数据存储在事务型数据库中。在事务型数据库中可利用索引查询数据,提高了数据查询的速度,减少了数据查询所花费的时间。第二导出任务线程指示的第二目标数据即为生成第二目标报表所需的数据。第二报表备选数据包括第二目标数据。可将查询得到的第二目标数据填装至报表模板中,调用报表生成工具,生成第二目标报表。第二目标报表包括第二目标数据。报表生成工具的具体内容可参见上述实施例中的相关说明,在此不再赘述。
在此并不限定第二目标报表的数量,第二目标报表的数量可为一个,也可为多个。在此也并不限定第一目标报表的格式,例如,第二目标报表的格式可包括Word格式、Excel格式、PDF格式等。
在一些示例中,在根据查询得到的第二目标数据生成第二目标报表之后,可在事务型数据库中删除第二报表备选数据,以释放事务型数据库的存储资源,避免影响其他报表生成的流程,提高多报表生成场景下的报表生成效率。
与第二目标报表相关的处理的具体内容可参照上述实施例中第一目标报表相关的处理的相关说明,在此不再赘述。
在具有空闲线程的情况下,还可建立并执行第三导出任务线程、第四导出任务线程等,具体方式与第一导出任务线程和第二导出任务线程的建立和执行基本相同,在此不再赘述。在本申请实施例中,可多线程并发生成报表,从而能够在输入输出(即IO)等待时充分利用资源,提高报表生成的资源利用率和效率。
在一些实施例中,在出现误发出报表导出请求等操作的情况下,可中断报表生成流程,避免错误的操作导致的资源占用。具体地,报表生成装置或设备响应于中断指令,对第一导出任务线程进行轮询,在轮询确定第一导出任务线程正在执行线程程序的情况下,将第一导出任务线程的任务状态更改为取消状态,以中断第一导出任务线程。第一导出任务线程的任务状态更改为取消状态,第一导出任务线程中断,即报表生成的流程中断。在本申请实施例中,通过更改导出任务线程的任务状态实现报表生成的流程中断,避免了因错误操作导致的资源的长时间占用,能够及时中断报表生成流程,提高报表生成流程的资源利用率。
为了便于说明,这里对本申请实施例的报表生成方法的逻辑原理进行举例说明。本申请实施例中的报表生成方法可包括请求接收、任务管理、线程调度、任务执行、数据计算、数据复制、报表填装、文件导出和中断处理几个部分。图5为本申请实施例提供的报表生成的逻辑原理的一示例的示意图。如图5所示,请求接收可由请求控制器负责。请求控制器可完成对外请求接口的注册、报表导出请求的接收、报表导出请求类型的识别以及实例化线程模型。
任务管理可根据报表导出请求指示的任务,在事务型数据库中插入能够表征报表导出请求指示的任务的记录数据,记录数据可包括任务记录数据或线程记录数据等,在此并不限定。
线程调度可由线程调度器负责。任务管理可调用线程调度器,建立报表导出请求指示的任务对应的线程,从而将报表导出请求指示的任务交给线程执行。任务执行可由任务执行器实现,任务执行器可执行线程,连接分布式数据库,在分布式数据库中进行数据计算。
数据计算结束后,任务管理器可连接事务型数据库进行数据复制,将分布式数据库中的数据分批次复制到事务型数据库中。
从事务型数据库中进行数据查询和导出,将导出的数据进行报表填装,并根据用户维度拆分生成一个以上的文件。
在一些情况下,还可将生成的文件进行压缩打包处理,最终输出压缩打包得到的文件的压缩包。
在一些情况下,若错误发出了报表导出请求,可通过中断处理,来中断报表导出请求对应的任务。
本申请实施例中的报表生成方法可选用Java语言作为程序开发语言,以提高程序的可读性,以及提高报表生成方法实现的易扩展性。
本申请还提供一种报表生成装置。图6为本申请提供的报表生成装置的一实施例的示意图。如图6所示,该报表生成装置200可包括线程建立模块201、计算模块202、复制模块203和处理模块204。
线程建立模块201可用于响应于接收的第一报表导出请求,建立第一导出任务线程。
计算模块202可用于执行第一导出任务线程,在存储业务数据的分布式数据库中对业务数据进行计算,得到第一计算结果数据。
复制模块203可用于将第一报表备选数据复制至事务型数据库。
第一报表备选数据包括第一计算结果数据。或者,第一报表备选数据包括第一计算结果数据和业务数据。
处理模块204可用于在事务型数据库的第一报表备选数据中查询第一导出任务线程指示的第一目标数据,调用报表生成工具,根据查询得到的第一目标数据生成第一目标报表。
在本申请实施例中,响应于第一报表导出请求,可建立第一导出任务线程,通过执行线程来实现报表的生成。执行第一导出任务线程,在存储业务数据的分布式数据库中进行业务数据的计算,得到第一计算结果数据。通过在分布式数据库进行业务数据的存储和计算,分散了存储和运算压力,减少了业务运算所需花费的时间。将包括计算得到的第一报表备选数据复制至事务型数据库,在事务型数据库中进行数据的查询和导出,调用报表生成工具,生成第一目标报表,利用了事务型数据库中索引查询速度快的优势,减少了查询数据所需花费的时间,进而减少了报表生成所花费的时间,提高了报表生成的效率。
在一些示例中,上述复制模块203可用于:根据第一导出任务线程的数据处理性能,确定单批次处理数据量;按照单批次处理数据量,分批次将第一报表备选数据复制至事务型数据库。
在一些示例中,上述处理模块204可用于:按照预设的拆分维度,划分查询得到的第一目标数据,得到至少一组第一目标数据;调用第一导出任务线程指示的报表模板,将各组第一目标数据分别填装至报表模板,调用报表生成工具,生成各组第一目标数据各自对应的第一目标报表。
在一些示例中,拆分维度包括以下一项或两项以上:用户维度、用户属性维度、数据属性维度。
在一些示例中,上述线程建立模块201还可用于在具有空闲线程的情况下,响应于接收的第二报表导出请求,建立第二导出任务线程。
上述计算模块202还可用于与第一导出任务线程并行执行第二导出任务线程,在存储业务数据的分布式数据库中对业务数据进行计算,得到第二计算结果数据。
上述复制模块203还可用于将第二报表备选数据复制至事务型数据库。
第二报表备选数据包括第二计算结果数据。或者,第二报表备选数据包括第二计算结果数据和业务数据。
上述处理模块204还用于在事务型数据库的第二报表备选数据中查询第二导出任务线程指示的第二目标数据,调用报表生成工具,根据查询得到的第二目标数据生成第二目标报表。
图7为本申请提供的报表生成装置的另一实施例的示意图。图7与图6的不同之处在于,图7所示的报表生成装置200还可包括删除模块205。
删除模块205可用于在事务型数据库中删除第一报表备选数据。
图8为本申请提供的报表生成装置的又一实施例的示意图。图8与图6的不同之处在于,图8所示的报表生成装置200还可包括轮询模块207和中断模块208。
轮询模块207可用于响应于中断指令,对第一导出任务线程进行轮询。
中断模块208可用于在轮询确定第一导出任务线程正在执行线程程序的情况下,将第一导出任务线程的任务状态更改为取消状态,以中断第一导出任务线程。
本申请还提供了一种报表生成设备。图9为本申请提供的报表生成设备的一实施例的结构示意图。如图9所示,报表生成设备300包括存储器301、处理器302及存储在存储器301上并可在处理器302上运行的计算机程序。
在一个示例中,上述处理器302可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器301可包括只读存储器(Read-Only Memory,ROM),随机存取存储器(RandomAccess Memory,RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本申请实施例中报表生成方法所描述的操作。
处理器302通过读取存储器301中存储的可执行程序代码来运行与可执行程序代码对应的计算机程序,以用于实现上述实施例中的报表生成方法。
在一个示例中,报表生成设备300还可包括通信接口303和总线304。其中,如图9所示,存储器301、处理器302、通信接口303通过总线304连接并完成相互间的通信。
通信接口303,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。也可通过通信接口303接入输入设备和/或输出设备。
总线304包括硬件、软件或两者,将报表生成设备300的部件彼此耦接在一起。举例来说而非限制,总线304可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(Enhanced Industry Standard Architecture,EISA)总线、前端总线(Front Side Bus,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industry Standard Architecture,ISA)总线、无限带宽互连、低引脚数(Low pin count,LPC)总线、存储器总线、微信道架构(Micro Channel Architecture,MCA)总线、外围组件互连(Peripheral Component Interconnect,PCI)总线、PCI-Express(PCI-E)总线、串行高级技术附件(Serial Advanced Technology Attachment,SATA)总线、视频电子标准协会局部(Video Electronics Standards Association Local Bus,VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线304可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,该计算机程序指令被处理器执行时可实现上述实施例中的报表生成方法,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,上述计算机可读存储介质可包括非暂态计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等,在此并不限定。
需要明确的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。对于装置实施例、设备实施例、计算机可读存储介质实施例而言,相关之处可以参见方法实施例的说明部分。本申请并不局限于上文所描述并在图中示出的特定步骤和结构。本领域的技术人员可以在领会本申请的精神之后,作出各种改变、修改和添加,或者改变步骤之间的顺序。并且,为了简明起见,这里省略对已知方法技术的详细描述。
上面参考根据本申请的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
本领域技术人员应能理解,上述实施例均是示例性而非限制性的。在不同实施例中出现的不同技术特征可以进行组合,以取得有益效果。本领域技术人员在研究附图、说明书及权利要求书的基础上,应能理解并实现所揭示的实施例的其他变化的实施例。在权利要求书中,术语“包括”并不排除其他装置或步骤;数量词“一个”不排除多个;术语“第一”、“第二”用于标示名称而非用于表示任何特定的顺序。权利要求中的任何附图标记均不应被理解为对保护范围的限制。权利要求中出现的多个部分的功能可以由一个单独的硬件或软件模块来实现。某些技术特征出现在不同的从属权利要求中并不意味着不能将这些技术特征进行组合以取得有益效果。
Claims (10)
1.一种报表生成方法,其特征在于,包括:
响应于接收的第一报表导出请求,建立第一导出任务线程;
执行所述第一导出任务线程,在存储业务数据的分布式数据库中对所述业务数据进行计算,得到第一计算结果数据;
将第一报表备选数据复制至事务型数据库,所述第一报表备选数据包括所述第一计算结果数据,或者,所述第一报表备选数据包括所述第一计算结果数据和所述业务数据;
在所述事务型数据库的所述第一报表备选数据中查询所述第一导出任务线程指示的第一目标数据,调用报表生成工具,根据查询得到的所述第一目标数据生成第一目标报表。
2.根据权利要求1所述的方法,其特征在于,所述将报表备选数据复制至事务型数据库,包括:
根据所述第一导出任务线程的数据处理性能,确定单批次处理数据量;
按照所述单批次处理数据量,分批次将所述第一报表备选数据复制至所述事务型数据库。
3.根据权利要求1所述的方法,其特征在于,所述调用报表生成工具,根据查询得到的所述第一目标数据生成第一目标报表,包括:
按照预设的拆分维度,划分查询得到的所述第一目标数据,得到至少一组所述第一目标数据;
调用所述第一导出任务线程指示的报表模板,将各组所述第一目标数据分别填装至报表模板,调用所述报表生成工具,生成各组所述第一目标数据各自对应的所述第一目标报表。
4.根据权利要求3所述的方法,其特征在于,所述拆分维度包括以下一项或两项以上:
用户维度、用户属性维度、数据属性维度。
5.根据权利要求1所述的方法,其特征在于,还包括:
在具有空闲线程的情况下,响应于接收的第二报表导出请求,建立第二导出任务线程;
与所述第一导出任务线程并行执行所述第二导出任务线程,在存储所述业务数据的分布式数据库中对所述业务数据进行计算,得到第二计算结果数据;
将第二报表备选数据复制至事务型数据库,所述第二报表备选数据包括所述第二计算结果数据,或者,所述第二报表备选数据包括所述第二计算结果数据和所述业务数据;
在所述事务型数据库的所述第二报表备选数据中查询所述第二导出任务线程指示的第二目标数据,调用所述报表生成工具,根据查询得到的所述第二目标数据生成第二目标报表。
6.根据权利要求1所述的方法,其特征在于,在所述调用报表生成工具,根据查询得到的所述第一目标数据生成第一目标报表之后,还包括:
在所述事务型数据库中删除所述第一报表备选数据。
7.根据权利要求1所述的方法,其特征在于,还包括:
响应于中断指令,对所述第一导出任务线程进行轮询;
在轮询确定所述第一导出任务线程正在执行线程程序的情况下,将所述第一导出任务线程的任务状态更改为取消状态,以中断所述第一导出任务线程。
8.一种报表生成装置,其特征在于,包括:
线程建立模块,用于响应于接收的第一报表导出请求,建立第一导出任务线程;
计算模块,用于执行所述第一导出任务线程,在存储业务数据的分布式数据库中对所述业务数据进行计算,得到第一计算结果数据;
复制模块,用于将第一报表备选数据复制至事务型数据库,所述第一报表备选数据包括所述第一计算结果数据,或者,所述第一报表备选数据包括所述第一计算结果数据和所述业务数据;
处理模块,用于在所述事务型数据库的所述第一报表备选数据中查询所述第一导出任务线程指示的第一目标数据,调用报表生成工具,根据查询得到的所述第一目标数据生成第一目标报表。
9.一种报表生成设备,其特征在于,包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1至7中任意一项所述的报表生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1至7中任意一项所述的报表生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111340466.2A CN114036180A (zh) | 2021-11-12 | 2021-11-12 | 报表生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111340466.2A CN114036180A (zh) | 2021-11-12 | 2021-11-12 | 报表生成方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114036180A true CN114036180A (zh) | 2022-02-11 |
Family
ID=80144256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111340466.2A Pending CN114036180A (zh) | 2021-11-12 | 2021-11-12 | 报表生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036180A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115879428A (zh) * | 2023-01-20 | 2023-03-31 | 北京长亭未来科技有限公司 | 一种流式报表的生成方法、装置和设备 |
-
2021
- 2021-11-12 CN CN202111340466.2A patent/CN114036180A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115879428A (zh) * | 2023-01-20 | 2023-03-31 | 北京长亭未来科技有限公司 | 一种流式报表的生成方法、装置和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200285508A1 (en) | Method and Apparatus for Assigning Computing Task | |
CN107133233B (zh) | 一种配置数据查询的处理方法及装置 | |
CN110858202A (zh) | 数据库查询语句中where子句的生成方法和生成装置 | |
CN110737425B (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
CN113626223A (zh) | 一种接口调用方法和装置 | |
CN113076153A (zh) | 一种接口调用方法和装置 | |
CN114490762A (zh) | 用于决策引擎的数据源取数方法、装置、介质和设备 | |
CN113722114A (zh) | 一种数据服务的处理方法、装置、计算设备及存储介质 | |
CN114036180A (zh) | 报表生成方法、装置、设备及存储介质 | |
CN110888972A (zh) | 一种基于Spark Streaming的敏感内容识别方法及装置 | |
CN113987337A (zh) | 基于组件化动态编排的搜索方法、系统、设备及存储介质 | |
CN111324645B (zh) | 区块链的数据处理方法及装置 | |
CA3202557A1 (en) | A data distribution method, apparatus, device and storage medium | |
CN110990000A (zh) | Mvc模式设计模型层的数据请求处理方法、装置及设备 | |
CN114399773B (zh) | Ocr识别系统构建方法和装置、ocr识别方法、设备、介质 | |
CN112131257B (zh) | 数据查询方法和装置 | |
CN114003603A (zh) | 基于大数据平台的数据导出方法、系统及存储介质 | |
CN114281549A (zh) | 数据的处理方法及装置 | |
CN114579085A (zh) | 网关的api开发方法及装置 | |
CN113760240A (zh) | 一种生成数据模型的方法和装置 | |
CN111639936A (zh) | 交易信息的获取方法、装置、电子设备及可读存储介质 | |
EP4105782A1 (en) | Hardware accelerator service discovery | |
CN109561146A (zh) | 文件下载方法、装置、终端设备 | |
CN107871020B (zh) | 一种基于SolrCloud补全数据对象属性的方法 | |
CN117132168A (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 |