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