假定Qlik + Kylin各自服务正常

1,Qlik Server安装ODBC驱动

在Qlik Server所在的机器上安装好,如果QlikServer是集群模式,则需要在每个节点都安装配置上数据源
配置ODBC数据源:
打开控制面板,管理工具,ODBC数据源中系统DSN,选择添加,选中Kylin驱动,按照如下格式配置, 点击connect 选择project
odbc_config

二、Qlik 加载数据
按正常的流程选择数据源,加载数据到QlikServer是不能正常工作的,会提示一直在加载,都停不下来
某位西班牙同胞使用了直接通过脚本方式加载
进入数据加载编辑器
细节可以看西班牙哥们的github : https://github.com/albertoRamon/Kylin/tree/master/KylinWithQlik
该方法还是用传统的Qlik分析方式,先把fact table lookup table 加载到Qlik Server 的内存,然后再做OLAP分析,这种方式有很多弊端,其一,数据量大的情况加载耗时长 ,容易导致内存耗尽服务崩溃  其二,没有发挥出Kylin 亚秒级查询的快感。
这里我们不继续深入,我们今天讨论的重点是 如何将查询分发到Kylin来做
三、Qlik Direct Query
在调研过程中也是有不少坑的,直接上方法
1,参数配置:
SET DirectConnectionMax=100;   //设置连接池,增加查询并发
SET DirectDistinctSupport=’false';  // kylin 是不支持 distinct 查询的
SET DirectEnableSubquery=’false’ ;  //kylin同样不支持Subquery
这三个参数配置上就能非常顺利的进展了,否则需要结合kylin.log去排查原因
2,Direct Query脚本写法:
3,加载数据
执行加载可以发现非常迅速的就完成了,实际上Direct Query方式只是加载了所有的维度数据到Qlik,而明细数据和Measure都不加载,如下图,一亿多条记录的事实表加载只用了9秒钟
 接下来就可以按正常流程去创建Qlik 应用做多维分析了

实测发现对于上亿条数据的事实表,查询维度数较少的Query基本都是毫秒级响应,维度数在2.5万的,响应时间也在3秒左右
该方案不需要担心数据量的问题了,上百亿也能轻松解决。