CN113485781A - 报表生成方法、装置、电子设备及计算机可读介质 - Google Patents

报表生成方法、装置、电子设备及计算机可读介质 Download PDF

Info

Publication number
CN113485781A
CN113485781A CN202110837380.4A CN202110837380A CN113485781A CN 113485781 A CN113485781 A CN 113485781A CN 202110837380 A CN202110837380 A CN 202110837380A CN 113485781 A CN113485781 A CN 113485781A
Authority
CN
China
Prior art keywords
data
field
report
original data
service
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
Application number
CN202110837380.4A
Other languages
English (en)
Inventor
胡振华
李卓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202110837380.4A priority Critical patent/CN113485781A/zh
Publication of CN113485781A publication Critical patent/CN113485781A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了报表生成方法、装置、电子设备及计算机可读介质,涉及大数据技术领域。该方法的一具体实施方式包括:根据配置信息中记录的文件路径,从数据源中获取对应的至少一个原始数据表,之后分析原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表;调用数据分析工具,将确定出的多个原始数据表建立连接,以查询出满足设定连接条件的目标字段的字段信息,之后按照宽表的字段名称,将字段信息写入宽表的对应位置;接收报表生成请求,调用可视化工具从宽表中提取报表生成请求指示的目标列数据,将目标列数据插入至配置的报表模板,生成相应的报表。该实施方式实现了报表的灵活配置以及快速响应。

Description

报表生成方法、装置、电子设备及计算机可读介质
技术领域
本发明涉及大数据技术领域,尤其涉及一种报表生成方法、装置、电子设备及计算机可读介质。
背景技术
报表是企业管理系统的重要组成部分,可用于展现管理成果,暴露管理过程中的问题,实现企业的数字化转型。现有的报表生成方式是使用传统的软件开发架构,分为前后端和调度程序,前端封装用于可视化的工具,后端自行开发。但是由于报表具有需求变化大,需求灵活,需要快速响应等特点,传统的软件开发方式需要编写大量代码、成本高、开发周期长、响应需求变化慢。
发明内容
有鉴于此,本发明实施例提供报表生成方法、装置、电子设备及计算机可读介质,该方法通过比对原始数据表与预先设计的宽表之间的差异,确定需要连接的原始数据表,进而从连接后的数据表中查询目标字段的字段信息,并写入宽表,使得后续可以根据报表生成请求的指示,快速、灵活地从宽表中提取数据,并生成相应报表,实现报表的灵活配置以及快速响应。
为实现上述目的,根据本发明实施例的一个方面,提供了一种报表生成方法。
本发明实施例的一种报表生成方法,包括:根据配置信息中记录的文件路径,从数据源中获取对应的至少一个原始数据表,之后分析所述原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表;调用数据分析工具,将确定出的多个所述原始数据表建立连接,以查询出满足设定连接条件的目标字段的字段信息,之后按照所述宽表的字段名称,将所述字段信息写入所述宽表的对应位置;接收报表生成请求,调用可视化工具从所述宽表中提取所述报表生成请求指示的目标列数据,将所述目标列数据插入至配置的报表模板,生成相应的报表。
可选地,所述方法还包括:将对业务主题的业务分析需求量化为相应的业务指标,确定计算所述业务指标所需的业务维度;根据所述业务维度,确定与所述业务主题相应的宽表所需包含的业务字段;将所述业务字段填充到具有设定第一单元格布局的数据表文件,生成所述宽表;其中,所述数据表文件的一个单元格对应一个所述业务字段。
可选地,所述分析所述原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表,包括:比较所述原始数据表的属性字段与所述宽表的业务字段的异同;在所述原始数据表中存在与所述业务字段的字段名称相匹配的属性字段的情况下,将所述原始数据表作为需要建立连接的原始数据表。
可选地,所述将确定出的多个所述原始数据表建立连接,包括:使用连接字段,按照设定的连接方式将确定出的多个所述原始数据表建立连接;其中,所述连接字段为多个所述原始数据表中相同的属性字段。
可选地,所述从所述宽表中提取所述报表生成请求指示的目标列数据,包括:根据所述报表生成请求指示的目标列数据,动态拼接对应的查询语句,以使用所述查询语句从宽表中查询对应的目标列数据。
可选地,所述报表模板包括图形模板;所述将所述目标列数据插入至配置的报表模板,包括:根据所述报表生成请求指示的图形模板,将所述目标列数据插入至所述图形模板。
可选地,所述从数据源中获取对应的至少一个原始数据表的步骤之后,所述方法还包括:调用分布式框架,将所述至少一个原始数据表进行分布式存储。
可选地,所述确定需要建立连接的原始数据表的步骤之后,所述方法还包括:利用流式计算,将分布式存储的原始数据表加载到内存数据库表中进行实时计算。
可选地,所述将分布式存储的原始数据表加载到内存数据库表中进行实时计算,包括:将分布式存储的原始数据表加载到内存数据库表中;利用多线程和设定的数据处理逻辑,并发计算所述内存数据库表中待计算的数据。
可选地,所述调用数据分析工具,包括:根据在任务调度器配置的定时任务,确定满足所述定时任务的触发条件后,调用数据分析工具;其中,所述定时任务包括所述数据分析工具的调用信息。
可选地,所述方法还包括:根据设定的数据项需求信息,配置所述报表模板所需的数据项;将所述数据项填充到具有设定第二单元格布局的中间文件,生成所述报表模板;其中,所述中间文件的一个单元格对应一个所述数据项。
可选地,所述将所述目标列数据插入至配置的报表模板,生成相应的报表,包括:将所述目标列数据插入至所述报表模板的单元格;根据为所述单元格设置的数据处理格式,对所述单元格中的目标列数据进行处理,得到相应的报表。
为实现上述目的,根据本发明实施例的另一方面,提供了一种报表生成装置。
本发明实施例的一种报表生成装置,包括:数据抽取模块,用于根据配置信息中记录的文件路径,从数据源中获取对应的至少一个原始数据表,之后分析所述原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表;查询写入模块,用于调用数据分析工具,将确定出的多个所述原始数据表建立连接,以查询出满足设定连接条件的目标字段的字段信息,之后按照所述宽表的字段名称,将所述字段信息写入所述宽表的对应位置;报表生成模块,用于接收报表生成请求,调用可视化工具从所述宽表中提取所述报表生成请求指示的目标列数据,将所述目标列数据插入至配置的报表模板,生成相应的报表。
可选地,所述装置还包括:宽表生成模块,用于将对业务主题的业务分析需求量化为相应的业务指标,确定计算所述业务指标所需的业务维度;根据所述业务维度,确定与所述业务主题相应的宽表所需包含的业务字段;将所述业务字段填充到具有设定第一单元格布局的数据表文件,生成所述宽表;其中,所述数据表文件的一个单元格对应一个所述业务字段。
可选地,所述数据抽取模块,还用于比较所述原始数据表的属性字段与所述宽表的业务字段的异同;在所述原始数据表中存在与所述业务字段的字段名称相匹配的属性字段的情况下,将所述原始数据表作为需要建立连接的原始数据表。
可选地,所述查询写入模块,还用于使用连接字段,按照设定的连接方式将确定出的多个所述原始数据表建立连接;其中,所述连接字段为多个所述原始数据表中相同的属性字段。
可选地,所述报表生成模块,还用于根据所述报表生成请求指示的目标列数据,动态拼接对应的查询语句,以使用所述查询语句从宽表中查询对应的目标列数据。
可选地,所述报表模板包括图形模板;所述报表生成模块,还用于根据所述报表生成请求指示的图形模板,将所述目标列数据插入至所述图形模板。
可选地,所述从数据源中获取对应的至少一个原始数据表的步骤之后,所述装置还包括:存储模块,用于调用分布式框架,将所述至少一个原始数据表进行分布式存储。
可选地,所述确定需要建立连接的原始数据表的步骤之后,所述装置还包括:实时计算模块,用于利用流式计算,将分布式存储的原始数据表加载到内存数据库表中进行实时计算。
可选地,所述实时计算模块,还用于将分布式存储的原始数据表加载到内存数据库表中;利用多线程和设定的数据处理逻辑,并发计算所述内存数据库表中待计算的数据。
可选地,所述查询写入模块,还用于根据在任务调度器配置的定时任务,确定满足所述定时任务的触发条件后,调用数据分析工具;其中,所述定时任务包括所述数据分析工具的调用信息。
可选地,所述装置还包括:模板生成模块,用于根据设定的数据项需求信息,配置所述报表模板所需的数据项;将所述数据项填充到具有设定第二单元格布局的中间文件,生成所述报表模板;其中,所述中间文件的一个单元格对应一个所述数据项。
可选地,所述报表生成模块,还用于将所述目标列数据插入至所述报表模板的单元格;根据为所述单元格设置的数据处理格式,对所述单元格中的目标列数据进行处理,得到相应的报表。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种报表生成方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种报表生成方法。
上述发明中的一个实施例具有如下优点或有益效果:通过比对原始数据表与预先设计的宽表之间的差异,确定需要连接的原始数据表,进而从连接后的数据表中查询目标字段的字段信息,并写入宽表,使得后续可以根据报表生成请求的指示,快速、灵活地从宽表中提取数据,并生成相应报表,实现报表的灵活配置以及快速响应。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的报表生成方法的主要步骤的示意图;
图2是实现本发明实施例的报表生成方法的系统架构示意图;
图3是实现本发明实施例的报表生成方法的大数据平台的架构示意图;
图4是根据本发明实施例的报表生成方法的主要流程的示意图;
图5是根据本发明实施例的报表生成装置的主要模块的示意图;
图6是本发明实施例可以应用于其中的示例性系统架构图;
图7是适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的报表生成方法的主要步骤的示意图。
如图1所示,本发明实施例的报表生成方法,主要包括如下步骤:
步骤S101:根据配置信息中记录的文件路径,从数据源中获取对应的至少一个原始数据表,之后分析所述原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表。数据源中存储有以各种方式记录的原始数据表,比如记录在企业管理系统、办公系统、数据库,或者以Excel表格、逗号分隔值(Comma-Separated Values,CSV)等方式手工记录。
预先在配置信息中配置要获取的原始数据表的文件路径(即原始数据表的下载路径),便于后续获取该文件路径下的原始数据表。由于获取到的原始数据表通常有多个,为了提高查询速度,需要预先根据业务主题设计宽表,该宽表中记录了根据业务需求确定的要进行业务分析的业务字段。可以理解的是,此时的宽表中仅包含业务字段的字段名称,并无具体的字段信息。其中,宽表通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。
在设计好宽表并获取到原始数据表之后,比较原始数据表的属性字段与宽表的业务字段的异同,在原始数据表中存在与业务字段的字段名称相匹配的属性字段的情况下,将原始数据表作为需要建立连接的原始数据表。其中,字段名称相匹配是指宽表的业务字段与原始数据表的属性字段代表的是同一对象。
步骤S102:调用数据分析工具,将确定出的多个所述原始数据表建立连接,以查询出满足设定连接条件的目标字段的字段信息,之后按照所述宽表的字段名称,将所述字段信息写入所述宽表的对应位置。调用数据分析工具,拼接查询语句,以使用查询语句将确定出的多个原始数据表建立连接,同时查询出满足设定连接条件的目标字段的字段信息。
示例性地,查询语句中包括要查询的目标字段和连接条件,该目标字段为宽表的一个或者多个业务字段,连接条件即将多个原始数据表进行连接需要满足的条件。实施例中,查询语句可以是join查询语句,连接条件包括连接字段和运算符。在查询出目标字段的字段信息之后,将该将字段信息写入宽表中与目标字段的字段名称相同的业务字段下,得到包含具体字段信息的宽表。
步骤S103:接收报表生成请求,调用可视化工具从所述宽表中提取所述报表生成请求指示的目标列数据,将所述目标列数据插入至配置的报表模板,生成相应的报表。报表生成请求用于指示生成报表所需的目标列数据。在接收到报表生成请求后,调用可视化工具,以根据报表生成请求指示的目标列数据,动态拼接对应的查询语句,之后使用查询语句从宽表中查询对应的目标列数据。
将查询出的目标列数据插入至配置的报表模板,实现报表的自动生成。实施例中,报表模板中设置有可以以图形、表格等方式直观展示目标列数据的组件。
图2是实现本发明实施例的报表生成方法的系统架构示意图。如图2所示,本发明实施例的报表生成方法,由数据源、大数据平台、数据仓库和BI工具共同实现。其中,数据源可以是企业管理系统(ERP系统)、办公系统(OA系统)、数据库(比如Oracle数据库、MySQL数据库)、手工数据(比如Excel、CSV等)。大数据平台用于对数据进行抽取、清洗、整合、存储等处理。数据仓库可以是企业级数据仓库和宽表,企业级数据仓库比如为EDW(EnterpriseData Warehouse)数据库。BI工具是用于报表展现的可视化工具,BI的英文全称为BusinessIntelligence,是指商业智能。
图3是实现本发明实施例的报表生成方法的大数据平台的架构示意图。如图3所示,本发明实施例的大数据平台包括数据抽取工具(比如DataX)、分布式的数据存储系统(比如HDFS)、数据查询分析工具(包括用于批量抽取的Hive工具和/或实时的流计算)、分析型数据库和任务调度器。
其中,大数据平台的处理逻辑为:使用数据抽取工具,从数据源中获取原始数据表,之后可以将获取的原始数据表进行分布式存储,然后根据宽表的业务字段的字段名称,调用数据分析工具从原始数据表中查询对应的字段信息,将字段信息写入宽表的对应位置。任务调度器用于配置的定时任务,实现数据分析工具的定时调用。
图4是根据本发明实施例的报表生成方法的主要步骤示意图。如图4所示,本发明实施例的报表生成方法,主要包括如下步骤:
步骤S401:根据业务主题的数据分析需求,为业务主题生成对应的宽表。不同的业务主题可能有不同的数据分析需求,分析所使用的业务指标、业务维度通常也不相同。故实施例中,为同一业务主题设计一张或者多张宽表。一个业务主题对应一个数据分析领域,比如业务主题可以是销售数据分析、贷款数据分析等。
本步骤的实现过程可以是:将对业务主题的业务分析需求量化为相应的业务指标,确定计算业务指标所需的业务维度;之后根据业务维度,确定与业务主题相应的宽表所需包含的业务字段;最后将业务字段填充到具有设定第一单元格布局的数据表文件,即可生成宽表。其中,数据表文件的一个单元格对应一个业务字段。
以销售数据分析这一业务主题为例,业务指标可以是近一个月内每个销售员的销售总额。计算该业务指标所需的业务维度为销售员、销售金额和销售时间,则可将这些业务维度作为宽表所需的业务字段,将业务字段填充到数据表文件,即可生成宽表。实施例中,数据表文件可以是包含多行多列的表格文件。
实施例中,宽表可以包括数据实体表和数据关系表。数据实体表记录实际的对象信息,比如销售员信息、销售产品信息;数据关系表记录数据表之间的关系,比如销售员具体销售了哪些产品的关系表。
步骤S402:根据配置信息中记录的文件路径,从数据源中获取对应的至少一个原始数据表,调用分布式框架,将获取的原始数据表进行分布式存储。使用数据抽取工具,比如DataX(是一个异构数据源离线同步工具),从数据源中定时或者实时获取原始数据表。
DataX的配置信息包括两个配置项,setting和content,其中,setting描述任务本身的信息,content描述源端(reader)和目的端(writer)的信息。可以在reader中配置需要读取数据的文件路径,以从该文件路径下获取对应的原始数据表。抽取到的原始数据表可以通过分布式框架,进行分布式存储,避免存储压力。实施例中,分布式框架可以是HDFS(Hadoop Distributed File System,分布式文件系统)。
步骤S403:分析原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表。该步骤用于比较原始数据表的属性字段与宽表的业务字段的异同,在原始数据表中存在与业务字段的字段名称相匹配的属性字段的情况下,将原始数据表作为需要建立连接的原始数据表。
其中,字段名称相匹配可以是业务字段的字段名称与属性字段的字段名称完全相同;也可以是两个字段名称虽不同,但是代表同一对象。比如,原始数据表中用销售人员这一字段名称,宽表中用销售员这一字段名称,但是均是代表销售员这一对象。
步骤S404:调用数据分析工具,将确定出的多个原始数据表建立连接,以查询出满足设定连接条件的目标字段的字段信息。实施例中数据分析工具可以为Hive。Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
具体地,调用Hive工具,使用join方法将多个原始数据表建立连接,同时查询出满足设定连接条件的目标字段的字段信息。join方法包括多种连接方式,分别为内连接、左连接和右连接。连接通常可以在select语句的from子句或where子句中建立,语法格式为:from join_table join_type join_table[on(join_condition)]。
其中,join_table为参与连接操作的表名;join_type为连接方式;on(join_condition)为连接条件,可由被连接表中的列(即连接字段)和比较运算符、逻辑运算符等构成。实施例中,select语句中定义了要查询的目标字段,from子句定义了连接方式和连接条件(包括连接字段),按照该连接方式,使用连接字段即可将确定的多个原始数据表建立连接。
可选地,连接字段可以是多个原始数据表中相同的属性字段。此处的相同可以是属性字段的字段名称相同;也可以是字段名称不同,但代表同一属性字段。本步骤将原始数据表建立连接后,再查询目标字段的字段信息,提高查询性能,同时保证查询准确度。
在一优选的实施例中,为了实现报表的自动生成,可以定时调用数据分析工具。具体地,根据在任务调度器(比如Azkaban)配置的定时任务,确定满足定时任务的触发条件后,调用数据分析工具。其中,定时任务包括数据分析工具的调用信息,比如工具名称、触发条件。触发条件用于指示触发定时任务执行的条件,比如每隔1小时执行一次调度。
步骤S405:按照宽表的字段名称,将字段信息写入宽表的对应位置。该步骤即将查询出的目标字段的字段信息,写入到宽表中与目标字段的字段名称相同的业务字段下,得到包含具体字段信息的宽表。至此实现了将业务数据按照业务主题存储到宽表中。
步骤S406:接收报表生成请求,调用可视化工具从宽表中提取报表生成请求指示的目标列数据,将目标列数据插入至配置的报表模板,生成相应的报表并展示。报表模板可以根据需求自行定义,比如可以是图形模板,也可以是具有设定单元格布局的模板。
以图形模板为例,可视化工具为BI工具,用户使用BI工具选择宽表的业务字段和图形模板,触发生成报表生成请求(该请求中携带有用户通过拖拉拽等方式,选择的业务字段的字段名称和图形模板),之后由该BI工具根据报表生成请求,动态拼接对应的SQL查询语句,以使用SQL查询语句从宽表中查询对应的目标列数据(即选择的业务字段的字段名称对应列的数据),将目标列数据插入至图形模板(比如饼图、柱图、折线图等),即可生成报表。
以具有设定单元格布局的模板为例,在接收到报表生成请求后,该请求中携带需要插入报表模板的业务字段的字段名称,调用可视化工具从宽表中提取目标列数据(即请求中携带的业务字段的字段名称对应列的数据),将目标列数据插入至报表模板的单元格,之后根据为单元格设置的数据处理格式,对单元格中的目标列数据进行处理,即可得到相应的报表。
数据处理格式是对报表模板的单元格中填充的数据进行处理的依据。实施例中,数据处理格式可以是数据转换格式,实现不同格式数据之间的转换;数据处理格式也可以是函数公式,以在单元格中实现填充数据的函数运算;数据处理格式也可以是图形转换格式,以在单元格中根据填充的数据实现数据相应图形的转换,实现数据的图形化表达。
具有设定单元格布局的模板包括多个可以填充数据的单元格,其生成过程可以是:根据设定的数据项需求信息,配置报表模板所需的数据项,之后将数据项填充到具有设定第二单元格布局的中间文件,生成报表模板。其中,中间文件的一个单元格对应一个数据项。
在一优选的实施例中,为了防止用户越权查看报表,可以为用户设置查看权限,具体地可以设置报表级别的查看权限和数据级别的查看权限。报表级别的查看权限是通过菜单的隐藏和展现与用户的关联关系,形成用户与菜单的权限表;数据级别的权限是通过用户与数据列的关联关系形成用户与数据列的权限表来实现。
在另一优选的实施例中,为了实现对实时性要求高的数据的实时处理,在步骤S402之后,可以利用流式计算,将分布式存储的原始数据表加载到内存数据库表中进行实时计算,获得有价值的信息。实施例中,流式计算可以基于Flum实现。实时计算的具体实现可以是:将分布式存储的原始数据表加载到内存数据库表中,之后利用多线程和设定的数据处理逻辑,并发计算内存数据库表中待计算的数据。其中,数据处理逻辑可以是对数据的数学运算,比如加减乘除。
上述实施例引用了一套封装好的工具,可以直接操作数据库,前端根据用户所选的宽表的业务字段,动态拼接SQL查询数据,并将查询的结果传入用户所选的图形模板中,能够应对需求的快速变化,实现报表的灵活配置,提高报表生成效率。同时可以处理大数据级别的数据量,支持实时计算。
图5是根据本发明实施例的报表生成装置的主要模块的示意图。
如图5所示,本发明实施例的报表生成装置500,主要包括:
数据抽取模块501,用于根据配置信息中记录的文件路径,从数据源中获取对应的至少一个原始数据表,之后分析所述原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表。数据源中存储有以各种方式记录的原始数据表,比如记录在企业管理系统、办公系统、数据库,或者以Excel表格、CSV等方式手工记录。
预先在配置信息中配置要获取的原始数据表的文件路径(即原始数据表的下载路径),便于后续获取该文件路径下的原始数据表。由于获取到的原始数据表通常有多个,为了提高查询速度,需要预先根据业务主题设计宽表,该宽表中记录了根据业务需求确定的要进行业务分析的业务字段。可以理解的是,此时的宽表中仅包含业务字段的字段名称,并无具体的字段信息。其中,宽表通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。
在设计好宽表并获取到原始数据表之后,比较原始数据表的属性字段与宽表的业务字段的异同,在原始数据表中存在与业务字段的字段名称相匹配的属性字段的情况下,将原始数据表作为需要建立连接的原始数据表。其中,字段名称相匹配是指宽表的业务字段与原始数据表的属性字段代表的是同一对象。
查询写入模块502,用于调用数据分析工具,将确定出的多个所述原始数据表建立连接,以查询出满足设定连接条件的目标字段的字段信息,之后按照所述宽表的字段名称,将所述字段信息写入所述宽表的对应位置。调用数据分析工具,拼接查询语句,以使用查询语句将确定出的多个原始数据表建立连接,同时查询出满足设定连接条件的目标字段的字段信息。
在查询出目标字段的字段信息之后,将该将字段信息写入宽表中与目标字段的字段名称相同的业务字段下,得到包含具体字段信息的宽表。
报表生成模块503,用于接收报表生成请求,调用可视化工具从所述宽表中提取所述报表生成请求指示的目标列数据,将所述目标列数据插入至配置的报表模板,生成相应的报表。报表生成请求用于指示生成报表所需的目标列数据。在接收到报表生成请求后,调用可视化工具,以根据报表生成请求指示的目标列数据,动态拼接对应的查询语句,之后使用查询语句从宽表中查询对应的目标列数据。
将查询出的目标列数据插入至配置的报表模板,实现报表的自动生成。实施例中,报表模板中设置有可以以图形、表格等方式直观展示目标列数据的组件。
另外,本发明实施例的报表生成500还可以包括:宽表生成模块、存储模块、实时计算模块和模板生成模块(图5中未示出)。其中,宽表生成模块,用于将对业务主题的业务分析需求量化为相应的业务指标,确定计算所述业务指标所需的业务维度;根据所述业务维度,确定与所述业务主题相应的宽表所需包含的业务字段;将所述业务字段填充到具有设定第一单元格布局的数据表文件,生成所述宽表;其中,所述数据表文件的一个单元格对应一个所述业务字段。
存储模块,用于调用分布式框架,将所述至少一个原始数据表进行分布式存储。实时计算模块,用于利用流式计算,将分布式存储的原始数据表加载到内存数据库表中进行实时计算。模板生成模块,用于根据设定的数据项需求信息,配置所述报表模板所需的数据项;将所述数据项填充到具有设定第二单元格布局的中间文件,生成所述报表模板;其中,所述中间文件的一个单元格对应一个所述数据项。
从以上描述可以看出,通过比对原始数据表与预先设计的宽表之间的差异,确定需要连接的原始数据表,进而从连接后的数据表中查询目标字段的字段信息,并写入宽表,使得后续可以根据报表生成请求的指示,快速、灵活地从宽表中提取数据,并生成相应报表,实现报表的灵活配置以及快速响应。
图6示出了可以应用本发明实施例的报表生成方法或报表生成装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所发送的报表生成请求提供支持的后台管理服务器。后台管理服务器可以根据报表生成请求进行数据提取,将提取的数据插入至报表模板,生成报表等处理,并将处理结果(例如报表)反馈给终端设备。
需要说明的是,本发明实施例所提供的报表生成方法一般由服务器605执行,相应地,报表生成装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种报表生成方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种报表生成方法。
下面参考图7,其示出了适于用来实现本发明实施例的电子设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括数据抽取模块、查询写入模块和报表生成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,数据抽取模块还可以被描述为“根据配置信息中记录的文件路径,从数据源中获取对应的至少一个原始数据表,之后分析所述原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据配置信息中记录的文件路径,从数据源中获取对应的至少一个原始数据表,之后分析所述原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表;调用数据分析工具,将确定出的多个所述原始数据表建立连接,以查询出满足设定连接条件的目标字段的字段信息,之后按照所述宽表的字段名称,将所述字段信息写入所述宽表的对应位置;接收报表生成请求,调用可视化工具从所述宽表中提取所述报表生成请求指示的目标列数据,将所述目标列数据插入至配置的报表模板,生成相应的报表。
根据本发明实施例的技术方案,通过比对原始数据表与预先设计的宽表之间的差异,确定需要连接的原始数据表,进而从连接后的数据表中查询目标字段的字段信息,并写入宽表,使得后续可以根据报表生成请求的指示,快速、灵活地从宽表中提取数据,并生成相应报表,实现报表的灵活配置以及快速响应。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (15)

1.一种报表生成方法,其特征在于,包括:
根据配置信息中记录的文件路径,从数据源中获取对应的至少一个原始数据表,之后分析所述原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表;
调用数据分析工具,将确定出的多个所述原始数据表建立连接,以查询出满足设定连接条件的目标字段的字段信息,之后按照所述宽表的字段名称,将所述字段信息写入所述宽表的对应位置;
接收报表生成请求,调用可视化工具从所述宽表中提取所述报表生成请求指示的目标列数据,将所述目标列数据插入至配置的报表模板,生成相应的报表。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将对业务主题的业务分析需求量化为相应的业务指标,确定计算所述业务指标所需的业务维度;
根据所述业务维度,确定与所述业务主题相应的宽表所需包含的业务字段;
将所述业务字段填充到具有设定第一单元格布局的数据表文件,生成所述宽表;其中,所述数据表文件的一个单元格对应一个所述业务字段。
3.根据权利要求2所述的方法,其特征在于,所述分析所述原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表,包括:
比较所述原始数据表的属性字段与所述宽表的业务字段的异同;
在所述原始数据表中存在与所述业务字段的字段名称相匹配的属性字段的情况下,将所述原始数据表作为需要建立连接的原始数据表。
4.根据权利要求1所述的方法,其特征在于,所述将确定出的多个所述原始数据表建立连接,包括:
使用连接字段,按照设定的连接方式将确定出的多个所述原始数据表建立连接;其中,所述连接字段为多个所述原始数据表中相同的属性字段。
5.根据权利要求1所述的方法,其特征在于,所述从所述宽表中提取所述报表生成请求指示的目标列数据,包括:
根据所述报表生成请求指示的目标列数据,动态拼接对应的查询语句,以使用所述查询语句从宽表中查询对应的目标列数据。
6.根据权利要求5所述的方法,其特征在于,所述报表模板包括图形模板;
所述将所述目标列数据插入至配置的报表模板,包括:
根据所述报表生成请求指示的图形模板,将所述目标列数据插入至所述图形模板。
7.根据权利要求1所述的方法,其特征在于,所述从数据源中获取对应的至少一个原始数据表的步骤之后,所述方法还包括:
调用分布式框架,将所述至少一个原始数据表进行分布式存储。
8.根据权利要求7所述的方法,其特征在于,所述确定需要建立连接的原始数据表的步骤之后,所述方法还包括:
利用流式计算,将分布式存储的原始数据表加载到内存数据库表中进行实时计算。
9.根据权利要求8所述的方法,其特征在于,所述将分布式存储的原始数据表加载到内存数据库表中进行实时计算,包括:
将分布式存储的原始数据表加载到内存数据库表中;
利用多线程和设定的数据处理逻辑,并发计算所述内存数据库表中待计算的数据。
10.根据权利要求1所述的方法,其特征在于,所述调用数据分析工具,包括:
根据在任务调度器配置的定时任务,确定满足所述定时任务的触发条件后,调用数据分析工具;其中,所述定时任务包括所述数据分析工具的调用信息。
11.根据权利要求1-5、7-10的任一项所述的方法,其特征在于,所述方法还包括:
根据设定的数据项需求信息,配置所述报表模板所需的数据项;
将所述数据项填充到具有设定第二单元格布局的中间文件,生成所述报表模板;其中,所述中间文件的一个单元格对应一个所述数据项。
12.根据权利要求11所述的方法,其特征在于,所述将所述目标列数据插入至配置的报表模板,生成相应的报表,包括:
将所述目标列数据插入至所述报表模板的单元格;
根据为所述单元格设置的数据处理格式,对所述单元格中的目标列数据进行处理,得到相应的报表。
13.一种报表生成装置,其特征在于,包括:
数据抽取模块,用于根据配置信息中记录的文件路径,从数据源中获取对应的至少一个原始数据表,之后分析所述原始数据表与预设计的宽表之间的差异,确定需要建立连接的原始数据表;
查询写入模块,用于调用数据分析工具,将确定出的多个所述原始数据表建立连接,以查询出满足设定连接条件的目标字段的字段信息,之后按照所述宽表的字段名称,将所述字段信息写入所述宽表的对应位置;
报表生成模块,用于接收报表生成请求,调用可视化工具从所述宽表中提取所述报表生成请求指示的目标列数据,将所述目标列数据插入至配置的报表模板,生成相应的报表。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-12中任一所述的方法。
CN202110837380.4A 2021-07-23 2021-07-23 报表生成方法、装置、电子设备及计算机可读介质 Pending CN113485781A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110837380.4A CN113485781A (zh) 2021-07-23 2021-07-23 报表生成方法、装置、电子设备及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110837380.4A CN113485781A (zh) 2021-07-23 2021-07-23 报表生成方法、装置、电子设备及计算机可读介质

Publications (1)

Publication Number Publication Date
CN113485781A true CN113485781A (zh) 2021-10-08

Family

ID=77943328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110837380.4A Pending CN113485781A (zh) 2021-07-23 2021-07-23 报表生成方法、装置、电子设备及计算机可读介质

Country Status (1)

Country Link
CN (1) CN113485781A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113902479A (zh) * 2021-10-12 2022-01-07 广东省电信规划设计院有限公司 一种通信工程概预算的处理方法及装置
CN114997808A (zh) * 2021-12-19 2022-09-02 中国铁道科学研究院集团有限公司电子计算技术研究所 铁路施工调度简报生成方法和系统
CN115081414A (zh) * 2022-08-17 2022-09-20 广州思迈特软件有限公司 基于数据模型的电子表格生成方法、装置、设备及介质
CN115840771A (zh) * 2023-02-14 2023-03-24 光大永明资产管理股份有限公司 一种数据处理系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113902479A (zh) * 2021-10-12 2022-01-07 广东省电信规划设计院有限公司 一种通信工程概预算的处理方法及装置
CN114997808A (zh) * 2021-12-19 2022-09-02 中国铁道科学研究院集团有限公司电子计算技术研究所 铁路施工调度简报生成方法和系统
CN115081414A (zh) * 2022-08-17 2022-09-20 广州思迈特软件有限公司 基于数据模型的电子表格生成方法、装置、设备及介质
CN115840771A (zh) * 2023-02-14 2023-03-24 光大永明资产管理股份有限公司 一种数据处理系统
CN115840771B (zh) * 2023-02-14 2023-04-28 光大永明资产管理股份有限公司 一种数据处理系统

Similar Documents

Publication Publication Date Title
CN113485781A (zh) 报表生成方法、装置、电子设备及计算机可读介质
US20210263906A1 (en) Recreating an oltp table and reapplying database transactions for real-time analytics
CN108958959B (zh) 检测hive数据表的方法和装置
CN111414376A (zh) 一种数据预警方法和装置
US10877971B2 (en) Logical queries in a distributed stream processing system
CN111190888A (zh) 一种管理图数据库集群的方法和装置
CN111813804A (zh) 一种数据查询方法、装置、电子设备及存储介质
CN111444077A (zh) 一种生成流程节点测试数据的方法和装置
CN111984234A (zh) 一种处理工单的方法和装置
CN110895761A (zh) 一种售后服务申请信息的处理方法和装置
CN113434527A (zh) 数据处理的方法、装置、电子设备和存储介质
CN113190558A (zh) 一种数据加工方法和系统
CN113760922A (zh) 一种业务数据处理系统、方法、服务器和存储介质
CN111858621B (zh) 监控业务流程的方法、装置、设备和计算机可读介质
CN111488386A (zh) 数据查询方法和装置
CN109740130B (zh) 用于生成文件的方法和装置
US11893027B2 (en) Aggregate query optimization
CN114757157B (zh) 用于生成航空器工包的方法、装置、设备和介质
CN114817297A (zh) 一种处理数据的方法和装置
CN112256566B (zh) 一种测试案例的保鲜方法和装置
CN112579673A (zh) 一种多源数据处理方法及装置
CN113760240A (zh) 一种生成数据模型的方法和装置
CN111178014A (zh) 一种处理业务流程的方法和装置
CN112817930A (zh) 一种数据迁移的方法和装置
US20230359637A1 (en) Method and Apparatus for Generating Data Feature, Electronic Device and Computer Readable Medium

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