为什么要整合?
Kylin是通过离线预计算将Hive中事实表的各组合维度的值存储在Hbase中,在前端可实时展现。但是kylin的多维查询需要写SQL,对于不会写SQL的数据分析人员或者业务人员来说,OLAP交互并不是很友好,而且图表展示也不丰富。如果能将saiku和kylin整合,Mondrian是基于关系型数据库的ROLAP(现在也支持Hive了,但查询慢),Kylin是MOLAP,saiku做前端交互,岂不美哉。
Saiku访问Kylin中数据
感谢开源项目mustangore为saiku与kylin的连接做了补丁,按照项目里说的步骤配置好,saiku就可以访问kylin中的数据。这里需要注意的是saiku中kylin-jdbc需要加入kylin同版本的jar,不能用项目中的 kylin-jdbc-1.0-incubating.jar
部署saiku和kylin
之前打算将kylin中的kylin.war分离出来部署(即将war包拷贝到tomcat webapp目录下就可启动),但是发现启动脚本kylin.sh与hadoop,hive,hbase结合太紧密,kylin是用hbase启动Tomcat的,难度颇大。
有已经成功分离,运行正常的朋友,感谢告诉我下!
这里我是将saiku的ROOT.war,saiku.war和kylin.war拷贝到同一个webapp目录下,用kylin.sh启动Tomcat,运行正常。由于我的saiku是经过定制的,将H2换成PG数据库,在启动saiku的时候报错:
PSQLException: FATAL: invalid value for parameter "TimeZone": "PST"
将kylin.war删除,单独用kylin.sh启动时,saiku又不报错。后面明白是kylin启动时设置了时区为PST。
解决方法:修改saiku时区为北京时区,set “kylin.rest.timezone=GMT+8” in kylin.properties.