公司希望也開發一套多元分析系統,以解決營運/産品無休止的需求和技術人力不足的沖突!
一、開發選型:
一、BIRT:易用性差,是以沒再使用
二、JasperReport+ireport:文檔收費,不支援ETL工具
三、Pentaho:在中國比較普及,文檔多,報表是其中的一部分,比如資料同步和ETL也都有
四、Openi:老牌BI工具,以前淘寶等公司都使用過,可惜過時啦
結合公司實際,綜合考慮決定使用Pentaho的saiku做為報表平台
二、搭建環境:
選型結束後,就開始準備,搭建環境!
方案一、下載下傳源代碼,編譯安裝
git位址:https://github.com/OSBI/saiku
clone下來之後,按照ReadMe安裝,可是各種jar包找不到(嘗試FQ和多種版本)沒有解決問題之後放棄了,下面是報錯的資訊(如果哪位高手解決了下面的問題,望不吝賜教):
[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的英文wiki位址:http://wiki.meteorite.bi/display/SAIK/Saiku
五、後記