可视化分析工具Qlik进阶

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/afujin/article/details/50818758

不再是商业智能BI的Congons和水晶报表用图表透视数据,不再是Flash交互增强的MSTR用图表体验数据,今天的Tableau和Qlik可视化分析技术是用可视化解读和操作数据。Qlik是一个架构灵活,高度开放的系统,下面通过三个功能点,介绍Qlik深度定制的技巧。


定制Qlik的数据导出

在Qlik中右键点击工作表Sheet中的图表控件,弹出菜单中有“导出数据”功能这个功能是从服务器下载当前分析数据集合的csv文件到本地


看到了这个数据导出逻辑,小神说这个功能太正常了我们就不用了,我们把数据导出到一张数据库表中吧。小劲就设计一个控件负责数据导出控制逻辑。使用Qlik的插件开发环境创建一个Extension,小劲起来一个有趣的名字Bird


下面是代码逻辑,遍历当前的app中的sheet,找到数据表,调用系统数据导出功能exportData,并且在exportData准备好数据后,打印一下数据文件的访问路径。不是要导出到一个数据表吗?小劲的任务是识别任务的关键路径然后做出架构方案,如果能正确捕捉到这个事件,后面就想干什么就干什么,哈哈


在app中创建一个sheet编辑,就可以找到小劲的bird控件,添加到sheet中就好


然后浏览sheet,单击一下bird插件,打开开发工具就可以发现一个临时的文件下载地址


在浏览器中输入地址验证下载文件




定制可视化交互选取条件

当代可视化分析工具的典型功能是在图示上直接用鼠标交互图元来操控数据,下面用选取操作威力:通过点击图例、标签或者绘图项来单选,可以用shift键多选


可以用一个范围选取一组绘图项


可以用套索工具,在图上画个圈圈选中你


小神看到这么出神入化的功能,说这个功能太NB了我们一定要用起来,前面做的数据导出功能不用了,我们就用数据过滤条件,直接生成导出数据吧。小劲做了一个叫Sel的控件

然后观察选取条件,发现Field和Selected的取值变化


打开app的数据加载器,可以看到Field的数据源字段定义,小劲的关键路径识别完成,qlik的这个脚本语言解析后续还要进一步了解。



定制数据服务返回结果

小神想要一个雷达图,小劲就做了一个雷达图,拷贝模板后修改的核心逻辑就是从后台数据引擎中获取维度Dimension和度量Measure,然后用echart或者d3画个图出来


小神说她特别不喜欢xiaobo,最好把数据中的xiaobo都删掉,雷达图中xiaobo要删掉,Qlik提供的标准控件中的xiaob数据也要删掉。小劲观察了一下Qlik是通过websoket和后台交互数据的

进一步观察websocket中的文本消息是一个json数据结构,查找到后端数据服务返回的数据对象如下

于是小劲搭建了一个docker的node服务做proxy.js用http-proxy库


发现Qlik使用了NTLM的安全域认证,修正http-proxy对于authorization报头的坑后,监听30002端口。发现Qlik的websoket规范实现得不标准,修正http-proxy对于Sec-WebSocket-XXX的报头的坑后,小劲的关键路径识别完成。后续删除xiaobo的记录还比较容易,但是为什么要删除呢?同样的道理,定制Qlik功能比较容易,但是定制这些功能背后的商业逻辑和商业价值是什么,值得大家去思考


展开阅读全文

没有更多推荐了,返回首页