[saiku] 在 Tomcat 下部署 saiku

 

上一篇介绍了如何配置免登录[免登录进入管理台

本文主要是一步一步解释如何在Tomcat下部署saiku,为了让你更好更快的使用。

开始之前,假设你已经比较熟悉数据集市数据库,以及如何建立Mondrian Schema。

 

1. 下载相关程序

saiku-ui.war
saiku-webapp.war

2. 重命名war文件

saiku-ui-2.5.war 修改成 ROOT.war; 
saiku-webapp-2.5.war 修改成 saiku.war;

3.拷贝文件到发布路径

拷贝两个war文件到tomcat/webapp目录下 
启动tomcat

4.访问登陆

在浏览器中输入:http://localhost:8080,可以看到Saiku的登录页面。
输入admin/admin登录Saiku。

恭喜,Saiku已经部署成功了。
但是目前你不能从下拉框中选择cube,需要进一步配置。

5.配置Saiku使用cubeSchema 和数据库

1)停止tomcat 拷贝相应的 JDBC 数据库驱动到lib下

2)声明cube

A 拷贝编写好的 sales_mondrian_schema.xml 文件到
tomcat/webapps/saiku/WEB-INF/classes/saiku-datasources/

B 新建文件 sales.txt(扩展名无所谓)拷贝到
tomcat/webapps/saiku/WEB-INF/classes/saiku-datasources/

C 在sales.txt中写入如下内容:
#declaration of Sauce Dallas sales cube for Sakiu
type=OLAP
name=SauceDallas
driver=mondrian.olap4j.MondrianOlap4jDriver
location=jdbc:mondrian:Jdbc=jdbc:mysql://localhost/1_tutorialSaiku;Catalog=res:saiku-datasources/sales_mondrian_schema.xml;JdbcDrivers=com.mysql.jdbc.Driver;
username=root
password=7777

配置说明:
type=OLAP指定一个 OLAP 引擎.没有见过非OLAP的属性值。
name : 给你的数据源命名。
driver: 指定 Mondrian driver(将二维关系表转化为多维度表的驱动).没有见过其他的属性值。
location :这个属性有几个部分组成,使用分号分隔。

jdbc:mondrian:Jdbc=jdbc:mysql://localhost/1_tutorialSaiku :
指定数据库对应jdbc url,前面部分不需要改动,仅仅需要修改主机和对应的数据库名称。这里的主机是localhost,对应数据库是1_tutorialSaiku

Catalog=res:saiku-datasources/sales_mondrian_schema.xml
指定mondrian schema文件。res表明是文件的路径,这里是从saiku webapp目录开始;

JdbcDrivers=com.mysql.jdbc.Driver
指明java 类文件作为数据库连接驱动。

3)启动 tomcat 

现在下拉框中应该可以看到对应的cube
你可以拖动维度、度量到对应的轴建立交叉表
并可以使用图表来展示或分析对你公司有用的信息

 

附录:pentaho数据库HSQLDB迁移至mysql步骤

1.在本地mysql数据库执行数据库脚本

pentaho自带了mysql数据库的初始化脚本
在目录 D:\biserver-ce\data\mysql5下

通过 navicat for mysql 按如下顺序依次导入mysql脚本:create_repository_mysql 
create_quartz_mysql
create_sample_datasource_mysql

1)create_repository_mysql.sql 
创建hibernate数据库,建用户hibuser,密码为password,对库有完全权限,建DATASOURCE表。 

2)create_quartz_mysql.sql 
创建quartz数据库,建用户pentaho_user,密码为password,对库有完全权限,建了很多QRTZ_开头的表 

3)create_sample_datasource_mysql.sql 
向hibernate库的DATASOURCE表里面插入一个记录,数据源即是在这里定义,显示在管理控制台里面的Data Sources栏目里面

2. 修改JDBC配置信息

修改 D:\biserver-ce\pentaho-solutions\syste 目录下的 
applicationContext-spring-security-jdbc.xml
目的:给BI server所用的Spring Security system建立JDBC认证。 
对应值修改后应为: 

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
<property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
<property name="url" value="jdbc:mysql://localhost:3306/hibernate" /> 
<property name="username" value="hibuser" /> 
<property name="password" value="password" /> 
</bean>

3. 修改同一目录下的applicationContext-spring-security-hibernate.properties文件
目的:用于Spring Security来建立数据库与hibernate的连接。 
将文件中设置修改为如下: 
jdbc.driver=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://localhost:3306/hibernate 
jdbc.username=hibuser 
jdbc.password=password 
hibernate.dialect=org.hibernate.dialect.MySQLDialect

4. 修改目录D:\biserver-ce\pentaho-solutions\system\hibernate下的 hibernate-settings.xml文件。 
目的:基本的hibernate设置,例如hibernate的数据库后台。

修改成如下所示: 
<config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>

5. 确认文件目录D:\biserver-ce\pentaho-solutions\system\hibernate下的文件mysql5.hibernate.cfg.xml 
作用:配置hibernate数据库的mysql连接,这样就允许BI server内部的管理连接。 应该的配置是: 
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property> 
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> 
<property name="connection.username">hibuser</property> 
<property name="connection.password">password</property>

6. 配置D:\biserver-ce\tomcat\webapps\pentaho\WEB-INF目录下的web.xml文件 
设置为: 
<context-param> 
<param-name>base-url</param-name> 
<param-value>http://192.168.0.60:8080/pentaho/</param-value> 
</context-param> 
说明:如果是localhost,那么仅能从本机登录才能打开sampledata报表,如果是实际ip。那样就能从别的机器登录了。

7. 修改D:\biserver-ce\tomcat\webapps\pentaho\META-INF目录下的context.xml文件。 
目的:建立hibernate和quartz两者的配置文件。 
<Context path="/pentaho" docbase="webapps/pentaho/"> 
<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource" 
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5" 
maxWait="10000" username="hibuser" password="password" 
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/hibernate" 
validationQuery="select 1"/> 
<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource" 
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5" 
maxWait="10000" username="pentaho_user" password="password" 
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/quartz" 
validationQuery="select 1"/> 
</Context>

 

posted @ 2015-10-14 21:49  Aviva_ye  阅读(3071)  评论(1编辑  收藏  举报