CN108984496B - 生成报表的方法和装置 - Google Patents
生成报表的方法和装置 Download PDFInfo
- Publication number
- CN108984496B CN108984496B CN201710407406.5A CN201710407406A CN108984496B CN 108984496 B CN108984496 B CN 108984496B CN 201710407406 A CN201710407406 A CN 201710407406A CN 108984496 B CN108984496 B CN 108984496B
- Authority
- CN
- China
- Prior art keywords
- model
- report
- data
- script
- module
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种生成报表的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取报表配置信息;根据所述报表配置信息从该报表对应的一个或多个模型的模型数据中获取该报表的报表数据;根据所述报表配置信息和所述报表数据生成报表展示数据。该实施方式能够自动生成报表,节省人力、提高效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种生成报表的方法和装置。
背景技术
目前,用户在制作报表时,用户需要建立临时的查询任务对相关数据进行查询,再将查询得到报表数据进行导出,然后基于导出的数据再通过excel软件手动作出报表。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:用户在每次制作报表时,都需要手动创建临时查询任务进行报表提数,然后手动用excel做报表,人工重复性工作太多,浪费时间,对于很多内容比较固化的报表,用户其实只是在重复机械的工作,浪费人力,而且效率低,并且作好的报表不方便管理和分享。
因此,亟需一种能够节省人力、提高效率的生成报表的方法和装置。
发明内容
有鉴于此,本发明实施例提供一种生成报表的方法和装置,能够自动生成报表,节省人力、提高效率。
为实现上述目的,根据本发明实施例的一个方面,提供了一种生成报表的方法,包括:
获取报表配置信息;
根据所述报表配置信息从该报表对应的一个或多个模型的模型数据中获取该报表的报表数据;
根据所述报表配置信息和所述报表数据生成报表展示数据。
进一步的,本发明实施例提供的生成报表的方法,还包括:
把所述报表展示数据传递至展示模块以展示相应的报表。
进一步的,所述模型数据是通过执行相应模型的模型脚本而产生。
进一步的,所述模型脚本由执行模块来执行,其中,所述执行模块接收模型的模型脚本并且返回该模型脚本对应的任务标识码。
进一步的,通过拉取模块把该报表对应的模型的模型数据拉取至模型数据存储区中,使得从所述模型数据存储区中存储的所述模型数据中获取该报表的报表数据。
进一步的,所述模型通过模型配置模块来配置,所述模型包括:模型脚本、模型ID、模型名称、执行状态、模型元数据和批次。
可选的,所述模型包括是否生成报表的标志,其中,所述拉取模块根据所述标志判断是否生成报表,若生成报表,则所述拉取模块把该报表对应的模型的模型数据拉取至模型数据存储区中。
为实现上述目的,根据本发明实施例的一个方面,提供了一种生成报表的装置,包括:
报表展示数据生成模块,用于获取报表配置信息,根据所述报表配置信息从该报表对应的一个或多个模型的模型数据中获取该报表的报表数据,根据所述报表配置信息和所述报表数据生成报表展示数据。
进一步的,本发明实施例提供的生成报表的装置,还包括:
展示模块,用于根据所述报表展示数据展示相应的报表。
进一步的,本发明实施例提供的生成报表的装置,还包括:
执行模块,用于执行相应模型的模型脚本而产生所述模型数据,其中,所述执行模块接收模型的模型脚本并且返回该模型脚本对应的任务标识码。
进一步的,所述报表展示数据生成模块,进一步用于把所述报表对应的模型的模型数据拉取至模型数据存储区中,使得从所述模型数据存储区中存储的所述模型数据中获取该报表的报表数据。
进一步的,本发明实施例提供的生成报表的装置,还包括:
模型配置模块,用于配置所述模型,所述模型包括:模型脚本、模型ID、模型名称、执行状态、模型元数据和批次。
为实现上述目的,根据本发明实施例的一个方面,提供了一种生成报表的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的生成报表的方法。
为实现上述目的,根据本发明实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例提供的生成报表的方法。
基于本发明实施例提供的生成报表的方法和装置,用户可以根据具体的业务场景需求配置所数据筛选所需要的模型,并将配置好的模型上传至服务端的数据库进行存储,存储的模型可以重复使用。对应于报表,用户同样可以在客户端根据具体需要的报表样式和使用需求对报表配置信息进行相应的设置。整个生成报表的过程中,用户不需要手动提取报表的数据,***会自动根据模型来采集数据,并基于报表配置信息生成报表展示。并且用户通过报表配置模块,可以灵活的制作报表并进行简单的排版,展示模块即可为用户呈现一份准确,美观的报告,节省了用户每天为制作报表准备数据的工作。通过***对报表进行统一管理,节约了用户线下数据维护管理成本,通过分享功能,为用户提供了一种便捷的共享方式。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明实施例提供的生成报表的方法流程图;
图2是本发明实施例提供的生成报表的方法的应用流程示意图;
图3是本发明实施例提供的生成报表的装置的示意图;
图4是本发明实施例可以应用于其中的示例性***架构图;
图5是适于用来实现本发明实施例的电子设备的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明实施例提供一种生成报表的方法,如图1所示,该方法包括下述步骤S101至步骤S103。在步骤S101中,根据报表ID获取报表配置信息,报表配置信息由报表配置模块生成,用户可以通过报表配置模块,根据具体需要的报表样式和使用需求对报表配置信息进行相应的设置。报表配置模块通过数据库对配置好的报表配置信息进行保存,并且为报表配置信息生成一个唯一的报表ID,使得通过该报表ID能够获取到对应的报表配置信息。设置好的报表配置信息可以重复使用,对于同一类型的报表,用户若需要再次制作报表,即可使用之前设置好的报表配置信息,无需再重复设置。
在本发明中,报表配置信息包括:模型数据的数据源、报表模型、生成报表数据的数据脚本及脚本参数,结合具体的应用场景需求,报表配置信息中还可以包括下列各项中的一项或多项的组合:图形类型、坐标轴信息、行列转换和下钻信息。
其中,数据脚本为生成报表数据需要使用的数据查询SQL脚本,SQL脚本的条件可以包含动态的变量,脚本参数为需要用户结合应用场景设置的参数值,在执行时,把数据脚本中的变量替换为用户设置的脚本参数。
报表模型为展示报表时需要的字段信息来源模型,例如应用场景为展示一个用户订单量统计报表,则其需要的字段信息为:用户字段、订单量汇总字段等。图形类型包括:饼图、柱图以及折线图等。坐标轴信息为图形中的X、Y和Z坐标轴字段。行列转换为图形展示时把X轴和序列信息对调。
报表配置模块可以为用户提供交互页面,用户可以通过交互界面配置报表配置信息,通过报表配置信息实现文字概要、数据列表、图形报表三种报表的设计,例如,可以根据具体的需求在一个页面上配置N个报表,在页面上一行(横向)可以配置一个或两个报表,并且允许用户在同一个页面上定制多个不同类型的报表,根据需要调整排版顺序,从而方便灵活的进行报表的制作和排版,用户还可以在报表配置信息中设置相关的下钻信息,使得在展示报表时,通过钻取还可以进行细粒度的数据分析。
在步骤S102中,根据报表配置信息从该报表对应的一个或多个模型的模型数据中获取该报表的报表数据。在本发明中,模型和报表数据可以为一对一或多对一的关系,即可以通过一个模型的模型数据获得报表数据,也可以通过多个模型的模型数据获得报表数据。报表数据是根据报表配置信息中的模型数据的数据源、生成报表数据的数据脚本及脚本参数从模型数据中查询获得的。即用户可以通过报表配置信息中的SQL脚本对一个或多个模型的模型数据进行查询筛选,选出展示报表所需要的数据即报表数据。
进而,在步骤S103中,根据报表配置信息和报表数据生成报表展示数据。在生成报表展示数据的过程中,首先,基于报表配置信息中报表的XYZ轴字段信息以及行列转换等信息进行数据封装,得到封装结果config。然后通过识别报表类型自动匹配报表数据包装器,选择匹配的报表数据包装器传入报表数据和封装结果config,进行数据包装,最终生成报表展示数据。若需要对报表进行下载,则可以将报表数据以CVS文件的形式导出。
本发明提供的生成报表的方法,能够自动生成报表,用户只需要在前台通过***提供的交互界面配置好报表,***即可根据相应的配置生成报表,并且设置好的报表配置信息可以重复使用,用户无需再重复进行配置工作,节省了人力、提高了效率。
本发明实施例提供的生成报表的方法,还包括下述步骤S104,把报表展示数据传递至展示模块以展示相应的报表。步骤S103生成报表展示数据后,若需要对报表进行展示,则基于报表展示数据生成报表展示所需要格式的数据,将生成的数据传递给页面报表图形控件进行相应报表的展示。例如,所展示的报表可以是一份类似报告书格式的报表页面,其开头有总结性文字描述,正文是图形报表、数据列表、文字描述自由组合,如果设置了下钻,还可以方便的钻取到明细数据,便于进一步数据分析。另外,在页面上还可以提供在图像和数据列表之间切换展现形式,数据下载,以及报表链接分享功能,用户可以方便的查看报表和共享报表。
在本发明中,模型包括:模型脚本、模型ID、模型名称、执行状态、模型元数据和批次等信息。模型数据是通过执行相应模型的模型脚本而产生的。通过在数据库中基于模型脚本进行数据查询获得模型数据。模型中,模型脚本可以为SQL查询脚本,例如,若需要生成并展示一个用户登陆日志信息的报表,则可以将该报表对应的模型脚本配置为:
create table YW01_DEMO_1as
select user_id,user_login_time,user_login_ip from user_login_logwhere dt>=‘2017-01-01’。
即从用户登录日志user_login_log中,查询用户账号(user_id),用户登陆时间(user_login_time),用户登陆IP(user_login_ip)的数据,从而创建用户登陆日志信息的模型数据YW01_DEMO_1。
模型元数据包括表结构的字段信息,如上例:需要生成一个用户登陆日志信息的报表,该报表对应的模型元数据可以包含用户账号(user_id),用户登陆时间(user_login_time),用户登陆IP(user_login_ip)等。
在本发明中,模型通过模型配置模块来配置,模型配置模块和报表配置模块可以配置在客户端,本发明提供的生成报表的方法可以应用于服务端,用户可以根据具体的业务场景需求配置所需要的模型,并将配置好的模型上传至服务端的数据库进行存储,存储的模型可以重复使用。对应于报表,用户同样可以在客户端根据具体需要的报表样式和使用需求对报表配置信息进行相应的设置。
在需要生成报表时,服务端先基于具体的模型进行数据查询获得模型数据,然后再根据模型数据结合用户设置的报表配置信息生成报表数据进而生成报表,整个生成报表的过程中,用户不需要手动提取报表的数据,***会自动采集数据生成报表,节省了人力,提高了效率。
在本发明中,配置好的模型保存在数据库中,用户通过报表配置模块从数据库获取模型的信息,基于这些信息对报表配置信息进行相应的设置。并将配置好的报表配置信息添加到服务端数据库中。
执行模型脚本的过程为通过模型脚本在数据库中执行生成模型数据。如上例,在数据库中执行SQL查询脚本,查询用户账号,用户登陆时间,用户登陆IP的相应数据,然后生成模型数据,模型数据即为一张表,其表头即用户账号,用户登陆时间以及用户登陆IP。
在本发明中,模型脚本由执行模块来执行,具体包括:将模型脚本发送至执行模块,执行模块通过在数据库中执行模型脚本进行数据查询生成模型数据。
在本发明中,执行模块的功能可以由大数据平台(BI平台)实现,BI平台是一个分布式***基础架构hadoop集群,也可称为大数据集市。用户可以对将模型脚本发送至执行模块的过程进行调度。服务端可以存储有一个或多个配置好的模型,用户通过在客户端设置任务配置信息来调度将模型的模型脚本发送至执行模块的时间、次数,以及多个模型脚本之间发送的顺序等等。设置任务配置信息时,用户基于数据库中存储的模型的信息进行相应的配置,并将配置好的任务配置信息添加入服务端数据库中。
将模型脚本发送至执行模块包括:服务端启动一个任务调度线程,任务调度线程根据任务配置信息以及用户操作,生成一个或多个定时任务,定时任务下配置有需要发送模型脚本至执行模块的模型,由定时任务将其下配置的模型的模型脚本发送至执行模块。
任务调度线程是对所有定时任务的状态进行控制的处理线程,其依据任务配置信息以及用户操作,检查定时任务是否生成、启动、暂停、停止以及执行结束。
在本发明中,模型中包括有模型的批次。一个定时任务下可以配置多个模型,根据具体的应用场景需求,用户配置的模型可以为多个有依赖关系的模型,该依赖关系可以体现在模型的模型脚本上,后一个模型的模型脚本的执行需要前一个模型的模型脚本执行产生的模型数据,在这种需求下,在模型中配置模型的批次,在将多个有依赖关系的模型的模型脚本发送至执行模块时,可以将该多个模型配置在同一个定时任务下,结合相应配置的任务配置信息,定时任务可以按照批次顺序发送模型的模型脚本至执行模块,使得该多个模型的模型脚本在执行模块被执行时,能够实现其依赖关系。
任务调度线程在生成定时任务后,解析定时任务,得到定时任务的可执行模型,将可执行模型添加到可执行队列中,即将属于同一定时定时任务下的批次最小的模型添加到可执行队列中。例如:有2个已启动的定时任务w1和w2。w1下有模型w1_a(批次1)、w1_b(批次2)、w1_c(批次3);w2下有模型w2_a(批次1)、w2_b(批次2)、w2_c(批次3),此时可执行队列中只有w1_a和w2_a,这两个中的任何一执行完了,执行队列中会继续把后面批次的模型加入到可执行队列中,如果定时任务w2停止了,那么w2下的模型不会继续加入到可执行队列中。
执行模块的线程获取可执行队列,然后通过httpclient(HTTP协议的客户端编程工具包)调用的方式调用执行模块的保存接口,以便将要执行的模型的模型脚本保存到执行模块进行模型数据的创建。
在本发明中,用户可以通过任务配置信息对定时任务进行多种调度控制。例如,定时任务可根据配置的每天可执行时间进行自启动和暂停,只要该定时任务所添加的模型没有全部执行完,那么该任务每天都会在指定的时间进行自启动和自动暂停,周期性地运行,直到全部模型执行完成,该定时任务才会结束。比如,定时任务下配置有模型X1,X2,X3,并且任务周期是日任务,那么,如果当天X1,X2,X3没有全部执行完,那么第二天将接着执行未执行完的模型,直到执行完成所有模型之后才开始下一轮的任务周期循环。
用户可以通过定时任务向BI平台发送模型脚本,从而实现对于BI平台的同类型模型数据的定时更新。当然,对于定时任务的生成和执行的调度,也可以由用户直接控制完成。例如,客户端可以通过交互界面提供一个模型列表和执行按钮,当用户需要直接将模型的模型脚本发送至执行模块时,用户选择具体的模型,点击执行按钮即可。
在本发明中,模型中包括有:模型脚本的执行状态信息。在将模型脚本发送至执行模块之后,执行模块接收模型的模型脚本并且返回该模型脚本对应的任务标识码。模型结果回写模块根据该任务标识码,调用执行模块的查询接口来轮询执行模块中的各个队列,从而获取模型脚本的第一执行结果信息,第一执行结果信息中包括有结果文件名,即模型数据的文件名,以及执行模型脚本的任务的名称和状态、执行开始和结束的时间、结果文件行数、文件大小、执行结果信息等,通过该第一执行结果信息能够更新模型脚本的执行状态信息。在本发明中,根据任务标识码,根据一定周期重复调用执行模块的查询接口来轮询执行模块中的各个队列,从而实时获取第一执行结果信息,实现对于模型中的执行状态信息的实时更新。
在本发明中,在获取第一执行结果信息后,通过第一执行结果信息更新模型中的执行状态信息,基于执行状态信息,可以判断模型脚本的执行情况并进行后续处理。例如,对于执行失败的模型脚本,可以提示用户进行相应的失败原因的分析,并且不再进行后续的获取报表数据以及生成报表的步骤。对于执行成功的模型脚本,则在可执行队列去除该模型任务。
在生成模型数据后,基于模型数据进行数据提取能够获得报表数据,并且,对模型数据进行数据查询能够获得其他模型数据。
如本发明上述实施例内容中提到的,用户配置的模型可以为多个有依赖关系的模型,后一个模型的模型脚本的执行需要前一个模型的模型脚本执行产生的模型数据,即后一个模型脚本需要对前一个模型脚本执行产生的模型数据进行数据查询,从而生成后一个模型的模型数据。在这种情况中,前一个模型数据即作为后一个模型数据的中间表或基础表。
在本发明中,BI平台执行模型脚本,所得的模型数据保存在BI平台,步骤S102从模型数据中获取报表数据时可以通过下述两种方式实现:
一种是从BI平台保存的模型数据中获取,该种方式可以通过分布式大数据SQL查询引擎presto来实现,通过presto执行报表配置信息中的配置的生成报表数据的数据脚本,获得报表数据。
另一种是通过拉取模块把BI平台保存的模型数据拉取至模型数据存储区中,从而使得从所述模型数据存储区中存储的所述模型数据中获取该报表的报表数据。即将BI平台保存的模型数据拉取至本***的数据库中,通过关系型数据库管理***mySQL执行报表配置信息中的配置的生成报表数据的数据脚本,获得报表数据。
对于上述两种获取报表数据的方式,用户可以根据获取报表数据的需要查询的模型数据的数量,以及模型数据的数据量来确定。例如,由于通过分布式大数据SQL查询引擎presto从BI平台查询单个模型数据较有优势,但是对于多个模型数据的联合查询速度很慢,所以用户可以针对需要查询单个数据量特别大的模型数据时采用分布式大数据SQL查询引擎presto。
用户可以对报表配置信息中的模型数据的数据源进行设定,***根据该项配置即可确定报表数据的获取方式是上述两种方式中的哪一种方式。
在本发明中,模型中包括有:是否生成报表的标志,通过拉取模块把公共存储区域中保存的模型数据拉取至模型数据存储区中,即本***数据库,从而使得从所述模型数据存储区中存储的所述模型数据中获取该报表的报表数据的过程具体包括:首先,拉取模块根据模型中是否生成报表的标志判断对应的模型数据是否生成报表。用户在配置模型时,可以根据应用需求将模型配置为生成报表的模型,或者不生成报表的模型,不生成报表的模型即将生成的模型数据作为中间表或基础表的模型。
例如,应用场景为生成包含下列信息的报表:用户的常用电话号码、用户收货人手机号码数量、用户消费总金额、使用过多少IP下单、购买商品总数量、使用券的金额等信息时,因为这些信息分布在大数据平台的很多子***下,所以要查询很多***的很多表才能得到这些信息,每次生成报表都需要人工查询这些信息,浪费人力和时间。因此,用户可以把这个需求场景整理成几个模型:用户信息中间表、用户常用收货人手机号中间表、用户虚拟资产中间表、用户订单购买行为中间表等能够获得相应生成报表所需求的信息的中间表。通过大数据平台执行模型,生成上述多个中间表的模型数据。然后再基于上述多个中间表的模型配置一个需要生成报表的主表的模型,主表的模型基于各中间表的信息进行数据查询,以汇总生成主表的模型数据。上述多个中间表的模型数据保存在BI平台,可以为别的需求使用,中间表或基础表的模型数据的生成相当于对于大数据平台的信息进行了一定程度的信息分类和汇总,用户可以更方便的基于中间表或基础表的信息进行进一步的信息获取从而生成需要的报表。
若拉取模块根据所述标志判断生成报表,则把该报表对应的模型的模型数据拉取至模型数据存储区中,然后进行报表数据的获取。若判断不生成报表,则不进行报表数据的获取,通过模型结果回写模块更新模型和队列信息。
在本发明中,拉取模块通过下述步骤能够获得报表数据:
在获取第一执行结果信息后,根据第一执行结果信息中模型数据的文件名生成数据拉取脚本。
将数据拉取脚本发送至执行模块,即通过httpclient(HTTP协议的客户端编程工具包)调用的方式调用执行模块的保存接口,将要执行的数据拉取脚本保存到执行模块进行执行。
执行模块返回数据拉取脚本在执行模块上执行时的任务标识码,其中,执行模块基于数据拉取脚将模型数据拉取至模型数据存储区。BI平台执行数据拉取脚本后将模型数据作为执行结果数据以csv文件形式保存在公共存储区域中。
根据数据拉取脚本的任务标识码,通过httpclient调用的方式调用执行模块的查询接口来轮询执行模块中的各个队列,从而获取数据拉取脚本的第二执行结果信息。第二执行结果信息中包括有结果文件名,即模型数据的文件名,以及执行数据拉取脚本的任务的名称和状态、执行开始和结束的时间、结果文件行数、文件大小、执行结果信息等。根据第二执行结果信息中的模型数据的文件名从公共存储区域中获取模型数据,然后保存在模型数据存储区。
然后,对于模型数据存储区,即本***数据库,通过关系型数据库管理***mySQL执行报表配置信息中的配置的生成报表数据的数据脚本,获得报表数据。
在本发明中,模型中还包括:模型数据统计脚本,其中,执行模块通过模型数据统计脚本统计模型数据的记录数,并将模型的记录数作为模型数据统计脚本的执行结果数据保存在公共存储区域,公共存储区域可以为云存储平台。拉取模块根据第一执行结果信息从公共存储区域获取模型数据的记录数。第一执行结果信息中包括有模型数据统计脚本在执行模块的执行状态等相关信息。通过记录数能够让用户知道模型数据的数据量大小,从而在数据量和预期不一致时对模型进行调整。
基于本发明实施例提供的生成报表的方法,用户可以根据具体的业务场景需求配置所数据筛选所需要的模型,并将配置好的模型上传至服务端的数据库进行存储,存储的模型可以重复使用。对应于报表,用户同样可以在客户端根据具体需要的报表样式和使用需求对报表配置信息进行相应的设置。整个生成报表的过程中,用户不需要手动提取报表的数据,***会自动根据模型来采集数据,并基于报表配置信息生成报表展示。并且用户通过报表配置模块,可以灵活的制作报表并进行简单的排版,展示模块即可为用户呈现一份准确,美观的报告,节省了用户每天为制作报表准备数据的工作。通过***对报表进行统一管理,节约了用户线下数据维护管理成本,通过分享功能,为用户提供了一种便捷的共享方式。
本发明实施例还提供一种生成报表的装置,如图3所示,该装置包括:配置在服务端的报表展示数据生成模块501,模型发送模块502,执行模块504,模型结果回写模块505,以及配置在客户端的模型配置模块506,任务管理模块507,报表配置模块508,展示模块509。
模型配置模块506用于录入模型的基本信息,模型的基本信息包括:模型脚本、模型编码ID、模型名称、执行状态、模型元数据和批次等字段信息。
任务管理模块507用于进行任务配置和任务控制,任务配置主要是录入任务配置信息,任务配置信息主要有任务名称、开始时间、结束时间、跑数周期、执行的模型等信息。任务控制主要是根据任务配置信息及用户操作可对任务进行启动、暂停、停止、重新启动任务。
在本发明中,执行模块的功能可以由大数据平台(BI平台)实现,BI平台是一个分布式***基础架构hadoop集群,也可称为大数据集市。用户可以通过任务管理模块507对将模型脚本发送至执行模块的过程进行调度。服务端可以存储有一个或多个配置好的模型,用户通过任务管理模块507设置任务配置信息来调度将模型发送至执行模块的时间、次数,以及多个模型之间发送的顺序等等。
服务端启动一个任务调度线程,任务调度线程根据任务配置信息以及用户操作,生成一个或多个定时任务,定时任务下配置有需要发送模型脚本至执行模块的模型,由定时任务将其下配置的模型的模型脚本发送至执行模块。
模型也可以由用户手动执行。例如,客户端可以通过交互界面提供一个模型列表和执行按钮,当用户需要直接将模型的模型脚本发送至执行模块时,用户选择具体的模型,点击执行按钮即可。
报表展示数据生成模块501用于获取报表配置信息,根据报表配置信息从该报表对应的一个或多个模型的模型数据中获取该报表的报表数据,根据报表配置信息和报表数据生成报表展示数据。
在本发明中,模型发送模块502用于将模型的模型脚本发送至执行模块504。执行模块504用于执行相应模型的模型脚本而产生模型数据,其中,执行模块接收模型的模型脚本并且返回该模型脚本对应的任务标识码。
在本发明中,在模型发送模块将模型的模型脚本发送至执行模块之后,执行模块返回模型在执行模块上执行时的任务标识码,模型结果回写模块505用于根据任务标识码,调用执行模块的查询接口来轮询执行模块中的各个队列,从而获取模型的第一执行结果信息,通过第一执行结果信息能够更新模型。
报表配置模块508用于用户通过***提供的交互界面配置报表配置信息,在本发明中,报表配置信息包括:模型数据的数据源、报表模型、生成报表数据的数据脚本及脚本参数,结合具体的应用场景需求,报表配置信息中还可以包括下列各项中的一项或多项的组合:图形类型、坐标轴信息、概要、图形是否显示值报表模型、排版、行列转换和下钻等信息。
报表配置模块508通过数据库对配置好的报表配置信息进行保存,并且为报表配置信息生成一个唯一的报表ID,使得报表展示数据生成模块501通过该报表ID能够获取到对应的报表配置信息。
在本发明中,报表展示数据生成模块501用于获取报表配置信息,根据报表配置信息从该报表对应的一个或多个模型的模型数据中获取该报表的报表数据,根据报表配置信息和报表数据生成报表展示数据。生成报表展示数据的过程中,基于报表配置信息中报表的XYZ轴字段信息以及行列转换等信息进行数据封装,得到封装结果config。然后通过识别报表类型自动匹配报表数据包装器,选择匹配的报表数据包装器传入报表数据和封装结果config,进行数据包装,最终生成报表展示数据。若需要对报表进行下载,则可以将报表数据以CVS文件的形式导出。
报表展示数据生成模块501进一步用于把报表对应的模型的模型数据拉取至模型数据存储区中,使得从模型数据存储区中存储的模型数据中获取该报表的报表数据。在本发明中,模型还包括:是否生成报表的标志,报表展示数据生成模块501进一步用于若需要生成报表,则对模型数据进行数据提取获得报表数据。
展示模块509用于根据报表展示数据展示相应的报表。展示模块509展示报表,根据报表配置信息,通过报表引擎处理,最终在页面上通过报表图形控件为用户展示出一份类似报告书格式的报表页面,如果设置了下钻,还可以方便的钻取到明细数据,便于进一步数据分析。另外,报表展示模块通过交互界面在页面上还提供了切换、数据下载功能,以及报表链接分享功能和报表预览功能,用户可以方便的查看报表和分享报表。
基于本发明实施例提供的生成报表的装置,用户可以根据具体的业务场景需求配置所数据筛选所需要的模型,并将配置好的模型上传至服务端的数据库进行存储,存储的模型可以重复使用。对应于报表,用户同样可以在客户端根据具体需要的报表样式和使用需求对报表配置信息进行相应的设置。整个生成报表的过程中,用户不需要手动提取报表的数据,***会自动根据模型来采集数据,并基于报表配置信息生成报表展示。并且用户通过报表配置模块,可以灵活的制作报表并进行简单的排版,展示模块即可为用户呈现一份准确,美观的报告,节省了用户每天为制作报表准备数据的工作。通过***对报表进行统一管理,节约了用户线下数据维护管理成本,通过分享功能,为用户提供了一种便捷的共享方式。
图4示出了可以应用本发明实施例的生成报表的方法或生成报表的装置的示例性***架构100。
如图4所示,***架构100可以包括终端设备101、102和103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102和103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102和103上可以安装有各种通讯客户端应用,例如配置和发送报表配置信息、任务配置信息以及模型配置信息的应用等。
终端设备101、102和103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102和103发送的报表配置信息、任务配置信息以及模型配置信息进行保存和管理,并利用上述信息生成报表的服务器。
需要说明的是,本发明实施例所提供的生成报表的方法一般由服务器105执行,相应地,生成报表的装置一般设置于服务器中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的电子设备的计算机***v0的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机***v0包括中央处理单元(CPU)v1,其可以根据存储在只读存储器(ROM)v2中的程序或者从存储部分X08加载到随机访问存储器(RAM)v3中的程序而执行各种适当的动作和处理。在RAM v3中,还存储有***v0操作所需的各种程序和数据。CPUv1、ROM v2以及RAM v3通过总线v4彼此相连。输入/输出(I/O)接口v5也连接至总线v4。
以下部件连接至I/O接口v5:包括键盘、鼠标等的输入部分v6;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分v7;包括硬盘等的存储部分v8;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分v9。通信部分v9经由诸如因特网的网络执行通信处理。驱动器X10也根据需要连接至I/O接口v5。可拆卸介质v11,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器v10上,以便于从其上读出的计算机程序根据需要被安装入存储部分v8。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分v9从网络上被下载和安装,和/或从可拆卸介质v11被安装。在该计算机程序被中央处理单元(CPU)v1执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括报表展示数据生成模块、执行模块、展示模块和模型配置模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,报表展示数据生成模块还可以被描述为“用于获取报表配置信息的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
根据报表数据和预设的报表配置信息生成报表,其中,通过在数据库中基于与所述报表配置信息对应的预设的模型进行数据查询获得所述报表数据。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (13)
1.一种生成报表的方法,其特征在于,包括:
获取报表配置信息;所述报表配置信息包括:模型数据的数据源、报表模型、生成报表数据的数据脚本及脚本参数;
根据所述报表配置信息从该报表对应的一个或多个模型的模型数据中获取该报表的报表数据;其中,所述模型数据是通过执行相应模型的模型脚本而产生;当该报表对应的模型是多个有依赖关系的模型时,所述模型数据是按照所述多个有依赖关系的模型的批次顺序执行相应模型的模型脚本而产生;
根据所述报表配置信息和所述报表数据生成报表展示数据。
2.根据权利要求1所述的方法,其特征在于,还包括:
把所述报表展示数据传递至展示模块以展示相应的报表。
3.根据权利要求1所述的方法,其特征在于,所述模型脚本由执行模块来执行,其中,所述执行模块接收模型的模型脚本并且返回该模型脚本对应的任务标识码。
4.根据权利要求3所述的方法,其特征在于,通过拉取模块把该报表对应的模型的模型数据拉取至模型数据存储区中,使得从所述模型数据存储区中存储的所述模型数据中获取该报表的报表数据。
5.根据权利要求3或4所述的方法,其特征在于,所述模型通过模型配置模块来配置,所述模型包括:模型脚本、模型ID、模型名称、执行状态、模型元数据和批次。
6.根据权利要求4所述的方法,其特征在于,所述模型包括是否生成报表的标志,其中,所述拉取模块根据所述标志判断是否生成报表,若生成报表,则所述拉取模块把该报表对应的模型的模型数据拉取至模型数据存储区中。
7.一种生成报表的装置,其特征在于,包括:
报表展示数据生成模块,用于获取报表配置信息,所述报表配置信息包括:模型数据的数据源、报表模型、生成报表数据的数据脚本及脚本参数;根据所述报表配置信息从该报表对应的一个或多个模型的模型数据中获取该报表的报表数据,根据所述报表配置信息和所述报表数据生成报表展示数据;
执行模块,用于执行相应模型的模型脚本而产生所述模型数据;当该报表对应的模型是多个有依赖关系的模型时,按照所述多个有依赖关系的模型的批次顺序执行相应模型的模型脚本产生所述模型数据。
8.根据权利要求7所述的装置,其特征在于,还包括:
展示模块,用于根据所述报表展示数据展示相应的报表。
9.根据权利要求7所述的装置,其特征在于,还包括:
所述执行模块接收模型的模型脚本并且返回该模型脚本对应的任务标识码。
10.根据权利要求9所述的装置,其特征在于,所述报表展示数据生成模块,进一步用于把所述报表对应的模型的模型数据拉取至模型数据存储区中,使得从所述模型数据存储区中存储的所述模型数据中获取该报表的报表数据。
11.根据权利要求10所述的装置,其特征在于,还包括:
模型配置模块,用于配置所述模型,所述模型包括:模型脚本、模型ID、模型名称、执行状态、模型元数据和批次。
12.一种生成报表的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
13.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710407406.5A CN108984496B (zh) | 2017-06-02 | 2017-06-02 | 生成报表的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710407406.5A CN108984496B (zh) | 2017-06-02 | 2017-06-02 | 生成报表的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108984496A CN108984496A (zh) | 2018-12-11 |
CN108984496B true CN108984496B (zh) | 2021-11-26 |
Family
ID=64501686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710407406.5A Active CN108984496B (zh) | 2017-06-02 | 2017-06-02 | 生成报表的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108984496B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110060118A (zh) * | 2019-02-27 | 2019-07-26 | 浙江执御信息技术有限公司 | 一种订单履约全链路实时监控方法、装置及计算机设备 |
CN110162533A (zh) * | 2019-05-23 | 2019-08-23 | 顶象科技有限公司 | 报表更新方法及装置 |
CN110597896A (zh) * | 2019-09-10 | 2019-12-20 | 深圳证券交易所 | 一种数据展示方法、数据展示装置及终端设备 |
CN111352947B (zh) * | 2020-02-28 | 2024-05-14 | 深圳前海微众银行股份有限公司 | 数据的更新方法、装置、设备及存储介质 |
CN111367940A (zh) * | 2020-03-06 | 2020-07-03 | 中国银行股份有限公司 | 银行交易报表统一开发方法、客户端和服务端*** |
CN113656487A (zh) * | 2021-07-28 | 2021-11-16 | 北京数码大方科技股份有限公司 | 信息***中的对象数据展示方法及对象数据展示装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8479093B2 (en) * | 2007-03-01 | 2013-07-02 | Microsoft Corporation | Metamodel-based automatic report generation |
CN102521415B (zh) * | 2011-12-28 | 2013-09-11 | 用友软件股份有限公司 | 在报表中引入外部数据的装置和方法 |
CN104361140B (zh) * | 2014-12-10 | 2018-11-16 | 用友网络科技股份有限公司 | 动态生成数据模型配置装置和方法 |
CN106649225A (zh) * | 2016-12-30 | 2017-05-10 | 冶金自动化研究设计院 | 一种基于json自定义的报表生成***及方法 |
-
2017
- 2017-06-02 CN CN201710407406.5A patent/CN108984496B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108984496A (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984496B (zh) | 生成报表的方法和装置 | |
CN110310034B (zh) | 一种应用于SaaS的服务编排、业务流程处理方法和装置 | |
CN107451109B (zh) | 报表生成方法及*** | |
US20190163524A1 (en) | Method and apparatus for processing task in smart device | |
CN107729139A (zh) | 一种并发获取资源的方法和装置 | |
CN113808231B (zh) | 信息处理方法及装置、图像渲染方法及装置、电子设备 | |
CN110019437A (zh) | 一种导出数据的方法和*** | |
CN112398669B (zh) | 一种Hadoop部署方法和装置 | |
CN113127225A (zh) | 一种数据处理任务的调度方法、装置和*** | |
CN113076186B (zh) | 任务处理的方法、装置、电子设备和存储介质 | |
CN110795328A (zh) | 一种接口测试方法和装置 | |
CN107317788A (zh) | 实时数据推送方法和装置 | |
CN110442406A (zh) | 分页控件处理数据的方法及分页控件、电子设备 | |
CN113378346A (zh) | 模型仿真的方法和装置 | |
US20230061780A1 (en) | Automated end-to-end testing platform with dynamic container configuration | |
CN110807058B (zh) | 一种导出数据的方法和*** | |
CN115248735A (zh) | 一种日志数据输出控制方法、装置、设备及存储介质 | |
CN114579332A (zh) | 可动态配置算子的文本处理***、方法、设备 | |
CN112394946A (zh) | 基于DevOps背景下的运维平台 | |
CN111367641B (zh) | 一种基于物联网的定时方法及*** | |
CN112579447A (zh) | 一种浏览器测试方法和装置 | |
CN113572704A (zh) | 一种信息处理方法、生产端、消费端和服务器 | |
CN112468543B (zh) | 发布信息的方法、装置、设备和计算机可读介质 | |
CN114900445B (zh) | 流量录制方法、装置及电子设备 | |
CN115481932B (zh) | Erp***数据库触发器生成方法、存储介质及电子装置 |
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 |