vlambda博客
学习文章列表

数据可视化应用 Apache Superset 最新进展的闲聊

最近一直在关注 Apache Superset,就顺势聊聊这款很流行的数据可视化应用。而且中文社区都只有 Apache Superset 使用和部署的教程,至于 Apache Superset 本身则没有太大关注,比如 Apache Superset 的一些设计思路和更新方向,希望这篇文章能起到抛砖引玉的作用。

Apache Superset 用官方的话来说明就是一款现代的,可用于企业的商业智能 Web 应用,也可以称为报表平台。详细的信息可以参考前文《》

A modern, enterprise-ready business intelligence web application.

首先介绍下 Superset 的版本迭代。至今为止 Superset 已经更新到 0.37.0 这个版本了。我第一次使用 Superset 的版本是 0.26.0,然后在历次的版本更替里,我认为有两个比较大的版本更新:一个是 0.28.0,是前端的更新,在 0.28.0 这个版本里 Superset 里彻底更新了看板的制作方式,让看板更加美观了,这种样式一直延续至今;第二个就是 0.36.0,是后端的改造,在进行到 0.36.0 这个版本时,0.29.0到0.30.0这个版本迭代因为 Python 包的使用协议问题,导致等待了接近一年的时间才重新发布,再往后直到 0.36.0,虽然前端页面没有什么大的改变,但是后端完成了彻底的底层代码重构和优化,后端的数据处理和缓存更加快了。

现在的 Superset 的 GitHub 主页已经没有显示有哪些商业公司在使用 Superset 了,这也许是因为现在的 Superset 已经主要由一家叫 Preset 的公司在维护。Preset 公司是由 Superset 的创始者们创办的,例如在官网上就有 Max Beauchemin 大佬(他也是 Apache Airflow 的 original creator)。在某种意义上,Superset 由之前的开源社区在维护变成了一家商业公司在维护,很多使用上的痛点都会被解决掉,至少很多使用体验上不是那么让人一眼看出来就是工程师兼产品经理兼设计师。

也得益于 Preset 的成立,Superset 也终于有详细的使用教程和博客了。在之前我们使用 Superset 时都还需要一点点的去探索怎么使用,现在有博客:https://preset.io/blog/,并且 https://superset.apache.org/ 也增加如何制作图表等教程页面。算是对初次使用者更加友好了吧。

再说说现在 Superset 正在做的几个新特性吧。Superset 相比于 2018 年的时候多了一个叫 SIP 的类似提案的东西记录社群对于某个特性的讨论和是否支持。说下我比较关注的几个吧。

第一个是文件夹功能,现在是置顶放在 issue 页面(https://github.com/apache/incubator-superset/issues/9551)。这个功能真的是千呼万唤,依旧没有出来,在我的记忆里相关的 issue 是非常之多,比如在 2019 年就有关于是有文件夹还是标签去聚合图表的 issue (https://github.com/apache/incubator-superset/issues/7239)。虽然最终讨论的结果是选择了标签去分类图表和看板,但是依然没有见到标签在新版本的应用,即使是已经实现了,但是依然没有合并进主分支(https://github.com/apache/incubator-superset/pull/7418#pullrequestreview-251214308)。希望能在后续几个版本有更新吧。

第二个是非常重磅的提案 SIP-34。在这个提案里,Superset 完成了一次彻底的重构,可以说整个前端页面都和以往完全不一样了。挑几个重点谈谈,比如视觉设计变得更加优雅了,简化了导航页面,看板也变得简洁了,很重要的是多了一个 Explore 功能,可以帮助不会写 SQL 的业务人员也能通过点击和选择的方式制作图表和探索数据。SIP-34 提案的内容非常多,非常细节,感兴趣的读者可以认真看一下:https://github.com/apache/incubator-superset/issues/8976。

第三个是 SIP-50。之前的 Superset 的图表种类很少,大概只有 34 个左右,在这个提案里,大家决定引入百度开源的 ECharts。这样的话,整个 Superset 的图表体系会得到极大地丰富,在某种程度上,也能满足很多业务人员追求“美”的需求。

第四个就是 SIP-48,它将 Superset 的前端页面的开发框架由 React-Bootstrap 变成了 Ant Design。因为我不是做前端的,但是根据提案的描述,这个应该会让 Superset 的前端加载速度会更快,更清晰。

最后一个就是 SIP-19,这个提案的目的是为了简化 Superset 的用户权限管理。就像提案里说的,现在的 Superset 权限管理简直就是一个噩梦。希望这个提案能改善现有的权限管理方式吧。

现在的 Superset 算是进入了一个大发展阶段了,断断续续闲聊了这么多了,也许明年再看 Superset 的时候,老人就不认识它了,新人则惊讶居然还有这么好用的开源的 BI 报表工具。