上一篇介紹了如何配置免登錄[免登錄進入管理台]
本文主要是一步一步解釋如何在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>