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

本文主要是一步一步解释如何在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>
04-16 15:36