chenhui 2013-06-06
最近开始做一个大规模数据分析的项目,一直在看一些BI方面的东西,每接触到一种新技术,就像站在一个山顶,先要站在制高点去眺望山下都有什么,才知道哪个方向的风景最有魅力,卖弄完毕,开始总结下这几天看到的一些对于BI方面的整体介绍。
BI(商业智能),英文名就是Business Intelligence,简单的来说就是将我们目前的数据转化为知识,为企业决策提供支持,让企业在以后的决策上少走弯路。准确的定义是:BI(Business Intelligence) 是一种运用了数据仓库、在线分析和数据挖掘等技术来处理和分析数据的崭新技术,目的是为企业决策者提供决策支持。
举个入门级的例子吧!虽然很入门。
假如你是一个销售公司的老板,公司的业务面比较广泛,随着时间的积累,慢慢有了长达几年的各个方面的数据,不管这些数据是自己公司,或者来源于竞争对手的业绩数据,这些数据越来越多,也越来越占用空间,可是丢掉也觉得弃之不舍,又不知道这么一大堆的数据用处是什么?这个时候BI就派上用场了,特别是在大量的数据处理上,能通过提取转换,很直观(通常是各种报表形式)的反应给公司管理人员,这样你就知道你竞争对手的各个方面的业务状况,也很清晰的看到自己各个业务的进展和发展状况,对于公司以后发展方向很可能起着决定性作用,这个时候,可以说BI就相当于指挥棒。
BI不是一门新的技术,而是很多技术的一个综合,比如数据仓库用到ETL,在线分析OLAP,数据挖掘,不管怎么说BI离不开数据,特别是在这个大数据的年代!
BI从上个世纪1996年提出,国内的发展也有十年之久,目前已经有一些比较成熟的解决方案,主要说一些用的多的吧,Obviously,用的多,基本上就是开源的了。
1.Mondrian
Mondrian不能算一个方案,可是目前很多方案都不能离开它。Mondrian是用java编写的一个开源OLAP(在线联机分析)引擎,实现了xmla和jolap规范,而且自定义了一种使用mdx语言的客户端接口,MDX简单来说就是基于SQL的进行多维分析的查询语句吧。这些后面细说。Mondrian是一个OLAP服务器,也就是说不是数据仓库服务器,不负责存储等方面的任务,Mondrian从数据仓库中取出数据,然后转换为多维数据模型,放到内存中,它的主要任务就是数据的转换和提取。
2.JPivot
JPivot也不是一个完整解决方案,但是也是一个开源的项目,负责数据的渲染展现。简单说就是一个基于WCF(Web Compont Framework)的jsp标签库,它的数据基于Mondrian服务器,分析结果通过若干个报表,并且可以导出Excel(其实Excel也可以算个简单的BI分析工具)和PDF。个人觉得呢,Mondrian和JPivot可以算是一对基佬,很多方案都是基于Mondrian+JPivot,另外加上一套报表工具和数据仓库等东东。还有不得不吐槽的是JPivot的画面,工具栏缺少亲和力。
3. OpenI
OpenI算是一个轻量级的BI工具,基于Mondrian和JPivot,侧重于数据展现,Openi是一个Java开发的Web应用,能对OLAP服务器、关系数据库和数据挖掘服务器进行分析和报表展示,非常易于使用和部署,界面美观友好,后续还将支持数据挖掘和ETL等。
Openi主要包括:
1、 OLAP展示:JPivot
2、 报表工具:JFreeChart
3、 分析数据源连接器
由于OpenI也看不惯JPivot的界面,所以对部分功能进行了改善,比较友好,而且易于部署,目前比较成熟,适用于中小型项目开发。
4. JasperSoft
JasperSoft 和OpenI比较类型,都是基于Mondrian+JPivot,由于是做报表(JasperReports起家),所以JasperSoft 的报表功能比OpenI较强大,基于世界上最流行的开源 JAVA 报表库及图形化的报表设计工具-JasperReport和iReport,报表内容比较丰富全面
5.SpagoBI
SpagoBI是一个重量级适用于大型企业的成熟开源解决方案,统一集成了Mondrain和JProvit,能够通过OpenLaszlo产生实时报表。SpagoBI使用java开发,所以适用性较强。它主要包括:
1、 报表工具:JasperReports /Eclipse BIRT/ iReport
2、 OLAP Server:Mondrian
3、 OLAP展示:JPivot
4、 数据挖掘组件:Weka
5、 Map引擎:Geo
6、 ETL:BIE
7、 搜索引擎:Lucene
8、 Dashboard:OpenLaszlo
9、 Portal Server:JBoss/ Tomcat/ JOnAS
它涵盖了一个BI系统所有方面的功能,包括:数据挖掘、查询、分析、报告、Dashboard仪表板等等。功能强大全面,系统架构合理。
6. Pentaho
Pentaho是一个以工作流为核心的、强调面向解决方案而非工具组件的BI套件,整合了多个开源项目,目标是和商业BI相抗衡。Pentaho是一个很完善的BI解决方案。Pentaho偏向于与业务流程相结合的BI解决方案,侧重于大中型企业应用。目前pentaho资料比较全面而且竟然有专门的中文文档,说明还是很注意中国市场的,连Mondrian都加入了pentaho,国内一些大型的BI方案使用pentaho的比较多。最后还要提出一点的是,SpagoBI和Pentaho都是基于Mondrian和JPivot的,所以理解Mondrian和JPivot的内部结构还是很有必要的,虽然这几天看JPivot的源代码看的要吐,而且JPivot代码有一定的可优化性。
最后是一些官方链接
Mondrian http://sourceforge.net/projects/mondrian/
JPivot http://jpivot.sourceforge.net/
OpenI http://openi.org/
JasperSoft http://www.jaspersoft.com/
SpagoBI http://www.spagoworld.org/
Pentaho http://www.pentaho.com/