还剩7页未读,继续阅读
文本内容:
开源平台的开发数据仓库系统Bl Openi现在大家比较公认的商业智能系统分为报表、OLAP、数据仓库、数据挖掘和即席查询五大块,本身商业智能系统也只是一个比较新的概念,也许随着技术和应用的发展还会扩充出来很多模块本文就基于开源BI平台Openi的数据仓库系统,进行整体设计及开发,就其中比较热门的技术,如OLAP、数据仓库等进行初步的讲解,以期起到一个抛砖引玉的作用
一、开源的平台BI商业智能也称作B1是英文单词Business Intelligence的缩写商业智能通常被理解为将企业中现有的数据转化为知识,帮助企业做出明智的业务经营决策的工具这里所谈的数据包括来自企业业务系统的订单、库存、交易账目、客户和供应商等来自企业所处行业和竞争对手的数据以及来自企业所处的其他外部环境中的各种数据而商业智能能够辅助的业务经营决策,既可以是操作层的,也可以是战术层和战略层的决策为了将数据转化为知识,需要利用数据仓库、联机分析处理OLAP工具和数据挖掘等技术因此,从技术层面上讲,商业智能不是什么新技术,它只是数据仓库、OLAP和数据挖掘等技术的综合运用从国内企业和政府部门的信息化建设发展来看,从最初的各类MIS系统到近几年流行的ERP、CRM等,用户的数据积累已达到了一定的程度,很多行业的用户面对越来越激烈的市场竞争,他们需要对自己的数据用户、市场、产品进行分析,挖掘出潜在的商机,降低公司的运作成本,这是BI和数据仓库类产品被市场看好、不断获得增长的根本原因!在现有的市场中,对于BI类产品来说往往是与数据仓库整体解决方案相关联,一些国内的IT公司也正在把BI和数据仓库的结合作为行业的解决方案来推广到自己熟悉的领域对于IT公司来说在ERP、CRM之后需要寻找新的利润增长点,BI和数据仓库的出现无疑是一个莫大的商机在商业智能系统出现之前,大家都是通过报表来展现数据库中的数据,报表有简单有复杂,当然报表只能静态的展现一部分数据,用户只能看到已经做好的报表,不能根据自己的需要重新构造报表随着技术的发展,出现了OLAP分析,它能够让用户根据自己的想法对数据进行聚类、分类、钻取等操作,这样就很好的解决了报表不能动态展现的问题之后随着数据仓库和数据挖掘技术的不断完善,大家都认为商业智能系统主要是分析数据,就把OLAP、数据仓库和数据挖掘归类到一起形成了BI系统,这三项确实能够体现Intel ligence的概念因此初期的BI系统都是只含有这三块,但是用户在使用一段时间后认为报表模块是必不可少的,因此都纷纷要求BI供应商将报表模块加进来,为什么会出现这种情况呢?因为虽然OLAP能动态展现数据,但是它主要还是侧重于决策者的分析,而中层领导更喜欢看到的是报表,他们需要掌握自己所分管部分的运营情况,报表则是最好的展现数据的方式,因此最后各BI厂商就将报表也加入到BI系统中去了,例如B0收购水晶报表,Hyperion收购Brio等都是BI厂商收购报表厂商来完善自己的报表功能下面列出相对成熟和完整,并且有借鉴意义的开源BI套件,而本文中的仓库系统的设计及开发采用就是其中的Openi这种开源的BI平台⑴、Bizgres为GreenPlum公司主导的开源项目,和Sun公司达成合作关系Bizgres为BI应用而对PostgreSQL做了优化,提高了大负荷的并行计算能力,在BI环境中,相对于普通的关系型数据库具有卓越的数据处理性能Bizgres的数据库平台可以和KETL和JasperReports进行整合,从而形成一个BI套件2Openi是一个Java开发的Web应用,能对OLAP服务器、关系数据库和数据挖掘服务器进行分析和报表展示,非常易于使用和部署,界面美观友好,后续还将支持数据挖掘和ETL等
3、Pentaho是一个以工作流为核心的、强调面向解决方案而非工具组件的BI套件,整合了多个开源项目,目标是和商业BI相抗衡它包括由上可见Pentaho是一个很完善的BI解决方案Pentaho偏向于与业务流程相结合的BI解决方案,侧重于大中型企业应用
4、SpagoBISpagoBI集成了Mondrain和JProvit,能够通过OpenLaszlo产生实时报表SpagoBI使用java开发,不依赖于具体的操作系统,有很强的扩展能力根据其Roadmap可以看出,SpagoBI将融入更多的BI功能,甚至BI之外的功能
二、系统设计
1.系统体系结构该系统基与多层体系结构设计,其中包括WEB客户端层;WEB服务器层;数据持久层数据抽取生成多维报表数据加载业务数据WEB用户端IE等清洗转换装载系统多层体系结构图
2.系统数据流程下面我们来介绍一下数据仓库系统的数据流程,以此来让用户更好的把握产品的整体架构和功能原理下图为系统的数据流程与相关功能关系图用户接口元数据定义连接器FreeChartOLAP OLAP连接舞«in定义OlapCubeXMLA组件Pivot连接器RDBMS RDBMSWCF定义RDBMS服务器JDBC组件连接器DataMining DataMiingNavigator定义RServer配置信息其它定义其它连接器RDBMS服务器DM安全险证Model/Model\_M Model应用服务器J2EE数据仓库系统的数据流程从上面的图中我们可以看到,数据仓库系统系统数据有两类业务数据和多维数据业务数据由业务系统产生,经过一系列处理并放到数据仓库中的关系数据库由于它直接来源于业务系统,因此,它真实反映了业务系统的明细数据,由于其数据量有可能很大,访问时需要考虑要消耗的资源多维数据是系统从数据仓库中经过汇总、统计而产生的它通过采用多维结构和将一些数据预先进行了统计等预处理操作,对原始数据进行重新组合,来实现灵活而快速的数据访问
3.系统开发框架springapp-servlet.xml控制层探同层配置文件控SpringHTML springapp-viejvs.properties配置文制器件SimpleFoJSPrmControll/WL\er....\TagsJPivot\Tags/模型层■件JPivotfflOlap Server件WCFffl用件JasperReports其它…Servlet系统架构图存储用户所关心的某一分析主题的相关数据,其下包括多个维(分析角度)和一或多个指标例如一个名为Sales的多维分析主题通常会包括时间、产品、门店、顾客以及指标如销售额、成本等等⑴、维维度是描述事物特征的一个角度例如门店销售情况需要分析商品销售的时间、地点、商品名等这里的时间、地点、商品名就是门店销售情况的分析维度、维结构维度是有结构的,每个维度可以由若干个层次组成的,例如时间维度,可以由四个层次组成年、季、月、日,每一个层次又由若干个维成员组成、维成员组成维度的子成员,如时间维度可以由其维成员2003年、2004年、2005年等具体年份来构成、分析主题用户所关注业务的一个考核方面如门点销售情况分析,仓库库存情况分析等等、指标一个特殊的维度它的成员都是数值型的,用来描述维度或维成员的的量属性,例如门店销售情况分析中的销售额,商品成本等、多维分析报表多维分析报表中的数据来源于一个多维分析主题多维分析主题能将同一个分析主题所涉及到的数据,即影响因素“维”和衡量因素“指标”集中存储并且部分预先统计出来,多中角度,对从原始数据中转化出来的、能够真正为用户所理解的、并真实反映企业特征的信息,进行快速、一致、交互地存取,从而获得对数据的更深入地了解多维分析报表的优点在于能够摆脱业务系统数据及数据结构的限制,真正地以客户的思维逻辑来生成报表
三、系统开发
1.程序运行框架本系统主要基于Spring WebMVC框架开发,Action配置文件为WEB-INF\springapp-servlet.xml,View配置文件为WEB-INF\classes\springapp-views.properties程序运行框架图如图所示springapp-servlet.xml控制层视图层控Spring制器springapp-vieyvs.properties配置文件SimpleFormController,…模型层Olap ServerJPivotfflft件WCF3纲件JasperReportsServlet其它…程序运行框架图
2.WCF组件本系统对OLAP的操作主要基于JPivot组件实现,界面展现主要采用WCF组件进行渲染,本节对JPivot组件和WCF组件的使用进行详细介绍WCF是一个JSP自定制的标签库,它主要通过XSLT对XML进行渲染,创建、展现和验证HTML表单特别地,JPivot组件通过Renderable接口中的render方法生成组件的XML描述信息,再借助于WCF的Render标签可以将XML描述信息转换为HTML发布到用户界面上以下对WCF部分标签的用法分别予以介绍
1.form此组件采用XML文件的方式来创建HTML表单,该组件在设计阶段并不中见,必须通过WCF render标记进行渲染后方可见XML文件的格式如下示例xform style=〃twocolumn〃title value=Form Demoz,imgButton label二〃Cancel...//titletextField type int〃modelReference=intValue labelCount.../二〃二〃checkBox modelReference=//nestedBean.boolValue labelCheck Me〃.../二〃/xform而它的数据绑定而言,关联到了相关的JavaBeano通过modelReference属性来对bean属性注入值当然modelReference可以包含EL表达式示例:jspruseBean idtestbean〃class=〃com・tonbeller.wcf.form.TestBean〃scope=session”/二〃wcf:form id=,,formcompz/xmlUri=,,/WEB-INF/formdemo.xml/zmodel=〃#{testbean}〃/form action=,zformdemo.jsp〃method=POST id=form01〃wcf:render rel{formcomp}/zxslUri=〃/WEBTNF/wcf/wcf.xsl“xslCache=〃true〃//form示例:xform styletwocolumn〃二〃title value=/zfmt:fetch,title,from,resource,bundle”〉imgButton id=cancel〃src=z,wcf/form/cancel.png〃action=revert label=Cancel”forward二〃tabledemo.jsp〃handler tonbeller.wcf.form.ButtonHandler,z/COOL二〃/titleText control!一一一一textField idstring“type=〃string“modelReference=z/stringValuez/label Text:〃value=〃〃二〃二〃title=please entersome text〃/textField id=〃int〃type=〃int〃model Reference=,,intValue,/label=/,Integer:z,value=〃〃title please enter aninteger”/二〃〉textField iddouble“type=double modelReference=doubleValue label=z/Decimal number:,二〃zvalue=〃〃title pleaseenter adecimal number/二〃〉textField id=date type=date〃mode1Reference dateValuelabel=Date:〃二〃value=〃〃title pleaseenter a date〃/二〃textField id=〃dateTime〃type dateTimemodelReference=/,dateTimeValue//label=/,Date/Time:z,二〃value=〃〃title=〃pleaseenteradate/time,z/!——Password control——password id=〃password〃type=string“model Reference=password label=〃Password:value=〃〃/!——Text area——textArea idtextarea“rows=7〃cols=〃40〃type=〃string modelReference=textArea”label=〃二〃Text area:value=This isa textareaz,/checkBox id-〃checkbox/modelReference-〃chcckBoxl〃label-〃check boxl〃/checkBox idcheckbox2〃model ReferencecheckBox2〃label=check box2〃/二〃二〃!--ListBox,single selection一一listBoxl idlistl“type int〃modelReference=〃listl〃label=List,single selection:z/二〃二〃listltem id=listl.1〃value=〃1〃label list item l〃/二〃listltem idvalue=〃2〃label=list item2〃/二listltem idlistl.3〃value=〃3〃label listitem3〃/二〃二〃listltem id=〃listl.4〃value=〃4〃label=listitem4〃//listBoxlListBox,multiple selection--!-一listBoxN id=〃listN〃type int〃modelReference listN〃label List,multiple selection:/z二〃二〃二〃listltem idlistN.1〃value=〃1〃label=〃list itemrv二〃listltem idlistN.2〃value=〃2〃label listitem2二〃二〃〃/〉listltem idlistN.3〃value=〃3〃label listitem3〃/二〃二〃listltem idlistN.4〃value=〃4〃label listitem4〃/二〃二〃/listBoxN!-ListBox,single selection,dynamic itemlist一listBoxl idlistbox“typeint〃model ReferencedynList labelList,dynamic content:handler二〃二〃二〃二〃com.tonbeller.wcf.form.TestItems,z/二〃label labelThis isa labelvalue=value attributegoes here〃/二〃label label=Dynamic labelcontent fromTextAreaz/modelReference=/,textAreazz/radioButton idradiol〃modelReference=,zradioButtonl/zgroup-id=z/groupl/z二〃label radio button l〃/二〃radioButton idradio2〃model Reference=,zradioButton2,zgroup-i d=/,group1z,二〃label=radiobutton2〃/buttonsbutton id=cancel“action revert〃label Cancelforward tabledemo.jsp〃handler=,zcom.二〃二〃二〃tonbeller.wcf.form.ButtonHandler,z/button idrevert action=〃revert〃label=Revert”二〃handler=〃coni・tonbeller.wcf.form.ButtonHandler,z/button id=validate action=〃validate label=〃Validate”handler=〃com・tonbeller.wcf.form.Buttonllandler,Vbutton id=〃ok〃action validatelabel=〃0K〃forward=tabiedemo.jsp〃二〃handler=〃com・tonbeller.wcf.form.ButtonHandler,,//buttons/xform
3.JPivot组件JPivot-是一个JSP自定制的标签库,可以绘制一个OLAP表格和图表用户可以执行典型的OLAP操作,如上钻、下钻、切片、和切块等JPviot组件不能直接产生界面输出,但Pviot所有的可发布的组件都实现了Renderable接口,所有组件的输出信息都是通过Renderable接口中的render方法生成的,然后由WCF标签库的render标签调用JPivot组件的render方法将组件信息输出到界面上以下对JPivot部分组件的用法分别予以介绍
1.chooseQuery采用queryName属性来创建查询内容示例jp:mondrianQuery id=〃query01〃queryName=〃namel〃SELECT.../jp:mondrianQuery jp:mondrianQuery id=〃queryOl queryName=/,name2z/SELECT/jp:mondrianQuery••jp:chooseQuery idqueryOl queryName=z/name1/z/二〃
2.clickable使所有的维度成员或级别可以点击,例如产生一个链接产生的URL地址包含成员的唯一名称当然,它的动作依赖于sessionParam属性,当它存在时,在新页面展示之前,参数值将写进com.tonbeller.jpivot.param.SessionParamPool当不存在时,参数值将通过编码附加在超级链接后面o示例
四、系统效果
1.设置数据源和多维模型新建报表分析语选择数据源多维数据源Anaylisis Services2000v多维数据库demo话选择多维模型卜中标情况分析7配置分析维度和指标选择数据源和多维模型
2.浏览报表—三回卬空号引到3胤叵,Btms指标_______________总投标£•««»aymlel到匆田别期I**期1~\HH“所有勺立美川“所有勺立初x所有,蛀制♦2M5年08月
515377.3T847丸4551,
537.7442M睥09月162376%
32356589.24162,3733800碑12月X893CT.9q
888840.{MMI.OO♦2001年4530271M
718937.83453,
027.39“2005年II月67M5效眈
952534.78671,45%的42005年i月12165595•收
8652345.551,2T6,5取54或00再7月09aIT・2MS年]葡赢•[*UTfU
954.11♦2M牌;.2泞.上
4.T7X
141.05-KW HR唉8沃d»b4研22仁厂一»,848,12121打开并浏览报表。
个人认证
优秀文档
获得点赞 0