基于维度数据仓库快速生成报表的方法及系统与流程

文档序号:21544540发布日期:2020-07-17 17:52阅读:272来源:国知局
基于维度数据仓库快速生成报表的方法及系统与流程
本发明涉及报表生成领域,具体地说是一种基于维度数据仓库快速生成报表的方法及系统。
背景技术
:传统报表生成需要对每个报表进行编写sql获取数据库里的数据或者通过第三方报表工具手工填报(非自动化),尤其是面对大量报表且很多数据来源同一位置时,你会发现你写的很多数据库查询是重复性的,生成报表的效率较低。而报表可视化工具是通过直接访问数据库获取数据,存在如下缺点:①、必须依托it从业人员的帮助;②、当面对大量报表时显得力不从心,并且产生大量重复性工作。故如何减少工作人员冗余重复性的编码工作,提升报表生成效率是目前亟待解决的技术问题。专利号为cn109491743a的专利文献公开了一种可视化报表生成方法、装置、电子设备和存储介质,方法包括:步骤s11,在浏览器页面中预先设置包含多个图表的可视化报表模板;步骤s12,获取用户设定的报表的配置参数;步骤s13,根据所述配置参数,对所述浏览器页面中各个图表的排版布局及样式进行渲染;步骤s14,根据渲染完成后的所述浏览器页面,生成所述用户对应的可视化报表。该技术方案存在操作较为复杂、报表生成效率较低的缺点。技术实现要素:本发明的技术任务是提供一种基于维度数据仓库快速生成报表的方法及系统,来解决如何减少工作人员冗余重复性的编码工作,提升报表生成效率的问题。本发明的技术任务是按以下方式实现的,一种基于维度数据仓库快速生成报表的方法,该方法具体如下:s1、开发一个供报表可视化工具调度的中间件;s2、用户把报表涉及的字段、度量聚集方式、过滤条件以及排序规则输入给中间件;s3、中间件自动读取生成sql语句;s4、中间件调用连接的数据仓库获取数据,并反馈给报表可视化工具,实现报表的快速生成;其中,中间件包括逻辑区和物理区,逻辑区包括scott,scott包括维度表和事实表;物理区内设有连接池,连接池用于配置连接信息,加载设计好的维度表和事实表。scott是在oracle数据库中,一个示例用户的名称。其作用是为初学者提供一些简单的应用示例,不过其默认是锁定状态,在安装时,根据用户需要,在"数据库配置助手"界面完成后,弹出的对话框中--口令管理,里面解锁。scott是oracle内部的一个示例用户,缺省口令为tiger,下面有表emp,dept等,这些表和表间的关系演示了关系型数据库的一些基本原理,oracle举例说明时一般都用这个用户,一些关于oracle的书、教材上一般也都用这个用户来讲解。它对于oracle本身不是必须的,如果不想用可以删除(如果你没在它下面建其它对象的话)。作为优选,所述步骤s1中的中间件利用微软winform技术开发,具体如下:s101、加载数据仓库的维度表和事实表:在连接池配置完连接信息,加载设计好的维度表和事实表;s102、事实表与维度表建立关联:双击事实表,再点击事实表的外键字段连接对应的维度表主键字段,从而建立事实表与维度表直接的关联关系;s103、将物理区的维度表和事实表拖拽到逻辑区;s104、上传到浪潮bi系统:步骤s1到步骤s3完成后保存,再以附件方式上传到浪潮bi系统;s105、通过浪潮bi系统自助设计可视化报表。更优地,所述步骤s103中将物理区的维度表和事实表拖拽到逻辑区具体如下:s10301、将物理区内前台报表用到的事实表和该事实表所关联的所有维度表拖拽到逻辑区;s10302、在逻辑区将事实表和维度表的表名及字段重新命名,确保命名的描述语言易于客户理解;s10303、双击事实表的每个度量指标,选择度量指标基于缺省维度属性的聚合方式。更优地,所述步骤s10303中聚合方式包括max、min、sum和avg。更优地,所述步骤s104中以附件方式上传到浪潮bi系统成功后,浪潮bi系统自动读取到中间件上所有配置信息;其中,中间件的所有配置信息包括数据库连接信息和事实表配置信息。一种基于维度数据仓库快速生成报表的系统,该系统包括,中间件开发单元,用于开发一个供报表可视化工具调度的中间件;其中,中间件利用微软winform技术开发且中间件包括逻辑区和物理区,逻辑区包括scott,scott包括维度表和事实表;物理区内设有连接池,连接池用于配置连接信息,加载设计好的维度表和事实表;输入单元,用于把报表涉及的字段、度量聚集方式、过滤条件以及排序规则输入给中间件;读取及生成单元,用于通过中间件自动读取生成sql语句;数据获取及反馈单元,用于通过中间件调用连接的数据仓库获取数据,并反馈给报表可视化工具,实现报表的快速生成。作为优选,所述中间件开发单元包括,加载模块,用于在连接池配置完连接信息,加载设计好的数据仓库的维度表和事实表;关联建立模块,用于建立事实表与维度表关联,具体是通过双击事实表,再点击事实表的外键字段连接对应的维度表主键字段,从而建立事实表与维度表直接的关联关系;拖拽模块,用于将物理区的维度表和事实表拖拽到逻辑区;上传模块,用于以附件方式上传到浪潮bi系统;自助设计模块,用于通过浪潮bi系统自助设计可视化报表。更优地,所述拖拽模块包括,筛选子模块,用于将物理区内前台报表用到的事实表和该事实表所关联的所有维度表拖拽到逻辑区;重命名子模块,用于在逻辑区将事实表和维度表的表名及字段重新命名,确保命名的描述语言易于客户理解;聚合方式选择子模块,用于双击事实表的每个度量指标,选择度量指标基于缺省维度属性的聚合方式。更优地,所述聚合方式包括max、min、sum和avg。更优地,所述上传模块上传成功后,浪潮bi系统自动读取到中间件上所有配置信息;其中,中间件的所有配置信息包括数据库连接信息和事实表配置信息。本发明的基于维度数据仓库快速生成报表的方法及系统具有以下优点:(一)用户通过自己的报表可视化工具引用中间件,即可生成各种维度的数据(包括聚集数据),故本发明减少工作人员冗余重复性的编码工作,提升报表生成效率;(二)本发明能够更加智能的快速生成报表,中间件担当报表可视化工具通往数据库的桥梁作用,it人员只需在企业数据仓库的基础上给中间件建立好维度与事实表的关联关系,非it用户即可自行配置自己想要的报表,极大的解放了it人员的报表开发工作,提高了工作效率。附图说明下面结合附图对本发明进一步说明。附图1为基于维度数据仓库快速生成报表的方法的流程示意图;附图2为中间件的组成示意图;附图3为事实表与维度表建立关联的示意图;附图4为选择度量指标基于缺省维度属性的聚合方式的示意图;附图5为bi报表设计区的示意图;附图6为报表预览效果示意图;附图7为实施例3中事实表和相关的维度表建立关联关系的示意图。具体实施方式参照说明书附图和具体实施例对本发明的基于维度数据仓库快速生成报表的方法及系统作以下详细地说明。实施例1:如附图1所示,本发明的基于维度数据仓库快速生成报表的方法,该方法具体如下:s1、开发一个供报表可视化工具调度的中间件;s2、用户把报表涉及的字段、度量聚集方式、过滤条件以及排序规则输入给中间件;s3、中间件自动读取生成sql语句;s4、中间件调用连接的数据仓库获取数据,并反馈给报表可视化工具,实现报表的快速生成;其中,如附图2所示,中间件包括逻辑区和物理区,逻辑区包括scott,scott包括维度表和事实表;物理区内设有连接池,连接池用于配置连接信息,加载设计好的维度表和事实表。其中,步骤s1中的中间件利用微软winform技术开发,具体如下:s101、加载数据仓库的维度表和事实表:在连接池配置完连接信息,加载设计好的维度表和事实表;例如维表:dw_d_month、dw_d_products,事实表:dw_f_orders;s102、事实表与维度表建立关联:双击事实表dw_f_orders,弹出如附图3所示的对话框,再点击事实表的外键字段连接对应的维度表主键字段,从而建立事实表与维度表直接的关联关系;s103、将物理区的维度表和事实表拖拽到逻辑区;具体如下:s10301、将物理区内前台报表用到的事实表和该事实表所关联的所有维度表拖拽到逻辑区;聚合方式包括max、min、sum和avg。s10302、在逻辑区将事实表和维度表的表名及字段重新命名,确保命名的描述语言易于客户理解;s10303、双击事实表的每个度量指标,以订单事实表的销量为例,弹出如附图4所示的对话框,选择度量指标基于缺省维度属性的聚合方式。s104、上传到浪潮bi系统:步骤s1到步骤s3完成后保存,再以附件方式上传到浪潮bi系统;上传成功后,浪潮bi系统自动读取到中间件上所有配置信息;中间件的所有配置信息包括数据库连接信息和事实表配置信息。其中,数据库连接信息(示例):用户名scott密码123456。事实表配置信息:s105、通过浪潮bi系统自助设计可视化报表;如附图5所示,将“月”、“产品名称”、“销售金额”三列拖拽到右侧区域,然后bi系统后台程序结合中间件的配置信息生成sql语句,具体如下:selectb1.month_idas月,b2.product_nameas产品名称,聚合函数(amont)as销售金额fromdw_f_ordersa1leftjoindw_d_monthb1ona1.month_wid=b1.month_idleftjoindw_d_productsb2ona1.product_wid=b2.row_widgroupbyb1.month_id,b2.product_name;生成报表预览效果,如附图6所示。it工作人员只需建设好数据仓库和配置好中间件,上传bi系统,接下来报表需求人员可在bi报表设计页面,自主拖拽相应字段组成报表。实施例2:本发明的基于维度数据仓库快速生成报表的系统,该系统包括,中间件开发单元,用于开发一个供报表可视化工具调度的中间件;其中,中间件利用微软winform技术开发且中间件包括逻辑区和物理区,逻辑区包括scott,scott包括维度表和事实表;物理区内设有连接池,连接池用于配置连接信息,加载设计好的维度表和事实表;中间件开发单元包括,加载模块,用于在连接池配置完连接信息,加载设计好的数据仓库的维度表和事实表;关联建立模块,用于建立事实表与维度表关联,具体是通过双击事实表,再点击事实表的外键字段连接对应的维度表主键字段,从而建立事实表与维度表直接的关联关系;拖拽模块,用于将物理区的维度表和事实表拖拽到逻辑区;拖拽模块包括,筛选子模块,用于将物理区内前台报表用到的事实表和该事实表所关联的所有维度表拖拽到逻辑区;重命名子模块,用于在逻辑区将事实表和维度表的表名及字段重新命名,确保命名的描述语言易于客户理解;聚合方式选择子模块,用于双击事实表的每个度量指标,选择度量指标基于缺省维度属性的聚合方式;聚合方式包括max、min、sum和avg。上传模块,用于以附件方式上传到浪潮bi系统;上传模块上传成功后,浪潮bi系统自动读取到中间件上所有配置信息;其中,中间件的所有配置信息包括数据库连接信息和事实表配置信息。自助设计模块,用于通过浪潮bi系统自助设计可视化报表。输入单元,用于把报表涉及的字段、度量聚集方式、过滤条件以及排序规则输入给中间件;读取及生成单元,用于通过中间件自动读取生成sql语句;数据获取及反馈单元,用于通过中间件调用连接的数据仓库获取数据,并反馈给报表可视化工具,实现报表的快速生成。实施例3:通过中间件引入数据仓库的事实表和相关的维度表,然后通过主外键建立关联,如附图7所示;当用户想通过自己的报表可视化工具统计2019年一季度各月份的店长销售饮料情况时,如下表:销售年销售月产品类别店长名称销售金额20191饮料a120020192饮料a200020191饮料b320020193饮料b2900用户只需将字段(年、月、产品类别、店长名称、销售数量*销售单价)输入给中间件并确定度量数据聚集方式(汇总)和过滤条件(2019年、一季度、饮料),中间件自动生成sql语句并访问数据库获取数据。建议将中间件引用的数据库表和字段名,在中间件里转义成业务用户的日常工作术语。其中,中间件自动生成的sql语句:selecta_2.年,a_2.月,a_3.产品类别,a_4.店长名称,sum(a_1.销售数量)*sum(a_1.销售单价)as销售金额from零售事实表a_1;leftjoin日期维度表a_2ona_1.销售日期=a_2.年月日;leftjoin产品维度表a_3ona_1.自增id=a_3.销售产品;leftjoin店员维度表a_4ona_1.自增id=a_4.店员;leftjoin商店维度表a_5ona_1.自增id=a_5.商店;wherea_1.销售年=2019anda_1.销售季度=1anda_3.产品类别=’饮料’;groupbya_2.年,a_2.月,a_3.产品类别,a_4.店长名称。这种方式替代了报表it人员编写sql繁琐工作,只需专注报表用户的需求设计,如果中间件足够友好,报表业务人员完全可以自己设计生成报表,不需要it人员干预。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1