轻量级 BI 应用 -Superset 实践
项目背景
鉴于本人所在公司对于大数据的应用处于起步阶段,人才队伍也有限的情况下,尚不足以支持从0开始做一个BI平台,而公司各部门对于数据分析&可视化的需求非常迫切,各部门也在各自为战,大部分都是在自研web可视化。本人所处部门为通用技术部门,因此在充分的调研下,在内部开始宣讲superset平台,并在1年后的某个项目上终于将此平台经过二次开发实践落地。此平台经过二次开发并私有化部署后,加入了本公司的一些个性化改进,并逐步支持所有业务线的数据可视化需求。从业务数据同步到数据建模,从自建维度、量度进行自助分析探索(类似Tableau的探索分析),到生成可视化图表、仪表板,以及用户权限控制等一系列的功能,此平台都已完成。
一、传统web可视化到superset的进化过程
本司内部各部门做的web可视化平台属于历史遗留产物,大部分都是多年前研发的,使用的仍然是传统架构,底层数据源是sql、oracle等,前后台语言比较老。当然,这种架构模式经过大牛的优化,仍然可以发挥其性能,但人才有限,成本有限。造成的现状就是,业务方仍在使用这些老平台,但是诟病很多,比如:查询效率较低,下载数据常常需要等待很久,新增需求需要从0开始开发(即使是已经有的图表)等等。
与此同时,本部门的数据组是新成立的小组,在技术leader的领导下,逐步搭建了数据采集系统(无埋点sdk),引入大数据框架,hive集群的建设也逐渐完善,各业务方的数据基本全都同步到了本部门所搭建的数仓里。同时也引入了一个可视化平台,但是开发繁琐,可扩展性较差,可视化效果也差强人意。而面对各业务方不断增长的数据分析和可视化需求,在经过一段时间的调研后,最终选择了superset进行二次开发。
二、实际应用案例
1,功能架构
通过上面的图可以看到,superset的功能是非常齐全的,通过丰富的权限控制,我们结合本司的实际业务需求,将平台功能分为两大块:分析师端、普通用户端。分析师端的功能模块是只针对各业务方的数据分析师角色开放,而普通用户端则是给各业务员工设置的功能模块(只对他们开放数据看板查看权限)。
可以很明显的看到,这个工具更偏向分析师端,即:数据探索分析与可视化图表制作。
2,实际实现的功能成果
基于本司实际的应用成果,可将此平台实现的功能成果汇总如下:
(1) 丰富的图例。支持常用的30余种图例展现,例如:折线图、柱状图、饼图、散点图、地理坐标/地图、K线图、雷达图、盒须图、热力图、关系图、桑吉图、树状图、气泡图、平行坐标、表格、透视表、筛选盒等;
(2) 丰富的用户、角色权限管理。支持按组织架构进行角色权限分配,例如:可按行业、大区等n个层级对用户进行页面权限分配和数据权限分配;
(3) 完整的数据流体系。建立了数仓体系,支持按业务进行数据处理&计算&建模;
(4) 高效的自助分析。数据图表/看板的开发只需简单的拖拉拽操作,无需开发介入,任务效率大幅提升;
(5) 高效查询。业务数据(数w行级)近乎实时查询,查询效率大幅提升;
(6) 易扩展。支持二次开发,支持多种功能的更新迭代;
3,一些常见图例效果
(比如下图中的复合图例是自行开发加入进去的。复合图例,即:双坐标轴、多图形混合的图例)
总结
在刚开始的过程中,可能会发现同一功能在不同图例上不完全适用,会耗费点时间去做二次修改,有时还涉及到它的框架的修改。但是,总的来说,Superset这个产品是可以给人带来很多惊喜的,尤其是它的扩展能力,支持你做更多的个性化的改动,从而支持你自己的需求,它也完全可以适应大多数公司的大部分数据分析探索和可视化的需求。可以说是中小型公司自研可视化BI的最佳选择之一!
版权声明: 本文为 InfoQ 作者【Jackchang234987】的原创文章。
原文链接:【http://xie.infoq.cn/article/f3968bf3cc69116cb70b1cdef】。文章转载请联系作者。
评论