Pentaho部署常見問題
Pentaho Q&A List
下面鏈接為此文檔的PDF格式:
http://dl.iteye.com/topics/download/80c28022-bbf0-3b3a-9bb3-6dcc066b7135
作者: http://flyfoxs.iteye.com
目錄
1. 柱狀圖(Bar Chart),和折線圖(Line Chart)的區別
2. 折線圖(Line Chart) 和 xy折線圖(XY Line Chart)區別
3. Pentaho 泡泡圖(buddle chart)
4. Jpivot 出圖時,隱藏All
5. 數據太多時,如何將X軸稀疏顯示
6. Pentaho Report Designer開發時,如何在一個Report中顯示2個圖形(Chart)
7. inline subreport與banded subreport的區別
8. 如何在Pentaho Report Designer中使用變量/參數
9. Pentaho User Console 多語言
10. Pentaho(OLAP) Jpivot圖片亂碼, Pentaho Report(Chart)亂碼
11. Session 超期
12. 發布元數據(metadata)后,Server日志出現亂碼,即時報表無法顯示多語言
13. Jpivot工具欄的解說
14. 設置發布密碼(發布report, metadata)
15. 修改Log級別(可以打印出詳細的錯誤,比如MDX對應的SQL)
1.柱狀圖(Bar Chart),和折線圖(Line Chart)的區別
通過下圖,可以很明顯的看到柱狀圖和折線圖的區別,就是當數據不連續的時候,折線圖會”默認”的隱藏數據.導致報表失去精確性.當然這個也是可以彌補的,也就是這個只是默認行為.如何彌補,可以參考折線圖與XY折線圖的區別.
2.折線圖(Line Chart) 和 xy折線圖(XY Line Chart)區別
當數據不連續時,折線圖可以選擇通過標記顯示出不連續的點來標明數據的存在,在XY Line Chart上面我沒有找到這樣的選項. 下面就是相關選項及對應的顯示結果
l 當坐標密度比較大的時候,XY 折線圖可以控制顯示間隔,但是折線圖做不到. XY折線圖如何做到的,可以參考官方例子. prd-ce-3.9.0-GA/report-designer/samples/Charts/XY Line Chart.prpt. 請注意高亮的參數
3. Pentaho 泡泡圖(buddle chart)
個人覺得官方示例里面的泡泡圖是不對的(也許是我不太理解),查看其參數后發現,series-by-field這個參數很多余,如果這個參數選擇了Productname,那么一個Productname只能在圖表上有一個泡泡,並且是選擇最后一個出現的數據.
這樣就會導致下面的數據,無法在Pentaho通過泡泡圖來展現.針對同一產品,我們做了這樣一組數據(這組數據只是為了說明問題虛構的,不一定合理).那么在Pentaho的泡泡圖上面就只會有一個泡泡.但是通過Excel可以很容易的得到4個泡泡.
cost |
budget |
revenue |
product |
1 |
2 |
3 |
food1 |
2 |
3 |
4 |
food1 |
3 |
4 |
6 |
food1 |
4 |
5 |
4 |
food1 |
有一種折中的辦法,就是把product這一列用一個肯定不會重復的數來替代,這樣Pentaho,就可以顯示出正確的泡泡圖了.
4.Jpivot 出圖時,隱藏All
Jpivot提供了很強的OLAP分析,有一個很實用的功能就是顯示圖表.但是如果不留意,就會在圖表中引入了匯總數據,也就是下圖的高亮部分.這個時候,我們其實想要的是通過圖表同一個級別的信息,但是查看生成的圖,你就會發現匯總部分被帶入進圖表了,這個圖表就很容易讓人誤解了(紅色的總是占了剛好一半).
解決辦法:點擊上圖高亮的Drill Replace按鈕,得到下面的結果,然后點擊高亮的向下的箭頭.再看看圖片,你就會得到很直觀的圖片了.
5. 數據太多時,如何將X軸稀疏顯示
可以參考下面的Blog,由於我找到了其他的方案,所以沒有驗證了.我的解決方案就是使用XY-Line Chart就可以很容易的指定坐標間隔.如果指定,可以參考[折線圖(Line Chart) 和 xy折線圖(XY Line Chart)區別]
http://www.itisbi.com/thread-72-1-1.html
6. Pentaho Report Designer開發時,如何在一個Report中顯示2個圖形(Chart)
Pentaho不像Cognos,Cognos一個報表里面可以很容易的顯示多個List或者圖標.Pentaho只能使用 sub report的形式來實現,因為一個Report里面只能有一個激活的結果集. 開發過程總發現Report沒有數據,就有一個可能是沒有Active的結果集.
Pentaho的Sub Report有2種: inline subreport,banded subreport這2種Report的區別,在下一問題中進行詳細解說.
7.inline subreport與banded subreport的區別
說簡單點就是2總Report的大小不一樣,inline是固定的,精確根據你指定的大小來. 而banded則是根據里面內容多少來確定Report的大小.
但你不知道你的數據有多少的時候,你就需要考慮使用banded.反之則可以選擇banded.
參考文檔:
http://wiki.bizcubed.com.au/xwiki/bin/view/Pentaho+Tutorial/+inline+vs+banded
8. 如何在Pentaho Report Designer中使用變量/參數
下面這個文檔里面詳細的講述了,如何在PRD中使用各種查詢時,如何使用SQL.有需要可以直接去看.
http://diethardsteiner.blogspot.com/2009/11/using-parameters-in-pentaho-report.html(網址被牆,需要使用代理訪問)
9. Pentaho User Console 多語言
Pentaho對於多語言的支持,大部分可以很容易的根據感覺找到.比如即時報表(ad hoc report),在定義Metadata時,就可以對各個字段設置對應的多語言.但是Pentaho User Console的多語言,卻不是很好找.下面截圖是官方示例的效果.
要實現這個多語言,主要是看2個文件,一個是index.xml,一個是index_jp.properties. 文件內容可以參考官方示例.關鍵是修改name對應的值,其他的可以不用修改. Name對應的指,你要轉換為ascii才可以,你可以使用在線工具:
http://www.00bug.com/native2ascii.html
http://tool.chinaz.com/Tools/native_ascii.aspx
10. Pentaho(OLAP) Jpivot圖片亂碼, Pentaho Report(Chart)亂碼
我在使用Pentaho的時候,亂碼遇到的不多,主要是2處,一處是發布metadata時,另一處就是Pentaho生成的圖片.
在PentahoReport使用jfreechart生成圖片(比如在PRD中引入Chart圖表,或者在OLAP時,使用Jpivot生成圖表),如果你只是生成圖片有亂碼,報表能正常顯示文字,那么恭喜你,我能幫你解決這個問題.(你也可以手工輸入一個漢字到Report中,如果能夠正常顯示那么問題就能更確定了)
其實問題的根本原因,就是缺少字體,你如果想了解的更細致,可以參考如下鏈接.在Centos系統中,可以直接使用下面命令安裝字體,然后重啟bi-server即可.
yum list | grep -i font | grep japanese yum install fonts-japanese
http://space.baidu.com.cn/yanghlcn/blog/item/8e29afa48dfa23fc9152ee2d.html http://zhanghaoeye.iteye.com/blog/708211
11. Session 超期
在開發時,經常走開會再回來,BI-Server就會讓你重新輸入密碼,這個很討厭,可以修改如下配置,防止Session超期:
vi ./webapps/pentaho/WEB-INF/web.xml
<!--insert additional servlet mappings --> <session-config> <session-timeout>30</session-timeout> </session-config>
12. 發布元數據(metadata)后,Server日志出現亂碼,即時報表無法顯示多語言
雖然目前找到了解決辦法,但是對於原因細節還是不明白.猜想是因為服務器和客戶端對於Unicode的編碼方式不一樣,導致出現亂碼.
解決辦法就是,按照高亮部分修改客戶端啟動腳本
(pme-ce-4.5.0-stable\metadata-editor\metadata-editor.bat)
set OPT=-Xmx256m -cp %CLASSPATH% -Djava.library.path=%LIBSPATH% -Dfile.encoding="UTF-8"
|
下面是我遇到的錯誤異常
Caused by: org.xml.sax.SAXParseException; lineNumber: 5585; columnNumber: 61; Invalid byte 3 of 3-byte UTF-8 sequence. at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) at org.pentaho.metadata.util.XmiParser.parseXmi(XmiParser.java:905) ... 70 more Caused by: org.apache.xerces.impl.io.MalformedByteSequenceException: Invalid byte 3 of 3-byte UTF-8 sequence. at org.apache.xerces.impl.io.UTF8Reader.invalidByte(Unknown Source)
|
13. Jpivot工具欄的解說
這個工具欄的大部分按鈕還是很好理解的,比如打印,生成圖片,導出Excel,我只是挑出幾個個人不好理解的幾個比較說明一下.
l OLAP Navigator
點擊粉紅色的按鈕,可以決定這個維度是出現在行,還是列中顯示.
點擊黃色的按鈕,可以決定這個按照這個信息過濾. 不過這個功能再有些版本中是有Bug的,在biserver-ce-4.5.0時已經fixed了.
三角形的按鈕,排序按鈕,這個是很好理解的.
如果你有多個度量(measure),默認只顯示一個,你可以點擊Measures這個鏈接進行設定.
l Suppress Empty Rows/Columns
這個按鈕說通俗點就是是否顯示空數據,比如在OLAP分析時經常會遇到稀疏數據,比如夏天一款棉襖的銷量,這個時候就可以通過這個按鈕隱藏這些數據.
這個按鈕的效果,也可以通過MDX SQL Editor很明顯的發現,這個按鈕剛好對應關鍵字”NON EMPTY”
l Drill Member/Drill Position
這2個按鈕要對比來解釋,他們的區別就在於當你已經展開了一個維度,展開第二個維度時的區別.下面通過圖片來對比:有圖有真相.
對比2個圖片發現,當選擇Drill Member時,你展開第二個維度(Department)時,所有的Department都會展開.但是如果你選擇Drill Position,只會展開你選擇的那部分.
另外一點,就是這個按鈕是互斥的.
l Drill Replace
這個按鈕可以解決上面提到的OLAP生成Chart時,總是帶入匯總數據的問題.
l Drill Through
這個很簡單了,就是讓你Drill Through,點擊高亮的箭頭就可以了.
l Show Chart/Chart Config
這2個按鈕的作用很明顯,只是有幾點需要說明.
如果生成圖片時,同時生成了匯總數據部分,你可以參考: [Jpivot 出圖時,隱藏All]
如果圖片沒有生產出來,可能是圖片太大了,你需要調整圖片高度和寬帶
如果生成的圖片有亂碼,那是因為沒有對應的字體,你可以參考上面關於亂碼部分的說明
14. 設置發布密碼(發布report, metadata)
這個密碼必須設置,默認為空,是不能發布Report和metadata的
vi biserver-ce/pentaho-solutions/system/publisher_config.xml
15. 修改Log級別(可以打印出詳細的錯誤,比如MDX對應的SQL)
./server/biserver-ce/tomcat/webapps/pentaho/WEB-INF/classes/log4j.xml