公司希望也開發一套多維分析系統,以解決運營/產品無休止的需求和技術人力不足的矛盾!
一、開發選型:
一、BIRT:易用性差,所以沒再使用
二、JasperReport+ireport:文檔收費,不支持ETL工具
三、Pentaho:在中國比較普及,文檔多,報表是其中的一部分,比如數據同步和ETL也都有
四、Openi:老牌BI工具,以前淘寶等公司都使用過,可惜過時啦
結合公司實際,綜合考慮決定使用Pentaho的saiku做為報表平台
二、搭建環境:
選型結束后,就開始准備,搭建環境!
方案一、下載源代碼,編譯安裝
git地址:https://github.com/OSBI/saiku
clone下來之后,按照ReadMe安裝,可是各種jar包找不到(嘗試翻牆和多種版本)沒有解決問題之后放棄了,下面是報錯的信息(如果哪位高手解決了下面的問題,望不吝賜教):
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Saiku Module Project ............................... SUCCESS [ 15.192 s] [INFO] saiku - core libraries ............................. SUCCESS [ 8.457 s] [INFO] saiku olap util .................................... SUCCESS [09:05 min] [INFO] saiku - services ................................... FAILURE [25:41 min] [INFO] saiku - web ........................................ SKIPPED [INFO] saiku-ui ........................................... SKIPPED [INFO] saiku - webapp ..................................... SKIPPED [INFO] saiku-server ....................................... SKIPPED [INFO] saiku biserver plugin .............................. SKIPPED [INFO] saiku biserver plugin .............................. SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 35:21 min [INFO] Finished at: 2016-02-04T21:22:34+08:00 [INFO] Final Memory: 35M/145M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project saiku-service: Could not resolve dependencies for project org.saikuanalytics:saiku-service:jar:3.7.4: Failed to collect dependencies at org.saiku:saiku-query:jar:0.1-SNAPSHOT -> pentaho:mondrian:jar:4.3.0.1-SPARK: Failed to read artifact descriptor for pentaho:mondrian:jar:4.3.0.1-SPARK: Could not transfer artifact pentaho:mondrian:pom:4.3.0.1-SPARK from/to atlassian2 (http://repository.opencastproject.org/): repository.opencastproject.org:80 failed to respond -> [Help 1]
方案二、直接安裝
- 下載源代碼:http://community.meteorite.bi/
- 解壓:saiku-latest.zip(版本是saiku 3.7 Released)
- 啟動:我使用的是OSX系統,所以直接運行腳本:start-saiku.sh
- 查看結果:
三、配置
1、填寫schema
選擇Admin Console,再選擇Add Schema,如下圖:
上傳saiku.xml,內容如下:
<Schema name="test_schema"> <cube name="test_cube"> <Table name="t_data"/> <Dimension name="user" foreignKey="user_id"> <Hierarchy hasAll="true" allMemberName="user_id" primaryKey="user_id"> <Table name="t_user"/> <Level name="user_id" column="user_id" uniqueMembers="true" type="Integer"/> </Hierarchy> </Dimension> <Measure column="count" aggregator="sum" datatype="Numeric" name="all_count" caption="all_count"/> </cube> </Schema>
2、添加數據源,我使用的是postgresql
首先添加數據表:
CREATE TABLE t_data
(
user_id integer, count numeric(4,2) ); CREATE TABLE t_user ( user_id serial NOT NULL, user_name character varying(50), pwd character varying(50) ); --t_data的數據 1;33.00 2;32.00 3;34.00 4;38.00 2;23.00 2;3.00 --t_user的數據 1;"user1";"1" 2;"user2";"2" 3;"user3";"3" 4;"user4";"4"
3、添加數據源
其中url的格式是:jdbc:postgresql://l-***.tkt.cn6.***.com:5432/saiku
查看數據
拖動字段到如下位置即可:
四、參考:
saiku開源的github地址:https://github.com/OSBI/saiku
saiku安裝過程:http://blog.csdn.net/gsying1474/article/details/45918275
五、后記
我會持續跟進saiku的使用,在以后的博文中會介紹schema的編寫規范,英文文檔鏈接如下:http://mondrian.pentaho.com/documentation/schema.php