[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>