ylbtech-杂项:SpagoBI

SpagoBI是一个商业智能平台,为商业智能项目提供了一个完整开源的解决方案。它涵盖了一个BI系统所有方面的功能包括:数据挖掘、查询、分析、报告、Dashboard仪表板

1. 产生背景返回顶部
经过几年的积累,大部分中大型的企事业单位已经建立了比较完善的CRM、ERP、OA基础信息化系统。这些系统的统一特点都是:通过业务人员或者用户的操作最终对数据库进行增加、修改、删除等操作。上述系统可统一称为OLTP(Online Transaction Process,在线事务处理),指的就是系统运行了一段时间以后,必然帮助企事业单位收集大量的历史数据。但是,在数据库中分散、独立存在的大量数据对于业务人员来说,只是一些无法看懂的天书。业务人员所需要的是信息,是他们能够看懂、理解并从中受益的抽象信息。此时,如何把数据转化为信息,使得业务人员(包括管理者)能够充分掌握、利用这些信息,并且辅助决策,就是商业智能主要解决的问题。  如何把数据库中存在的数据转变为业务人员需要的信息?大部分的答案是报表系统。简单说,报表系统已经可以称作是BI了,它是BI的低端实现。
国外的企业,大部分已经进入了中端BI,叫做数据分析。有一些企业已经开始进入高端BI,叫做数据挖掘。而我国的企业,大部分还停留在报表阶段
数据报表不可取代
传统的报表系统技术上已经相当成熟,大家熟悉的Excel、水晶报表、Reporting Service等都已经被广泛使用。但是,随着数据的增多,需求的提高,传统报表系统面临的挑战也越来越多。
1. 数据太多,信息太少
密密麻麻的表格堆砌了大量数据,到底有多少业务人员仔细看每一个数据?到底这些数据代表了什么信息、什么趋势?级别越高的领导,越需要简明的信息。如果我是董事长,我可能只需要一句话:我们的情况是好、中还是差?
2. 难以交互分析、了解各种组合
定制好的报表过于死板。例如,我们可以在一张表中列出不同地区、不同产品的销量,另一张表中列出不同地区、不同年龄段顾客的销量。但是,这两张表无法回答诸如“华北地区中青年顾客购买数码相机类型产品的情况”等问题。业务问题经常需要多个角度的交互分析。
3. 难以挖掘出潜在的规则
报表系统列出的往往是表面上的数据信息,但是海量数据深处潜在含有哪些规则呢?什么客户对我们价值最大,产品之间相互关联的程度如何越是深层的规则,对于决策支持的价值越大,但是,也越难挖掘出来。
4. 难以追溯历史,数据形成孤岛
业务系统很多,数据存在于不同地方。太旧的数据往往被业务系统备份出去,导致宏观分析、长期历史分析难度很大。
因此,随着时代的发展,传统报表系统已经不能满足日益增长的业务需求了,企业期待着新的技术。数据分析和数据挖掘的时代正在来临。值得注意的是,数据分析和数据挖掘系统的目的是带给我们更多的决策支持价值,并不是取代数据报表。报表系统依然有其不可取代的优势,并且将会长期与数据分析、挖掘系统一起并存下去。
 
2. 发展版本返回顶部
2011年6月16日,3.0版本发布;
2011年7月22日,3.1版本发布;
2011年12月22日,3.3版本发布;
2012年4月17日,3.4版本发布;
2012年7月13日,3.5版本发布;
2012年10月23日,3.6版本发布;
2013年6月18日,4.0版本发布;
2013年12月3日,4.1版本发布;
2014年4月10日,4.2版本发布;
2014年9月16日,5.0版本发布,此版本中添加的驾驶舱功能。
2015年1月22日,5.1版本发布;
 
3. 主要功能返回顶部

基本介绍

商业智能套件SpagoBI提供一个基于J2EE的框架用于管理BI对象如报表、OLAP分析、仪表盘、记分卡以及数据挖掘模型等。它提供的BI管理器能够控制、校验、验证与分发这些BI对象。SpagoBI特性包括支持Portal、Report、OLAP、QbE(FreeInquiry)、ETL、Dashboard、文档管理、元数据管理、数据挖掘与地理信息分析等。SpagoBI的安装配置较为简单方便,能够方便地在UNIX/Linux、WindowsServer操作系统下,基于流行Tomcat7.0.xServer和JDK1.7.x环境运行,实现了Web框架下的AJAX风格的UI显示界面,比较适合于中、小型的应用软件系统进行智能化分析类OLAP、Ad-hoc、Reporting等BI相关应用展示。其典型demo显示截图如下:
SpagoBI平台功能较为完整,官方声称市场上唯一100%开源的BI套件解决方案(基于LGPL协议);各个BI组件之间模块化很好,通过Plugin插件方式加载,来看一下它的各个组件:
Report:BirtReportDriver,BirtReportEngine,JasperReportDriver,JasperReportEngine
GEO:GeoDriver,GeoEngine(用地图显示数据和查询的)
OLAP:JPivotDriver,JPivotEngine
QBE:QbeDriver,QbeEngine
DataMining:WekaDriver,WekaEngineSecurity:ExoPortalSecurityProvider
ETL:Octupus和talend(Talend是官方合作伙伴)
Portal:eXoPortal
Booklet(小册子):BookletsComponent:主要包括文件上传,工作流,OpenOffice支持。
它还支持文档管理,用的是Apache的JackRabbit;支持搜索功能,使用的是ApacheLucene。它的展现层也使用了AJAX特性,另外它在DashBoard也使用了Openlaszlo,(一个用Javacode生成Flash的框架),所以SpagoBI的DashBoard看上去很好。SpagoBI体系架构图如下
它的界面强大、美观,具备良好的跨浏览器支持,页面缩放,元素的布局都很稳定划一。

软件下载

截止到2015年4月,SpagoBI软件的最新版本号为v5.1 。
1、下载完整的包含所有插件的安装All-In-One-SpagoBI-5.1-21012015.zip。
2、下载SpagoBI元数据库配置表需要的SQL脚本(SpagoBI支持Oracle/MySQL/SQLServer/Ingres/Postgres-SQL等多种RDBMS关系型数据库)
3、修改SpagoBI内置的Tomcat7.xServer对应的server.xml配置,创建metadata元数据库,并启动相关实例SpagoBI应用是以核心加引擎的模型来组织应用的。SpagoBI发行包中包含多个引擎。

软件配置

本文及以后的示例使用的数据库都为oracle,如需使用其他数据库请从SpagoBI官网下载相应数据库的BDSQL脚本文件并运行
1.首先在Oracle实例中创建数据库SpagoBI
2.创建数据库完成后创建表空间等:
--在创建用户之前,先要创建表空间:
SQL>createtablespaceSpagoBIdatafile'/data/oradata/SpagoBI.dbf'size500M;
--创建用户
SQL>createuserSpagoBIidentifiedbySpagoBIdefaulttablespaceSpagoBI;
--授予权限
SQL>grantconnect,resourcetoSpagoBI;
3.创建数据表,执行ORA_create.sql
4.创建定时器数据表,执行03ORA_create_quartz_schema.sql
5.以上操作完成后可以进行部署环境,更改tomcat_home\conf\server.xml中的<Resourcename="jdbc/SpagoBI"auth="Container"type="javax.sql.DataSource"driverClassName="oracle.jdbc.driver.OracleDriver"url="jdbc:oracle:thin:@127.0.0.1:1521:SpagoBIi"username="SpagoBI"password="SpagoBI"maxActive="20"maxIdle="10"maxWait="-1"/>数据库连接部分。
  l修改.\webapps\SpagoBI\WEB-INF\classes\下hibernate.cfg.xml,
  l修改:jbpm.hibernate.cfg.xml数据库方言设置hibernate.dialectorg.hibernate.dialect.Oracle9Dialect修改quartz.propertiesorg.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
  l修改默认服务器URL与端口号:SpagoBI默认端口是8080,如果想使用其他端口需要在Tomcat配置文件server.xml中将默认端口修改,同时修改SpagoBI_service_url和SpagoBI_host_url中默认端口。SpagoBIServer部署在内网环境的服务器上时,需要修改Tomcat配置文件中的URL的localhost为IP地址(例如192.169.2.x),如果在公网上部署,可以使用DNS域名。
6.运行Tomcat,启动SpagoBI(点击bin下SpagoBIStartup.bat文件)。在启动的过程中SpagoBI会在后台将一些必须的数据保存到数据库中。
 
4. 中文汉化返回顶部
最新的版本为SpagoBI从官方网站上下载5.1的官方版。这个版本和其他历史版本一样都不支持中文,并且也没见到官方支持中文的计划。
通过跟踪下代码,发现SpagoBI是支持国际化的,相应的配置文件也都存在,只是缺少中文的支持。要支持中文除了配置文件还需要更改大量的JSP文件,因为SpagoBI原有的JSP是以ISO-8859-1为编码方式,于是全部改成了UTF-8。
更改了JSP还是会在保存中文内容时报错,于是继续分析代码,加上转换。最终解决了中文支持的问题。SpagoBI可以支持中文(这里对SpagoBI做了很多改造工作,包括修改源代码类和JSP,如果只改JSP的encode和增加zh_CN汉化文件是不支持中文的,也无法保存带中文名称的菜单,配置等)。使用者有兴趣的话可以自己进行汉化工作。
 
5.返回顶部
 
 
6.返回顶部
 
7.返回顶部
 
8.返回顶部
 
9.返回顶部
 
10.返回顶部
1、
2、
3、
 
11.返回顶部
 
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

杂项:SpagoBI的更多相关文章

  1. 杂项之python描述符协议

    杂项之python描述符协议 本节内容 由来 描述符协议概念 类的静态方法及类方法实现原理 类作为装饰器使用 1. 由来 闲来无事去看了看django中的内置分页方法,发现里面用到了类作为装饰器来使用 ...

  2. 杂项之使用qq邮箱发送邮件

    杂项之使用qq邮箱发送邮件 本节内容 特殊设置 测试代码 1. 特殊设置 之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏 ...

  3. 杂项之图像处理pillow

    杂项之图像处理pillow 本节内容 参考文献 生成验证码源码 一些小例子 1. 参考文献 http://pillow-cn.readthedocs.io/zh_CN/latest/ pillow中文 ...

  4. 杂项之pymysql连接池

    杂项之pymysql连接池 本节内容 本文的诞生 连接池及单例模式 多线程提升 协程提升 后记 1.本文的诞生 由于前几天接触了pymysql,在测试数据过程中,使用普通的pymysql插入100W条 ...

  5. linux驱动初探之杂项设备(控制两个GPIO口)

    关键字:linux驱动.杂项设备.GPIO 此驱动程序控制了外接的两个二极管,二极管是低电平有效. 上一篇博客中已经介绍了linux驱动程序的编写流程,这篇博客算是前一篇的提高篇,也是下一篇博客(JN ...

  6. 【News】SpagoBI中国官方微信对外发布

    爱数据,爱分析,爱达比 致力于国际优秀开源BI应用在中国的普及推广,用数据开启中小企业智慧之门: 扫描上图二维码,关注SpagoBI中国官方微信,2015年8月18日将在腾讯课堂.百度传课.网易云课堂 ...

  7. 【转帖】四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho

    四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho 1 BI系统的简述 从技术角度来说 BI 包含了 ETL.DW.OLAP.DM等多环节.简单的说就是把交易系统 ...

  8. Linux驱动设计——字符杂项设备

    杂项设备 linux里面的misc杂项设备是主设备号为10的驱动设备,misc设备其实也就是特殊的字符设备,可自动生成设备节点. 定义头文件<linux/miscdevice.h>   杂 ...

  9. Posix线程编程指南(5) 杂项

    在Posix线程规范中还有几个辅助函数难以归类,暂且称其为杂项函数,主要包括pthread_self().pthread_equal()和pthread_once()三个,另外还有一个LinuxThr ...

随机推荐

  1. C#运行批处理【转】

    /// <summary> /// C#运行bat文件 /// </summary> /// <param name="batPath">< ...

  2. python 中 property 属性的讲解及应用

    Python中property属性的功能是:property属性内部进行一系列的逻辑计算,最终将计算结果返回 property属性的有两种方式: 1. 装饰器 即:在方法上应用装饰器 2. 类属性 即 ...

  3. jq的.off解绑事件

    .off( events [, selector ] [, handler ] ) 描述:移除一个事件处理函数 events 类型: String 一个或多个空格分隔的事件类型和可选的命名空间,或仅仅 ...

  4. Recording︱有价值的各类AI、机器学习比赛心得、经验抄录

    今年kaggle华人优胜团队很多,所以经验.心得不少,都是干货慢慢收集. 一.[干货]Kaggle 数据挖掘比赛经验分享 github:https://github.com/ChenglongChen ...

  5. 解决在django中应用keras模型时出现的ValueError("Tensor %s is not an element of this graph." % obj)问题

    用keras训练好模型,再在django初始化加载模型,这个过程没有问题,但是在调用到模型执行model.predict()的时候就报错: raise ValueError("Tensor ...

  6. 开源中文检索引擎Coreseek简单使用

    Coreseek结合MySQL使用简单示例,如下所示: echo 北京 | iconv -f gbk -t utf-8 | search -c D:\web\coreseek\etc\csft_mys ...

  7. scrapy与scrapyd安装

    Scrapy是用python编写的爬虫程序. Scrapyd是一个部署与运行scrapy爬虫的应用,提供JSON API的调用方式来部署与控制爬虫 . 本文验证在fedora与centos是安装成功. ...

  8. 每天一个linux命令:【转载】more命令

    more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会 ...

  9. Codeforces 25E Test 【Hash】

    Codeforces 25E Test E. Test Sometimes it is hard to prepare tests for programming problems. Now Bob ...

  10. Hadoop 2.2 & HBase 0.96 Maven 依赖总结

    由于Hbase 0.94对Hadoop 2.x的支持不是非常好,故直接添加Hbase 0.94的jar依赖可能会导致问题. 但是直接添加Hbase0.96的依赖,由于官方并没有发布Hbase 0.96 ...