一种自助报表生成方法、装置、计算设备和系统与流程

文档序号:19745808发布日期:2020-01-21 18:23阅读:149来源:国知局
一种自助报表生成方法、装置、计算设备和系统与流程
本发明涉及计算机
技术领域
,尤其涉及一种自助报表生成方法、装置、计算设备和系统。
背景技术
:产品上线运营以后,需要对产品运营状况进行全方面的数据监控,以便对产品的各功能点和各渠道等进行决策分析,进而优化产品和运营策略,提升产品质量。作为决策基础的各种数据埋点,数据报表就成为重中之重。数据报表的使用人员有很多角色,例如:产品人员、运营人员、管理人员、销售人员等,每种角色的报表需求都不尽相同。当数据发生异常变动时,也需要追溯数据源和数据逻辑,以便分析异常原因。因此,需要提供一种可满足多种需求且能提供清晰追溯路径的报表系统。而现有技术中多是针对每个报表进行单独开发,分别建立报表的图表逻辑和查询逻辑。但这种方式开发效率较低,每个图表模块和查询模块都需要单独开发,从数据逻辑梳理到报表上线一般需要经过数天的时间。而且,各个报表模块之间的相同功能能够复用的很少,无法减少重复性工作。数据溯源比较麻烦,需要进入研发项目,从代码层向下不断向底层查找,直至查找到数据库层,数据分析原因时间较长。此外,对各个报表的使用时长和运行效率等也无法实现统一监控,很难进行下一步的报表优化。另外一种方式是在excel的中开发vba程序进行报表生成,报表系统只进行基础的数据源导出。但vba程序比较分散,报表逻辑无法实现统一管理,而当面向数百个甚至海量报表时,报表逻辑的统一管理尤为重要。另外这种方法还需要掌握非常多的开发技能,且excel无法胜任大数据量的处理,其处理性能较低。技术实现要素:鉴于上述问题,本发明提出了一种自助报表生成方法、装置、计算设备和系统,以力图解决或者至少解决上面存在的问题。根据本发明的一个方面,提供了一种自助报表生成方法,适于在计算设备中执行,该方法包括步骤:接收用户提交的报表查询请求,所述报表查询请求携带有报表标识和用户设置的一个或多个搜索条件;根据预设的搜索配置信息将所述一个或多个搜索条件转换为报表sql查询语句的where部分字段;查询该报表标识所对应的报表名,其中报表分为实时报表和定时报表,定时报表具有真实的报表名,实时报表的报表名为用于生成该实时报表的sql查询语句;将用户的查询字段、报表名和where部分字段拼装为完整的报表sql查询语句,并根据该查询语句从预设的报表数据源中获取对应的数据结果;根据预设的图表配置信息将所述数据结果转换为图表结果,并将所述搜索条件、数据结果和图表结果进行前端可视化展示。可选地,在根据本发明的自助报表生成方法中,还包括步骤:获取预先存储的该报表标识所对应的报表原型的配置信息,该配置信息包括基本配置信息、搜索配置信息和图表配置信息;其中,基本配置信息包括该报表原型的报表数据源,搜索配置信息包括一个或多个搜索项的表达式,图表配置信息包括图表展示类型和图表展示参数。可选地,在根据本发明的自助报表生成方法中,搜索项包括搜索标题、搜索字段、搜索值的比较类型和搜索类型中的至少一种,每种搜索项都有对应的搜索配置器和表达式解析器,用于将用户的输入转换为对应的表达式。可选地,在根据本发明的自助报表生成方法中,搜索类型包括权限限定类型、日期类型、文本输入类型、字典用语类型和级联列表类型中的至少一种;搜索值的比较类型包括等于、不等于、包含、范围、大于等于、小于等于和为空中的至少一种。可选地,在根据本发明的自助报表生成方法中,图表展示类型包括折线图、柱状图、饼图和散点图中的至少一种,每种图表展示类型都有对应的图表配置器和图表生成器,用于生成对应的可视化图表;图表展示参数包括图表标题、显示字段、显示标题中的至少一种。可选地,在根据本发明的自助报表生成方法中,报表数据源包括报表数据库、业务数据库和大数据数据库,配置信息存储于报表数据库中。可选地,在根据本发明的自助报表生成方法中,实时报表是通过实时执行sql查询任务,以将多表数据进行关联映射后得到的临时单表;定时报表是通过定期执行sql查询任务而生成的真实报表,其存储于报表数据库中。可选地,在根据本发明的自助报表生成方法中,还包括步骤:在sql管理器中存储每个报表及其对应的sql查询语句的关联关系。可选地,在根据本发明的自助报表生成方法中,实时报表的报表名从sql管理器中获得,定时报表的报表名从报表数据库中获得。可选地,在根据本发明的自助报表生成方法中,还包括定时报表的定时生成步骤:设定定时报表的sql查询语句和定时查询时间;将所设定的内容通过接口发送至调度系统,以便该调度系统在该定时查询时间时执行所设定的sql查询语句,并将查询结果保存在报表数据库中。可选地,在根据本发明的自助报表生成方法中,还包括步骤:记录每个实时报表或定时报表的sql查询语句的执行次数和执行时间,以便进行统计分析。根据本发明的另一个方面,提供了一种自助报表生成装置,适于驻留在计算设备中,包括:请求接收模块,适于接收用户提交的报表查询请求,所述报表查询请求携带有报表标识和用户设置的一个或多个搜索条件;搜索器引擎,适于根据预设的搜索配置信息将一个或多个搜索条件转换为报表sql语句的where部分字段;sql管理器,适于查询该报表标识所对应的报表名,并将用户的查询字段、报表名和where部分字段拼装为完整的报表sql查询语句,其中报表分为实时报表和定时报表,定时报表具有真实的报表名,实时报表的报表名为用于生成该实时报表的sql查询语句;sql执行器,适于根据报表sql查询语句从预设的报表数据源中获取对应的数据结果;图表引擎,适于根据预设的图表配置信息将数据结果转换为图表结果;以及报表引擎,适于将搜索条件、数据结果和图表结果整合后进行前端可视化展示。可选地,在根据本发明的自助报表生成装置中,报表引擎还适于预设各报表原型的基本配置信息,并将报表原型的sql查询语句发送给sql管理器;搜索器引擎还适于预设各搜索项的搜索配置信息,并解析用户在各搜索项的输入内容;图表引擎还适于预设各报表原型的图表配置信息,并将查询到的数据结果转换为图表结果的转换方式。可选地,在根据本发明的自助报表生成装置中,sql管理器还适于存储各报表原型及其对应的sql查询语句,并根据用户的搜索条件对该sql查询语句进行占位符替换;sql执行器还适于记录每个实时报表或定时报表的sql查询语句的执行次数和执行时间,以便进行统计分析。根据本发明的又一方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,该一个或多个程序被处理器执行时实现如上所述的自助报表生成方法的步骤。根据本发明的又一方面,提供了一种存储一个或多个程序的可读存储介质,该一个或多个程序包括指令,所述指令当由计算设备执行时实现如上所述的自助报表生成方法的步骤。根据本发明的又一方面,提供一种自助报表生成系统,包括:如上所述的计算设备;报表数据源,包括报表数据库、业务数据库和大数据数据库中的至少一种;以及调度系统,适于定时执行sql查询任务,得到定时报表后存入报表数据库中。根据本发明的技术方案,提出了一种基于可配置化的自助报表系统,能够通过界面对报表进行配置化,以方便的建立各种报表,极大的提升了报表开发效率,同时为报表的逻辑溯源等提供了清晰的追溯路径,数据分析可直接到达数据最底层,加快了问题排查和原因分析的时间。而且,各种报表模块之间相互隔离,能够方便的进行某一模块的独立扩展。进一步地,本发明对多数据源进行了统一管理,不仅涵盖了不同的业务库,同时涵盖了hadoop等大数据平台。通过实时执行sql查询任务,以将多表数据进行关联映射后得到实时报表,通过定期执行sql查询任务生成并存储定时报表。通过真实表和虚拟表的不同实现方式,将即时报表、定时报表的数据获取统一起来。之后,对这些sql进行统一管理,在报表数据库中关联存储这些sql及其对应的报表,方便数据逻辑的梳理和溯源。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。图1示出了根据本发明一个实施例的自助报表生成系统100和自助报表生成装置200的结构框图;图2示出了根据本发明另一个实施例的自助报表生成系统100的详细架构图;图3示出了根据本发明一个实施例的自助报表前端展示的界面示意图;图4a-4d分别示出了根据本发明一些实施例的对自助报表系统进行实时任务配置、定时任务配置、搜索配置和图表配置的界面示意图;图5示出了根据本发明一些实施例的数据源报表的示意图;图6示出了根据本发明一个实施例的计算设备600的结构框图;图7示出了根据本发明一个实施例的自助报表生成方法700的流程图;以及图8示出了根据本发明另一个实施例的自助报表生成方法以及调度系统执行定时任务的流程图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本发明一个实施例的自助报表生成系统100的结构框图,图2示出了该自助报表系统100的详细框图。如图1所示,自助报表生成系统包括计算设备110、报表数据源120和调度系统130。计算设备110作为报表层,报表数据源120和调度系统130作为数据层。应当指出,图1中的自助报表生成系统100仅是示例性的,在具体的实践情况中,系统100中可以有不同数量的计算设备110、报表数据源120和调度系统130,本发明对系统100中所包括的各设备数量不做限制。计算设备110驻留有自助报表生成装置200,用户可在计算设备110中配置报表信息,以及查询报表内容。报表数据源120提供对各种数据源的访问执行,主要包括报表数据库121、业务数据库122和大数据数据库123(如hadoop大数据库),可以向用户返回所要查询的报表内容,其中报表数据库121还可存储用户的报表配置信息。调度系统130可以定时执行sql查询任务,生成定时报表,并将该定时报表存入报表数据库121中。调度系统可采用开源的azkaban系统。通常,计算设备110中设定好该定时报表的定时查询时间和定时sql查询语句,通过接口将这些设定好的内容发送至调度系统后,由该调度系统130在该定时查询时间时定期执行所设定的sql查询语句,并将查询结果保存在报表数据库121中。自助报表生成装置200一般包括请求接收模块210、搜索器引擎220、sql管理器230、sql执行器240、图表引擎250和报表引擎260。其中,请求接收模块210用于接收用户提交的报表查询请求,并提取其中的报表标识和用户的搜索条件。搜索器引擎220主要提供各种搜索项的设置及解析,将用户的多个搜索项转换为报表sql查询语句中的where部分字段。sql管理器230提供统一的sql查询语句的存储、占位符替换和sql查询次数的统计功能。sql管理器230可以存储每种报表及其对应的sql查询语句的对应关系,还可以结合用户的搜索条件将所存储的sql查询语句进行占位符替换后得到该搜索条件所对应的查询语句。sql执行器240执行sql管理器传过来的与用户的搜索条件相对应的sql查询语句,得到对应的数据结果,也即得到表格区内容。sql执行器240还可以定期执行定时sql查询任务,生成定时报表,以及执行用户在实际查询时所生成的sql查询任务。sql执行器240还可以记录每种报表的sql查询语句的执行次数和执行时间,以便进行统计分析,如分析每种报表的执行频率等,确定报表的热门程度。此外,装置200中还可以包括定时任务管理器270,用于设定定时报表任务执行的定时时间,并在该定时时间时触发sql执行器260执行该定时查询任务。图表引擎250主要提供各种图表的基本配置,如x轴、y轴参数设置,以及图表的数据源准备与转化逻辑,具体是将数据结果转换为图表结果的执行逻辑。报表引擎260主要提供报表的通用任务,如人员配置、权限管理等。其中,人员配置例如报表使用人员的信息录入和编辑,该信息一般包括登录账号、密码和邮箱等。报表引擎260还可以将其他各模块进行整合,如将搜索器引擎220和图表引擎250进行整合,以分别将三种引擎得到的搜索条件、报表数据结果、图表结果整合为用户所要查询的自助报表,在前端可视化展示。自助报表的前端可视化展示如图3所示,该自助报表主要包括搜索区、图表区和表格区。搜索区主要提供各种维度的搜索,用户输入各搜索项的查询条件,方便查看某一方面的数据。图表区主要提供数据的可视化输出,方便用户从直观上感受数据,图表类型包括折线图、柱状图、饼图、散点图等。表格区主要提供数据的实际数字展示。应当理解,自助报表中的图表区和表格区可以根据其报表自身属性存在适当增减,比如某些自助报表可能没有图表区,某些没有表格区,或者某些存在多个不同图表等。一般地,在报表的展示过程中,首先需要对报表进行配置,如配置报表的基本信息、搜索信息和图表信息,配置信息会保存到报表数据库121中。一般由报表设计人员根据报表原型来进行配置,每个报表会分配一个唯一标识。当用户访问报表时,报表引擎会根据报表标识从数据库中获取对应报表原型的配置并进行解析,再结合用户的具体搜索条件,呈现出最终的输出结果。以下将先说明自助报表系统的配置过程:自助报表系统的第一步配置是配置各种报表的基本信息,主要基于报表引擎260生成基本配置信息,该基本配置信息例如包括报表名字、报表标识、报表显示字段、报表筛选字段、以及字段值等。多个字段值之间以逗号进行分割。不同的报表类型可能需要访问不同的数据源表,因此基本配置信息中还会有每种报表所应访问的报表数据源。通常报表标识、报表原型和报表数据源之间都具有对应关系。另外,在基础配置中还会根据报表所属类型来设定该报表原型为实时(即时)报表还是定时报表。这里,根据报表的数据时效不同,将报表分为实时(即时)报表和定时报表,这两种报表的配置页面分别如图4a和4b所示。实时报表指实时查询数据库,报表的统计结果以查询时的数据状态为准,一般用于对数据状态较为敏感的报表统计。比如对于订单状态,在发货前和发货后的订单数量、订单金额都要统计到不同维度。实时报表是通过实时执行sql查询任务,以将多表数据进行关联映射后得到的临时单表。实时报表的数据源为虚拟报表,虚拟报表指在数据库中实际并不存在的表,而是通过虚拟表sql在执行过程中所创建的临时表,该虚拟表也不会保存。本发明采用生成该实时报表的sql语句作为该实时报表的报表名,该sql语句可称为实时报表的创建sql语句。虚拟表的作用主要提供数据统计的转换功能,将多表的数据通过链接、分组等sql操作映射为一张单表,使得该虚拟单表能够进行同真实表一样的sql操作。这里,多表的链接、分组主要通过数据库自带的join和group等功能实现,将各表数据进行统计后,将统计结果变为单表后方便进行查询。比如统计文章流量的sql为:selecta.id,a.title,count(distinctf.session)asuvcount(*)aspv,visit_dateasdtfromflowinnerjoinarticleaona.article_id=f.article_idwherevisit_date='{date}'groupbyvisit_date。此sql用到了文章表article和流量表flow这两个表,该sql执行后,结果会变为单表article_flow,如图5所示。定时报表一般是指每天在指定时间执行数据统计任务,将统计结果存储到指定表中。该报表结果生成后一般不会再进行变更,而且数据结果会有延迟,即当天只能看到昨天的数据,通常用于对数据时效要求不高,或者数据采集后状态即不再变化的数据,比如用户访问日志。定时报表是通过定期执行sql查询任务而生成的真实报表,其存储于报表数据库121中。定时报表的报表数据源为真实表。定时报表真实存在,其具有真实的报表名,该报表名也可存储于报表数据库121中。如前文所述,计算设备110设定好定时报表的定时查询时间和sql查询语句,由调度系统130定期执行该定时任务查询,并将结果保存到真实表中。例如,统计文章流量的报表,其报表标识为report_article_flow,对应的sql为:selecta.id,a.title,count(distinctf.session)asuvcount(*)aspv,visit_dateasdtfromflowinnerjoinarticleaona.article_id=f.article_idwherevisit_date='{date}'groupbyvisit_date。当调度系统130执行该定时任务时,就会获取该sql,并将执行结果保存到article_flow表中。根据一个实施例,在执行定时任务时,到达预设的定时执行时间时,调度系统会根据任务标识获取指定数据任务的sql查询语句,并判断定时执行任务所要访问的数据库类型。如果是访问业务数据库,则直接执行sql,并将结果存储到定时任务结果表中。如果要访问大数据数据库,则首先将该定时任务上传到大数据集群,然后将执行结果存储到定时任务结果表。应当理解,定时任务包含该定时时间和定时sql查询语句,定时任务结果表最终存储在报表数据库121中。完成第一步基本信息的配置后,报表引擎260会创建报表基本配置信息,并将每种报表的sql查询语句提供给sql管理器230。sql管理器230会将接收到的sql统一存储,并保存sql查询语句和报表的对应关系。自助报表系统的第二步配置过程是配置多个搜索项表达(也就是图3中的搜索区内容),主要基于搜索器引擎220生成搜索配置信息,配置页面如图4c所示。搜索配置信息主要包括一个或多个搜索项的表达式,搜索项主要包含搜索标题,搜索字段,搜索类型以及在查询过程中用户搜索值的比较类型。其中,搜索类型包括权限限定类型、日期类型、文本输入类型、字典用语类型和级联列表类型中的至少一种。其中权限限定类型限定用户的权限条件,日期类型下用户可选择起始日期,文本输入类型下用户可输入关键词文本,字典用语类型下可进行字典用于的选择,如选择“母婴”类,选择“服装”类。级联列表类型下包括多级菜单,如省市区的级联列表。搜索值的比较类型包括等于、不等于、包含、范围、大于等于、小于等于、为空(null值)中的一种或多种。搜索器引擎220包含不同的比较类型处理器,在进行解析时,会将不同的比较类型解析为不同的sql表达。比如,“等于”解析为“=”,不等于解析为“!=”或者“<>”,“包含”解析为“like”或者“contains”或者“instr”或者“charindex”等。在搜索器引擎220中,每种搜索项都有对应的搜索配置器和表达式解析器,用于将用户的输入转换为对应的表达式。图2中只示例了示出了文本搜索项的配置器和表达式解析器,其他搜索项也具有对应的配置器和表达式解析器,只是在图中未示出。配置器主要用于解析图4c用户配置的功能模块,表达式解析器对用户的输入值进行匹配。具体地,先由表达式解析器解析用户的比较方式和输入值,生成对应的字段表达,该表达式包含比较符号和比较符号右侧的用户的输入值。之后,再交由配置器拼接该搜索项的字段值,也就是拼接上比较符号左侧的字段。比如一个文本搜索,其各搜索项的配置如下:搜索标题为“标题”,搜索字段为“title”,搜索类型为“文本”,比较类型为“等于”。当在前端显示时,配置器会将此搜索解析为“<inputtype=’text’>”的html标签,并等待用户输入。当用户输入了“报表”关键词并提交该关键词进行搜索时,表达式解析器会判断比较方式为“等于”,此时生成“=‘报表’”,然后再交给配置器进行字段拼接,变成“title=‘报表’”部分。如果比较类型为“包含”,则首先由表达式解析器生成“like‘%报表%’”,再由配置器变为“titlelike‘%报表%’”。可以看出,搜索配置信息存储有每个搜索项的表达式,在配置信息里表达式可用默认占位符代替。例如,在搜索器配置titlelike‘%{keyword}%’汇总,{keyword}即为一个默认占位符。在实际应用中,结合用户的实际搜索条件,可将该默认占位符替换为用户实际输入的数值,得到真正搜索的表达式titlelike‘%报表%’。应当理解的是,不同的搜索类型和比较类型,其配置页面会各有不同。搜索条件也可以多次添加,多个搜索条件以and方式进行联合查询。比如文章搜索,可以将搜索区设置为:发布日期-pub_date-时间-范围(以“搜索标题-搜索字段-搜索类型-比值类型”的方式进行联合表示),文章标题-title-文本-包含。经过搜索器解析后,变为:pub_date>='开始时间'andpub_date<='结束时间'andtitlelike'%关键词%'。这样满足了文章按日期和标题的搜索需求。为了方便后续对搜索项、搜索类型和图表类型的扩展,装置200还可以预留扩展接口,以添加对应配置项的选项。例如,如果后续需要增加按照文章id进行多个文章搜索的选项,则只需要编辑报表,增加文章id的搜索项配置项:文章id-id-文本-in既可实现该功能,而不用深入代码层更改代码。自助报表生成系统的第三步配置是配置图3中的图表区内容,主要基于图表引擎250生成图表配置信息,配置页面如图4d所示。图表配置信息包括图表展示类型和图表展示参数。图表展示类型包括折线图、柱状图、饼图和散点图中的至少一种。不同图表类型的配置选项会有不同,图4d中只示例性的示出了折线图的配置页面,当然还会有其他类型的图表配置,这里不再展示。在图表引擎250中,每种图表展示类型都有对应的图表配置器和图表生成器,用于生成对应的可视化图表。图表配置器主要用于配置图表的基本信息,如各图表参数等,可得到图表的基本框架。图表生成器在图表基本框架的基础上,结合用户的搜索条件,生成最终要展示出的图表。图表展示参数包括图表标题、显示字段、显示标题中的至少一种。应当理解的是,不同图表类型其图表参数各不相同,如折线图的图表参数主要是横纵坐标标题、横纵坐标显示字段、横纵坐标最大值和单元值等,饼图的图表参数则主要是各占比模块字段及其占比数值。本领域技术人员可以根据需要对各类型图表参数进行设置,这里不再赘述。这里,通过预先为每种类型的报表设置图表类型与图表参数来实现数据的可视化展示。比如文章类别的自助报表,如果要显示时间趋势的折线图,则将x轴设置为统计日期,y轴设置为类别流量字段即可实现。如果要变为文章类别的流量占比图,则可将图表类型设置为饼图,占比模块字段设置为流量字段,占比模块标题设置为类别字段。图表配置信息中存储有各报表原型所应转换的图表类型,及该图表类型的图标参数。在实际应用中,确定了报表原型,即可知道该报表所对应的图表及图表初始化的样子,之后结合用户的实际搜索条件即可显示该搜索条件所对应的图表。以上配置信息完成后,会将配置信息保存到报表数据库121中,在执行过程中会从该报表数据库121中获取该配置信息来进行报表解析和组装,生成用户想要查看的自助报表内容。应当理解,在配置过程中,各配置项字段后面的查询值可先用默认值或默认字符,当用户进行搜索时,在将该默认值替换为用户所实际选择或输入的值。以下将详细说明在用户的实际报表搜索过程中各模块的执行逻辑:当用户在界面输入一个或多个查询条件后,由请求接收模块210接收用户提交的报表查询请求,该报表查询请求携带有报表标识和用户设置的一个或多个搜索条件。同时,请求接收模块210还可以从报表数据库121中获取该报表标识所对应的基本配置信息,如报表原型的报表数据源,以方便从该报表数据源中获取数据生成用户所要查看的报表。一般地,不同属性的用户分配有不同的可查看权限,根据用户标识可判断用户属性,进而为其显示可访问菜单选项,菜单上绑定有报表标识。用户点击某菜单选项即可触发报表解析系统,该报表解析系统能得到对应的报表标识。用户的一个或多个搜索条件,如地区选项选择北京,日期选项选择最近一个月,等等。之后,搜索器引擎220根据预设的搜索配置信息将一个或多个搜索条件转换为报表sql语句的where部分字段。具体地,搜索器引擎220可以从报表数据数据库中获取该报表标识所对应的搜索配置信息进行解析,所获取的该搜索配置信息即为该预设的搜索配置信息。搜索器引擎220的解析过程如下:首先判断搜索类型,根据搜索类型查找特定的搜索类型处理器,然后判断其搜索值的比较类型,查找对应比值类型对应的sql组装语法,最后进行组装,构建查询条件表达式。在完成所有的搜索器配置后,将多个搜索器表达式使用and进行拼接,构成报表sql语句的where部分字段。如前文所述,在构建搜索器时,字段后面的查询值在页面初次加载时使用配置器的默认值,而在用户进行搜索时该查询值替换为用户在搜索区选择或者输入的值。假设在配置过程中配置了两个搜索器。在第一个搜索器的配置中,标题为“文章标题”,搜索字段为“title”,搜索类型为“文本”,比较类型为“包含”。在第二个搜索器的配置中,标题为“发布日期”,搜索字段为“pub_date”,搜索类型为“时间”,比较类型为“范围”。在执行过程中,用户在第一个搜索器中输入了“北京”,在第二个搜索器中了选择的范围为:2019-08-01至2019-08-30。经过搜索器引擎240的解析后,where部分字段为:titlelike‘%北京%’andpub_date>='2019-08-01'andpub_date<='2019-08-30'。之后,sql管理器230查询该报表标识所对应的报表名,并将用户的查询字段、报表名和where部分字段拼装为完整的报表sql查询语句。这里,需要判断该报表标识所对应的报表为实时报表还是定时报表。如果是实时报表,则通过sql管理器230,查找该实时报表的创建sql,然后将整个创建sql作为虚拟表,最后将查询字段、创建sql和搜索器引擎240生成的where部分字段拼装在一起,形成完整的报表sql查询语句。如果是定时报表,定时报表的统计结果已经通过定时任务将结果存储到报表数据库中,因此可直接从该报表数据库中得到该报表名。当然,实时报表的报表名也可存储于sql管理器230中,以从中获取报表名。将用户的查询字段、报表名和之前得到的where部分字段拼装在一起,形成完整的报表sql查询语句。以图5中各表为例,若有一个报表需求:统计每个文章类别下有多少篇文章。考虑到文章每天发布时间不等,为了查看类别下文章数量统计,可以考虑使用即时报表。其虚拟表的创建sql为:selecta.category_id,c.name,count(a.id)asarticle_countfromcategorycinnerjoinarticleaona.category_id=c.idgroupbya.categoryid,c.name。虚拟表sql的执行结果如图5中的article_count表所示。当整合查询字段和where条件后,报表sql的查询语句变为:selectcategory_id,name,article_countfrom(selecta.category_id,c.name,count(a.id)asarticle_countfromcategorycinnerjoinarticleaona.category_id=c.idgroupbya.categoryid,c.name)as虚拟表名where查询条件。若有另一个报表需求:统计每篇文章的流量。这种报表需要使用到大数据表,并且访问日志一经确定后就不会再有变化,因此可以考虑定时报表方式。定时任务的sql查询语句为:selectf.visit_date,a.id,a.title,count(distinctf.session)asuv,count(*)aspvfromflowfinnerjoinarticleaonf.article_id=a.idwheref.visit_date='$统计日期'groupbyf.visit_date,a.id,a.title。定时任务结果存储到真实表article_flow中。当整合查询字段、where条件后,定时报表的sql查询语句变为:“selectdt,id,title,uv,pvfromarticle_flowwhere查询条件”。之后,sql管理器230将拼装好的sql查询语句传入sql执行器240,sql执行器240根据该报表sql查询语句从预设的报表数据源中获取对应的数据结果。同时,sql执行器240在执行过程中,还记录每种报表的sql执行次数和执行时间等。预设的报表数据源即预先配置好的该报表标识所对应的报表数据源。所得到的数据结果一般是开发语言中的记录集或者集合对象。比如java中的执行结果为result,其类型为:list<haspmap<string,object>>。其内容如下:2019-08-31pc201230122019-08-81m189931122019-08-30pc213530202019-08-80m19643203之后,由图表引擎250根据预设的图表配置信息将该数据结果转换为图表结果。图表引擎250可根据不同图表类型,将数据源按图表配置进行转化,转变成图表需要的特定数据格式。具体地,图表引擎250先从报表数据库中获取该报表标识所对应的图表配置信息,再根据该图表配置信息将该数据结果转换为图表结果。最后,由报表引擎260将搜索条件、数据结果和图表结果整合为自助报表,并将该自助报表后进行前端可视化展示,展示结果如图3所示。根据本发明的一个实施例,上述自助报表生成系统100中的计算设备110和调度系统130均可以通过如下所述的计算设备600来实现。图6示出了根据本发明一个实施例的计算设备600的结构框图。在基本的配置602中,计算设备600典型地包括系统存储器606和一个或者多个处理器604。存储器总线608可以用于在处理器604和系统存储器606之间的通信。取决于期望的配置,处理器604可以是任何类型的处理,包括但不限于:微处理器(μp)、微控制器(μc)、数字信息处理器(dsp)或者它们的任何组合。处理器604可以包括诸如一级高速缓存610和二级高速缓存612之类的一个或者多个级别的高速缓存、处理器核心614和寄存器616。示例的处理器核心614可以包括运算逻辑单元(alu)、浮点数单元(fpu)、数字信号处理核心(dsp核心)或者它们的任何组合。示例的存储器控制器618可以与处理器604一起使用,或者在一些实现中,存储器控制器618可以是处理器604的一个内部部分。取决于期望的配置,系统存储器606可以是任意类型的存储器,包括但不限于:易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或者它们的任何组合。系统存储器606可以包括操作系统620、一个或者多个应用622以及程序数据624。在一些实施方式中,应用622可以布置为在操作系统上利用程序数据624进行操作。程序数据624包括指令,在根据本发明的计算设备600中,程序数据624包含用于执行自助报表生成方法700的指令。计算设备600还可以包括有助于从各种接口设备(例如,输出设备642、外设接口644和通信设备646)到基本配置602经由总线/接口控制器630的通信的接口总线640。示例的输出设备642包括图形处理单元648和音频处理单元650。它们可以被配置为有助于经由一个或者多个a/v端口652与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口644可以包括串行接口控制器654和并行接口控制器656,它们可以被配置为有助于经由一个或者多个i/o端口658和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备646可以包括网络控制器660,其可以被布置为便于经由一个或者多个通信端口664与一个或者多个其他计算设备662通过网络通信链路的通信。网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(rf)、微波、红外(ir)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。计算设备600可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和web服务器等,也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(pda)、无线网络浏览设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备600还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备600被配置为执行自助报表生成方法700。图7示出了根据本发明一个实施例的网站资源的自助报表生成方法700的流程示意图。方法700在计算设备中执行,如在计算设备600中执行,以处理用户的报表查询请求。如图7所示,该方法始于步骤s710。在步骤s710中,接收用户提交的报表查询请求,该报表查询请求携带有报表标识和用户设置的一个或多个搜索条件。随后,在步骤s720中,根据预设的搜索配置信息将一个或多个搜索条件转换为报表sql查询语句的where部分字段。根据一个实施例,在步骤s720之前,还可以包括步骤:获取预先存储的该报表标识所对应的报表原型的配置信息,该配置信息包括该报表标识所对应的基本配置信息、搜索配置信息和图表配置信息。其中,基本配置信息包括该报表原型的报表数据源,搜索配置信息包括一个或多个搜索项的表达式,图表配置信息包括图表展示类型和图表展示参数。这些配置信息可由统一的信息获取模块来获取,再传输给对应的模块单元,如传输给搜索器引擎和图表引擎。当然,也可以直接由搜索器引擎获取搜索配置信息,由图表引擎获取图表配置信息。这些配置信息可以同时一并获取,也可在需要使用时再获取。例如,当用户有搜索条件时,去获取搜索配置信息进行解析。当需要转换为图表时,去获取图表配置信息进行解析。这些配置信息的详细内容已在装置200的描述中详细公开,这里不再展开赘述。一般地,预设的搜索配置信息中包含各搜索项初始配置的默认表达式,将该默认表达式中的默认占位符替换为用户搜索条件的实际输入值,即可得到各搜索项的实际表达式。最后,将多个表达式以and拼接,即可得到where部分字段。随后,在步骤s730中,查询该报表标识所对应的报表名。已知sql管理器中存储每个报表及其对应的sql查询语句的关联关系。因此,对于实时报表,可从sql管理器中查询生成该实时报表的sql查询语句,作为该实时报表的报表名。而对于真实报表,可从sql管理器或报表数据库中查询其真实的报表名。随后,在步骤s740中,将用户的查询字段、报表名和where部分字段拼装为完整的报表sql查询语句,并根据该查询语句从预设的报表数据源中获取对应的数据结果。其中,预设的报表数据源即为预先配置好的该种报表所要访问的报表数据源。所获取到的数据结果对应的就是表格区内容。随后,在步骤s750中,根据预设的图表配置信息将所述数据结果转换为图表结果,并将用户的一个或多个搜索条件、数据结果和图表结果进行前端可视化展示,如图3所示。根据本发明的一个实施例,方法700还可以包括定时任务的执行步骤:设定定时报表的sql查询语句和定时查询时间,并将所设定的内容通过接口发送至调度系统,以便该调度系统在定时查询时间时执行所设定的sql查询语句,并将查询结果保存在报表数据库中。调度系统在执行时,会根据任务标识获取指定数据任务的sql查询语句,并判断访问的数据库类型。如果是访问业务数据库,则直接执行sql,将结果存储到定时任务结果表。如果是访问大数据库,则需要将任务上传到大数据集群,然后将执行结果存储到定时任务结果表。此外,在定时执行sql查询任务,以及通过用户搜索来执行sql查询任务时,都会记录每次sql执行的执行次数、执行时间和执行人员等各种数据指标,方便各种报表的统计分析。例如,文章流量表的sql每定时执行一次,该执行次数就会加1;当用户主动搜索某文章流量表,基于文章流量表的sql会结合用户搜索条件拼装为报表slq查询语句,该语句每执行,对应的sql执行次数就会加1。关于本发明的自助报表生成方法700,其具体细节已在基于图1-图6的描述中详细公开,这里不再展开赘述。另外,该方法中自助报表的具体生成逻辑、调度系统的定时任务执行逻辑可进一步结合图8中执行流程进行理解。总体来说,每种报表都预先设置好了基本配置、搜索配置和图表配置,每种搜索器、每种报表类型、每种图表类型都有其对应的解析方式和初始值替换方式,结合用户的输入值即可进行相应替换,得到对应的输出结果。根据本发明的技术方案,通过定时任务的定时sql、即时报表的虚拟表sql将多个数据表中的数据整合到单表,从而方便了报表数据的查询。通过sql管理器将sql进行了统一存储、获取与更改,方便了后续sql的查找和逻辑梳理。通过对不同字段的搜索设置不同的搜索类型和比值方式,实现了多个搜索条件的联合搜索。通过搜索器引擎将用户搜索区的表现、输入统一化,并且通过配置器和表达式解析器,实现报表sql中where条件的拼接。整个报表系统按照功能拆分为报表引擎、图表引擎、搜索器引擎、sql管理器等模块,每个模块都可以单独进行扩展,以提供丰富的报表展示样式。通过自助报表配置,大大加快了自助报表的研发速度,且为后续报表更改提供了便利条件。a7、如a6所述的方法,其中,所述实时报表是通过实时执行sql查询任务,以将多表数据进行关联映射后得到的临时单表;所述定时报表是通过定期执行sql查询任务而生成的真实报表,其存储于报表数据库中。a8、如a7中所述的方法,还包括步骤:在sql管理器中存储每个报表及其对应的sql查询语句的关联关系。a9、如a8所述的方法,其中,所述实时报表的报表名从sql管理器中获得,所述定时报表的报表名从报表数据库中获得。a10、如a1-a9中任一项所述的方法,还包括定时报表的定时生成步骤:设定定时报表的sql查询语句和定时查询时间;将所设定的内容通过接口发送至调度系统,以便该调度系统在所述定时查询时间时执行所设定的sql查询语句,并将查询结果保存在报表数据库中。a11、如a10所述的方法,还包括步骤:记录每个实时报表或定时报表的sql查询语句的执行次数和执行时间,以便进行统计分析。b13、如b12所述的装置,其中,所述报表引擎还适于预设各报表原型的基本配置信息,并将报表原型的sql查询语句发送给sql管理器;所述搜索器引擎还适于预设各搜索项的搜索配置信息,并解析用户在各搜索项的输入内容;所述图表引擎还适于预设各报表原型的图表配置信息,并将查询到的数据结果转换为图表结果的转换方式。b14、如b12所述的装置,其中,所述sql管理器还适于存储各报表原型及其对应的sql查询语句,并根据用户的搜索条件对该sql查询语句进行占位符替换;所述sql执行器还适于记录每个实时报表或定时报表的sql查询语句的执行次数和执行时间,以便进行统计分析。这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、u盘、软盘、cd-rom或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的自助报表生成方法。以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本
技术领域
内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本
技术领域
的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1