Saiku成立于2008年,由Tom Barber和Paul Stoellberger研发。最初叫做Pentaho分析工具,起初是基于OLAP4J库用GWT包装的一个前端分析工具。经过多年的演化、重写之后,于2010年,改名为Saiku。
Saiku是一个轻量级的OLAP分析引擎,可以方便的扩展、嵌入和配置。Saiku通过REST API连接OLAP系统,利用其友好的界面为用户提供直观的分析数据的方式。它的界面使用HTML、CSS和Javascript实现,从而使得它非常容易自定义。通过使用REST的标准,服务器可以很容易地集成到不同的用户界面和第三方应用程序上,唯一的要求是第三方应用程序可以发送和接受HTTP通信和接收JSON格式的数据。客户端程序不需要了解MDX和相关的查询语言。
Saiku的安装
1、下载Saiku
Saiku的官方网站(www.analytical-labs.com)常常处于不可访问状态,所以很难通过官方网址下载到最新版Saiku Server。推荐从以下地址下载:http://community.meteorite.bi/,实在不行可到GITHUB上去直接下载源代码:https://github.com/OSBI/saiku
2、安装JDK
需要注意的千万不要使用1.8,使用1.7或者1.6即可,最新版的JDK有非常大的兼容性问题,存在安装后Saiku不能运行的情况。在这个点上,本人被坑了好长时间。安装完JDk以后不要忘了设置环境变量。
环境变量设置:
JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径C:\Program Files\Java\jdk1.7.0_75
Path使得系统可以在任何路径下识别java命令,设为:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)
Update:JDK不能使用1.6,使用1.6版本的JDK会引发如下问题,导致程序不能正常运行:
The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NoClassDefFoundError: java/nio/charset/StandardCharsets
3、安装Saiku
安装Saiku的过程非常的简单,直接将下载到的saiku-latest.zip解压出来即可。我存放的目录为:E:\saiku-server
Saiku默认使用的站点端口是:8080,如果你的端口已经被占用了,可通过saiku-server/tomcat/conf/server.xml修改端口。
运行E:\saiku-server目录下的start-saiku.bat启动服务。打开http://localhost:8080/,发现一直是加载状态。一定是启动的时候出错了。打开E:\saiku-server\tomcat\logs目录,查看catalina开头的日志文件,先找到第一个报错信息:
The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path
通过Google知道,Tomcat Native 是利用 APR 来提升Tomcat性能的本地API,Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。Apache Tomcat Native library可以通过以下地址进行下载:http://tomcat.apache.org/download-native.cgi,并将下载到的tcnative-1.dll文件复制到C:\Windows\System32目录即可。
解析来解决第二个错误:
2015-2-16 9:50:54 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(E:\saiku-server\tomcat\webapps\saiku\WEB-INF\lib\servlet-api-2.3.jar) – jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
2015-2-16 9:50:54 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(E:\saiku-server\tomcat\webapps\saiku\WEB-INF\lib\servlet-api-2.5-20081211.jar) – jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
2015-2-16 9:50:54 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(E:\saiku-server\tomcat\webapps\saiku\WEB-INF\lib\servlet-api-2.5-6.1.9.jar) – jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
出现上述错误的原因是存在多个servlet-api(E:\saiku-server\tomcat\lib目录下已存在),导致无法正常自动加载。解决方案是将servlet-api-2.3.jar,servlet-api-2.5-20081211.jar和servlet-api-2.3.jar这两个包删除即可。
再次重新启动,就可以看到登陆界面了。使用,账号admin,密码admin即可完成登录,登录后可以看到没有任何数据存在。与数据库的链接在后续的博文中再做补充。