作者:哟哟哈哈呼呼 | 来源:互联网 | 2023-08-29 02:59
Mondrain踩坑概述
采用Flexmonster组件,使用Mondrain通过代理的方式连接Kylin
遇到的问题:
编写Schema的时候,访问多表时,Mondrain将连接会自动解析为等值连接,类似 select * from A,B where.....
但是Kylin不支持这种语法,Kylin支持 select * from A join B on .....
同样在saiku中多表关联 也会遇到这样的问题。
Saiku问题fix
参考 https://github.com/mustangore/kylin-mondrian-interaction 的做法,但是需要将Kylin jdbc的 jar包换成最新的,1.0不适用
Flexmonster问题Fix
saiku最新版本使用的Mondrain是4版本,为了尽量少踩坑,采用flexmonster官网提供的mondrain4版本。
思路:使用 https://github.com/mustangore/kylin-mondrian-interaction 上面提供的 mondrian-4.4-lagunitas-SNAPSHOT-with-kylin-dialect.jar ,对Flexmonster官网提供的代理jar包 mondrain做修改
修改部分:
1. mondrian-4.4-lagunitas-SNAPSHOT-with-kylin-dialect.jar\mondrian 文件夹下面 覆盖 flexmonster-proxy-mondrian-4.jar\mondrian 下面的重名class文件
2.mondrian-4.4-lagunitas-SNAPSHOT-with-kylin-dialect.jar\META-INF\services 文件夹下面的覆盖flexmonster-proxy-mondrian-4.jar\META-INF\services 下的重名文件