pentaho开源商业智能平台的搭建

原创
大数据 商业智能
pentaho是世界上最流行的开源商务只能软件。它是一个基于java平台的商业智能(Business Intelligence,BI)套件,之所以说是套件是因为它包括一个web server平台和几个工具软件:报表,分析,图表,数据集成,数据挖掘等,可以说包括了商务智能的方方面面。

pentaho是世界上最流行的开源商务只能软件。它是一个基于java平台的商业智能(Business Intelligence,BI)套件,之所以说是套件是因为它包括一个web server平台和几个工具软件:报表,分析,图表,数据集成,数据挖掘等,可以说包括了商务智能的方方面面。整个系统的架构如下图:

 

根据官网的介绍,其客户包括有sunmsyql等这样知名的企业,真可谓“很好很强大”。更难能可贵的是,它是开源的,社区版完全免费!!

官网: http://www.pentaho.com/products/

sourceforge项目: http://sourceforge.net/projects/pentaho/

下面是几张使用界面的截图(123)

 

1

 

2

 

3

细心的你可能已经发现了,里面还有google maps的身影,是不是很让人兴奋呢?

 

Pentaho是跨平台的,linux,windows上都可以安装,而且安装十分简单,就两个步骤:解压,执行。

这样说来这篇文章也没啥好写的,但是这是默认情况:数据库是用的自带的HSQL,备份维护都十分不方便。这显然不是我们所希望的。如何利用mysql呢?很可惜官方文档资料十分有限,而且有用的基本上只对企业用户开放。社区的资料少还不说,而且还有错误。这真的是难坏了我们的社区用户。

这里我就以个人的经历,给大家介绍。

 

#p#

(这里说的平台即bi-server,其他的工具软件本文不涉及,因为都是下载直接运行的。)

bi-server平台是一个基于tomcat的JSP web 程序,包含两个界面:user console和administration console,分别对应的是用户控制台和管理控制台。其作用如下:

用户控制台:供用户登录进去对数据进行操作,如报表,分析等。

管理控制台:供管理员进去对用户,数据源(Data source),BI server等做全局设置。

 

一、安装预备

bi-server本身自带有tomcat server,所以不需要另外装。

bi-server本身带有测试用的sample数据,可以对它进行产生报表图表等操作,但是初始安装时这些操作仅限本机登录。

pentaho需要JRE版本>=1.5.X,所以需要首先配置好JRE环境(配置过程见附录1)。

mysql5 安装好。(此文即是介绍如何使用mysql而不是自带的hsql做数据库)。

 

我这里的安装环境是:

操作系统: Centos 5

JAVA版本:jdk1.5.0_14

Mysql版本:Mysql-5.0.45

服务器IP:192.168.0.114

 

二、基本安装

1.下载

从其sourceforge的页面上下载,下载的包为biserver-ce-2.0.0.stable.zip 这是稳定版,推荐生产环境用这个。

(注意:官方的tar.gz包解压出来没有jre子目录,会导致tomcat无法正常启动。不知道是不是发布者的疏忽。所以请大家仔细检查下载出来的包!!)

 

2.解压

我这里解压到/usr/local/pentaho目录下,解压出来的目录名是biserver-ce。

 

3.调整权限

解压后给目录加执行权限,否则脚本执行不了。

命令chmod  +x  -R  biserver-ce

 

4.启动

(注意:必须在启动脚本所在的目录下执行启动脚本,在别的目录不行!)

①执行目录下的脚本start-pentaho.sh 来启动user console

运行命令 ./start-pentaho.sh

第一次启动的时候会提示是否启动版本检查,当有新版本可用的时候会提醒的。

 

需要这个功能就直接回车,不需要的就输入cancel,如果想停止启动则输入CTRL+C

输入回车后输出如下:

 

阅读这些启动信息,可以详细了解整个启动过程都做了些什么。

查看端口开放情况

输入netstat –ant输出如下:

 

其中 8080web访问端口,9001hsql的服务端口。

②执行administration-console目录下的脚本start.sh来启动administration console

运行命令./start.sh &输出如下:

 

注: 命令./start.sh &里面的”&”符号表示是后台执行,如果不加会导致不能继续命令行输命令。

端口开放情况如下:

 

5.登录到web界面

(建议从本机登录web,因为默认安装时仅允许本机登录的用户才能对sample data进行报表操作;如果从外部的机器访问,则把下面的localhost改为机器IP,即192.168.0.114,此时虽然可以登录进去,但是不能做sample data的报表)

①登录user console

打开链接http://localhost:8080/pentaho,看到如下界面

 

选择一个用户登录以后看到的界面如下

 

登录进去后,你可以做生成报表图表等操作了。

②登录administration console

打开链接http://localhost:8099,会提示输入用户密码,分别输入admin password

登录进去以后显示的界面如下

 

6.停止

①执行目录下的脚本stop-pentaho.sh 来停止user console

输出如下:

 

端口8099已经关闭了。

 

这就是整个安装,启动,使用和停止的过程。确实很简单吧。下面要做的就是修改一些配置来使用mysql,并允许外部的机器访问。

 

#p#

1.数据库初始化

初始化的工作就是建立相关的库,导入相关的数据。为了测试报表功能,我们还需要有数据源(data source)

名词解释:

数据源(data source):也就是数据的来源。我们的报表都要由这些数据生成。在基本安装的时候pentaho自带的数据源是HSQL上的名为sampledata的数据库,现在我们需要mysql下的一个库。

pentaho自带了mysql数据库的初始化脚本,首先切换到该目录下:

cd data/mysql5/

然后下载sampledata数据库作数据源用:

wget http://www.prashantraju.com/pentaho/downloads/sampledatamysql5.sql

导入数据脚本(注意次序不能乱)

mysql -uroot -p

mysql -uroot -p

mysql -uroot -p

mysql -uroot -p

各个脚本的功能如下:

表名

功能

create_repository_mysql.sql

创建hibernate数据库

建用户hibuser,密码为password,对库有完全权限

DATASOURCE

create_quartz_mysql.sql

创建quartz数据库             

建用户pentaho_user,密码为password,对库有完全权限

建了很多QRTZ_开头的表

create_sample_datasource_mysql.sql

 

hibernate库的DATASOURCE表里面插入一个记录

数据源即是在这里定义,显示在administration console里面的Data Sources栏目里面

sampledatamysql5.sql

创建sampledata数据库和它的表

用户pentaho_userpentaho_admin,密码为password,对库有完全权限

这个库就是我们生成报表所用的数据源

完成的上面的工作以后,mysql里面就有了hibernate,quartzsampledata三个数据库和相应的用户。

 

2.修改配置文件

对配置文件修改主要是修改里面的数据库连接部分和允许外部访问的部分。

(1)配置目录 pentaho-solutions/

文件路径如下:

pentaho-solutions/

        system/

                applicationContext-acegi-security-jdbc.xml (要修改)

                applicationContext-acegi-security-hibernate.properties (要修改)

                hibernate/

                      hibernate-settings.xml (要修改)

                      mysql5.hibernate.cfg.xml (做检查,有必要的时候修改)

共有4个文件,下面针对这4个文件的修改分别加以说明:

applicationContext-acegi-security-jdbc.xml

作用:给BI server所用的Spring Security system建立JDBC认证。

修改项目

名称                 

旧值         

新值

driverClassName

(数据库访问的驱动)

org.hsqldb.jdbcDriver

com.mysql.jdbc.Driver

url

(hibernate这个库的url)

jdbc:hsqldb:hsql://localhost:9001/hibernate

jdbc:mysql://localhost:3306/hibernate 

username

(访问hibernate库的用户)

hibuser

hibuser

(root,但不推荐)

password

(访问hibernate库的密码)

password

password

(root的密码,但不推荐)

 

applicationContext-acegi-security-hibernate.properties

作用:设置属性参数用于Spring Security来建立数据库与hibernate的连接。

修改项目

名称                 

旧值         

新值

jdbc.driver

org.hsqldb.jdbcDriver

com.mysql.jdbc.Driver

jdbc.url

(hibernate库的url)

jdbc:hsqldb:hsql://localhost:9001/hibernate

jdbc:mysql://localhost:3306/hibernate

jdbc.username

(访问hibernate库的用户)

hibuser

hibuser(root,但不推荐)

jdbc.password

(访问hibernate库的密码)

password

password(root的密码,但不推荐)

hibernate.dialect

(数据库用的语言)

org.hibernate.dialect.HSQLDialect

org.hibernate.dialect.MySQLDialect

 

hibernate-settings.xml

作用:基本的hibernate设置,例如hibernate的数据库后台。

修改项目

名称              

旧值

新值

config-file

system/hibernate/hsql.hibernate.cfg.xml

system/hibernate/mysql5.hibernate.cfg.xml

 

mysql5.hibernate.cfg.xml

作用:配置hibernate数据库的mysql连接,这样就允许BI server内部的管理连接。

因为这个配置文件已经是针对mysql的了,,所以不需要修改,只是要检查确认。

名称

connection.driver_class

com.mysql.jdbc.Driver

connection.url

jdbc:mysql://localhost:3306/hibernate

connection.username

hibuser(可以改为root,但不推荐)

connection.password

password((可以改为root的密码,但不推荐)

 

(2) 配置目录tomcat/webapps/pentaho/

这是做修改网页相关的配置。

要修改的文件路径如下:

 tomcat/

             webapps/

                    pentaho/

                           WEB-INF/

                                  web.xml

                           META-INF/

                                  context.xml

下面对这2个文件分别说明:

web.xml

作用:tomcatpentaho站点启动的主配置文件,如建立所有的JSP和其他各种文件。

修改项目

名称

旧值

新值

base-url

http://localhost:8080/pentaho/

localhost保留或改为实际ip

如果是localhost,那么仅能从本机登录才能打开sampledata报表,如果是实际ip。那样就能从别的机器登录了。

 

context.xml

作用:建立hibernatequartz两者的配置文件。

做如下修改:

对于Resource name="jdbc/Hibernate"

username

更新为hibuser(或者root)

password

更新为password(或者root的密码 )

driverClassName

更新为com.mysql.jdbc.Driver

url

更新为jdbc:mysql://localhost/hibernate (需要的时候localhost后加端口号)

validationQuery

删掉这个值,或者填SELECT 1 (这个值是检查库是否可用的SQL查询)

 

对于Resource name="jdbc/Quartz"

username

更新为pentaho_user (或者root)

password

更新为password(或者root的密码 )

driverClassName

更新为com.mysql.jdbc.Driver

url

更新为jdbc:mysql://localhost/quartz (需要的时候localhost后加端口号)

validationQuery

删掉这个值,或者填SELECT 1 (这个值是检查库是否可用的SQL查询)

 

配置文件的修改就完成了,启动user consoleadministration console吧!

 

#p#

下面就需要配置数据源来使用mysql里面的sampledata做数据源,过程如下:

登录到administration console中,在administration 页面的”data sources”标签下,点左边的“sampledata”,可以看到当前使用的数据源仍就是hsql里面的 sampledata库。(如下图)

 

进行如下操作

General页下

Driver Class "com.mysql.jdbc.Driver"

User Name: pentaho_user(默认是这个,所以不改)

Password: password(默认是这个,所以不改)

URL 修改为  jdbc:mysql://localhost:3306/sampledata (根据实际的mysql端口更改)

Advanced页下

"Validation Query" 设为空或者SELECT 1

完成后如下图

 

左图为”General”页,右图为”Advanced”页。

test按钮进行测试,成功的时候会显示如下窗口

 

update按钮就保存了。这个时候就是更新了hibernate数据库的DATASOURCE表。

重新启动user console生效。

所有的任务到此完成,你可以看到已经没有到9001端口的链接了。所有的数据操作都是连接到mysql的端口3306的。

 

#p#

鉴于pentaho的相关文章相当少,而且文档里面涉及的版本也很低,所以才写了这篇文章,希望能对感兴趣的人有所帮助。

使用过程中的常见问题及可以参考的资料见附录。

 

#p#

附录1JRE环境的配置

因为jdk本身带有jre,所以就直接下jdk,方便以后安装相关软件,避免出现莫名其妙的问题。步骤如下:

1、从java.sun.com下载jdk

我下载的包是jdk-1_5_0_14-linux-i586.bin

2、将包移到/usr/local下,并给执行权限

chmod  a+x jdk-1_5_0_14-linux-i586.bin

4、执行自解压文件jdk-1_5_0_14-linux-i586.bin

 ./jdk-1_5_0_14-linux-i586.bin

阅读完license后,输入yes

5、创建必要的链接

ln -s jdk1.5.0_14 jdk

 ln -s /usr/local/jdk/jre jre

6 修改环境变量

 vi /etc/profile加入以下内容

 PATH=$PATH:/usr/local/jdk/bin:/usr/local/jre/bin:/usr/local/jdk

 JAVA_HOME=/usr/local/jdk

 JAVA_OPTS=-server

 export JAVA_HOME JAVA_OPTS

 

 CLASSPATH=.:/usr/local/jdk/lib:/usr/local/jdk/jre/lib

 export CLASSPATH

7 使环境变量生效

  source /etc/profile

 

附录2windows平台的配置

因为pentaho是垮平台的,所以按照本文的方法也适用于windows

 

附录3google maps无法显示的问题

从客户端登录user console以后,点击打开按钮或者从菜单选择打开,依次选择车轮的生产销售分析——仪表盘——”Google Maps”,若无法显示google地图,只得到如下的提示信息:

 

只需要按照提示的说明到google申请key(需要说明的是,必须要有google的账号才能申请)。申请完成后将得到的key填入到文件/usr/local/pentaho/biserver-ce/pentaho-solutions/system/google/googlesettings.xml(如下图)

 

重启pentaho,就可以正常显示了(如下图)

  

附录4:生成report时弹出”business models”无法显示的问题

登录到user console时点击”New Report”,显示如下对话框

 

这是由于登录的用户的权限不够所导致的,不能打开”business model”里面的栏目。

你用其他的用户(例如joe)登录进去就可以看到里面的栏目了(如下图)。而且用不同的用户登录会发现,不同的权限的用户,可以看到不同的内容。

 

附录:5 有用的资源

http://forums.pentaho.org/

官方论坛,注册起来有点麻烦,里面有一些有用的文档和提问解答。

http://wiki.pentaho.com/

wiki社区,提供一些文档,但是有些仅对企业用户开放,而且文档的更新速度一般。

http://wiki.pentaho.com/download/attachments/1838/community_user_guide.pdf

介绍手册

【编辑推荐】

  1. 微软靠Windows 7收复失地
  2. Windows 7的新COA标签曝光
  3. 网上出现windows7中文版免激活版下载
责任编辑:庞桂玉 来源: 51CTO
相关推荐

2011-12-14 20:02:48

IBM

2022-04-06 13:49:04

Budibase开源

2011-07-27 18:12:17

云计算大数据商业智能

2011-07-27 16:11:11

HadoopMapReduceMPP

2010-01-05 10:09:56

Linux商业智能BI

2010-12-23 14:38:54

2023-09-11 06:47:39

2010-12-07 16:09:25

2021-03-03 09:50:43

开源技术 趋势

2020-08-23 12:02:59

商业智能商业分析数据

2014-10-27 09:33:58

锐捷O2O

2015-08-17 13:07:48

数据

2013-08-29 11:24:31

大数据

2016-11-24 11:48:44

BI商业智能数据

2011-03-27 23:28:11

ibmdwBICognos

2016-06-13 13:43:27

用友优普

2016-03-03 11:52:27

Infor商业智能

2010-01-05 10:02:55

商业智能软件

2021-04-25 11:25:07

开源 数字化转型商业市场
点赞
收藏

51CTO技术栈公众号