Saiku安裝及基礎配置
Saiku是一個輕量級的OLAP分析引擎,可以方便的擴充套件、嵌入和配置。Saiku通過REST API連線OLAP系統,利用其友好的介面為使用者提供直觀的分析資料的方式。它的介面使用HTML、CSS和Javascript實現,從而使得它非常容易自定義。通過使用REST的標準,伺服器可以很容易地整合到不同的使用者介面和第三方應用程式上,唯一的要求是第三方應用程式可以傳送和接受HTTP通訊和接收JSON格式的資料。客戶端程式不需要了解MDX和相關的查詢語言。
文件地址
http://wiki.meteorite.bi/display/SAIK/Saiku+Features
下載
下載最新的saiku社群版,目前版本是3.8.8:
www.meteorite.bi/downloads/saiku-latest.zip
啟動安裝註冊
下載後進入saiku-server目錄,通過start-saiku.bat(Linux下執行start-saiku.sh)可以啟動saiku。如果正常,啟動後通過你機器的8080埠 (瀏覽器裡visit http://localhost:8080 ),可以訪問到的saiku的登陸頁面。預設情況下,saiku的管理員賬戶和密碼均是admin,但直接登陸後,會提示:
Could not find license, please get a free license from http://licensing.meteorite.bi.
You can upload it at http://server:8080/upload.html
這種情況是因為目前即使是社群版,也需要在saiku上註冊:
http://licensing.meteorite.bi/licenses
訪問上述網址,可能會提示使用者登陸,需要先註冊使用者。註冊的時候可以隨便寫賬戶和密碼,郵箱一定要自己常用的,因為它會發送一個郵件到你的郵箱,通過郵箱的連線登陸後,可以看到:
LICENCE Create new licence List all licences COMPANY Create new company List all companies
這樣的目錄結構,我的情況是,需要先建立一個company,然後再建立licence (company在licence中是必選的),licence的hostname就填寫你機器的IP(我沒有試過其它是否可以),下載licence檔案到本地,然後再通過
http://localhost:8080/upload.html%E5%B0%86%E8%BF%99%E4%B8%AAlicence%E6%96%87%E4%BB%B6%E6%8F%90%E4%BA%A4%E4%B8%8A%E5%8E%BB%EF%BC%8C%E6%95%B4%E4%B8%AA%E6%B3%A8%E5%86%8C%E8%BF%87%E7%A8%8B%E5%B0%B1%E5%AE%8C%E6%88%90%E4%BA%86%E3%80%82
註冊完成後,通過admin/admin可以登陸進入saiku。
埠設定
預設情況下,saiku啟動在8080埠,如果需要更改,可以修改saiku-server/tomcat/conf/server.xml裡的port配置,比如把8080全部替換為9090。
許可權控制
saiku server的許可權控制主要通過tomcat設定:
tomcat/webapps/saiku/WEB-INF
其中applicationContext-saiku.xml會引用applicationContext-spring-security.xml,後者預設會採用jdbc設定,在applicationContext-spring-security-jdbc.xml中配置dataSource:
<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/admin" />
<property name="username" value="填寫你的使用者名稱" />
<property name="password" value="填寫你的密碼" />
</bean>
資料來源連線
在saiku中,我們需要通過預定義的Cube來指定資料訪問。Cube是OLAP中的一個邏輯概念,通過對物理資料表的描述,將資料劃分為dimension和metric(在saiku中為measure)。saiku中的Cube通過xml描述,具體含義可以參考這裡,後續有機會我會詳細介紹。 因此,假設我們已經建立好Cube對應的xml,以及資料庫中對應的fact表和dimension表,那麼我們還需要告訴saiku如何找到它們。
這裡有兩種引入方式,我在2.5版本(公司穩定版)和3.8版本(最新版)上採用的分別是配置檔案匯入和介面匯入:
配置檔案匯入 通過在tomcat/webapps/saiku/WEB-INF/classes/saiku-datasources中新建檔案配置:
type=OLAP
name=xxx
driver=mondrian.olap4j.MondrianOlap4jDriver
location=jdbc:mondrian:Jdbc=Jdbc:mysql://xxx/dbname;Catalog=<your_xml_path>
其中type一般是OLAP,name表示你Cube的名詞,driver選擇mondrian,它是saiku內部使用的資料處理引擎,支援MDX查詢 (從這個角度說,saiku更像是查詢平臺),location裡分別指定xml位置和mysql連線方式。
配置完成後,重啟saiku,你需要的資料已匯入。
介面匯入 以管理員身份登陸saiku,然後在介面點選上“A”(如果看不到,可能不是以管理員角色登入),然後分別新增Data Source和Schema,其中Data Source處可以選擇Advanced,然後拷貝上面內容
type=OLAP
name=xxx
driver=mondrian.olap4j.MondrianOlap4jDriver
location=jdbc:mondrian:Jdbc=Jdbc:mysql://xxx/dbname;Catalog=<your_xml_path>
配置完畢後重啟saiku。