eclipse配置mondrian3.5 + jpvoit1.8 服务器jettty8:
启动报错java.lang.ClassNotFoundException: mondrian.web.servlet.MdxQueryServlet
解决方法如下:
1)将mondrian.war解压后,lib下jar包拷贝到Dynamic Project中 /WEB-INF/lib
将jpvoit.war解压后,lib下拷贝到到Dynamic Project中 /WEB-INF/lib,并且将jpivot、wcf文件夹及busy.jsp、testpage.jsp拷贝到 /WebContent下
2)或者WEB-INF/web.xml注释掉:
MDXQueryServlet
mondrian.web.servlet.MdxQueryServlet 改成 mondrian.web.servlet.MDXQueryServlet(注意大小写)
mondrian3.5中是
MdxQueryServlet
,jpivot中是
MDXQueryServlet
MDX:解析SQL
1.在WEB-INF下添加一个mondrian.properties文件,内容如下:
mondrian.rolap.generate.formatted.sql=true
2 log4j.properties(src目录)
log4j.rootLogger=WARN, MONDRIAN
log4j.appender.MONDRIAN=org.apache.log4j.ConsoleAppenderlog4j.appender.MONDRIAN.layout=org.apache.log4j.PatternLayout
log4j.appender.MONDRIAN.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
log4j.category.mondrian.sql=DEBUG
log4j.category.mondrian.mdx=MONDRIAN --对比MDX与SQL
MDX
(Multi Dimensional Expression):
OLAP多维立方体查询语言,支持定义和操作多维对象和数据,在功能上类似于关系数据库查询语言SQL。是OLAP服务器与外界交互的专用语言.
Mondrian是一个开放源代码的Rolap服务器,使用java开发。它实现了MDX语言,XML解析,JOLAP规范.它从SQL和其它数据源读取数据并把这数据聚集在内存缓存中,能够分析存储在SQL数据库中的海量数据而不需要编写任何SQL脚本。Mondrian用于数据的多维探测。它支持把MDX(Multi-Dimensional eXpression)语言转换成SQL。而且自定义了一种使用mdx语言的客户端接口。
•数据立方 :维和度量在一个特定主题范围内的集合.
•度量 :
(投影) 一个你感兴趣的一个测量值,例如, 某种产品的销量.
•维:
关联维度表一个属性, 属性的集合, 用于度量的分类. 例如, 你希望通过产品的颜色、客户的性别来区分它们的销量。在这里,颜色和性别被称之为维
•成员(
member)是指维上的一个点,是该维值集合中的一个值. 如名为gender的层次结构有两个member:‘M’ and ‘F’.
•层次结构(
hierarchy
)是为了方便分析问题而将一组member组织成的结构. 例如,store层次结构由store name, city, state, 和nation组成。
(下钻)
•
级别(
Level)人们观察数据的某个特定角度(即某个维)还可以存在细节程度不同的各个描述方面(时间维:日期、月份、季度、年)。 即维的级别
MDX转换SQL:
mondrian.properties
# Allow the use of aggregates
mondrian.rolap.aggregates.Use=true
mondrian.rolap.aggregates.Read=true
mondrian.native.topcount.enable=true
mondrian.native.filter.enable=true
# mondrian.properties
mondrian.result.limit=50000
# For XML/A JSPs
mondrian.rolap.generate.formatted.sql=true