Superset是一个流行的,企业级的商务智能Web应用。由Airbnb开源,目前是Apache软件基金会的孵化项目。
Superset是否适合你,是否要将Superset添加到你的数据可视化工具包,可以从如下五方面来评估。
l 是否流行
l 支持的数据源
l 图表种类
l 权限管理
l 采用的技术
是否流行
下面是Superset项目网站上罗列的目前使用Superset的公司,是不是有些信心了呢?
在Github上,当前(2017年12月15日)有17,192颗星,有2,721个Fork。信心再增加5个百分比。
支持的数据源
数据可视化,没有数据的支持,那就是空有一副好皮囊,那就是无源之水,无本之木。Superset开箱即用的支持如下数据库:
支持这么多种类型数据源,总有一款适合你。如果在这个列表没有找到你的那款,去SQLAlchemy网站检查是否支持你的数据库。
图表种类
要看图表颜值。是高富帅还是矮穷矬,拉两张图片出来遛遛,下面是官网上的截屏。怎么样,看过之后是不是肾上腺爆棚。Superset目前预定义了20多种类的图表,满足大部分的数据展示的需求。
如果这部分图形不能满足你的需求,也可以自开发图形类型。这部分图形大部分是采用D3.js编写,当然你也可以嵌入其他的图表例如HighCharts,ECharts。
如果你需要在图形上比较多的交互,例如钻取,图表直接链接跳转等,Superset自带的图表是没有这些功能,需要二次开发。
权限管理
Superset提供细粒度安全模型,可以在功能层面以及数据层面进行访问控制。支持多种认证方式,例如数据库,OpenID,LDAP,OAuth,REMOTE_USER等。
是否需要和其他系统深度集成?如果只是在登录和用户认证层次上集成,比较容易实现。如果要在角色和功能层次,或者数据层面深度集成,那就需要对Superset的代码做二次开发。
技术准备度
业务需求,是否需要二次开发,二次开发所需要的技术是否准备好。前面已经提到,是需要交互式很强的图表或只是展现图表?自带的图表的类型是否满足需求?有无与其他系统集成的需求,是需要深度集成吗?
Superset使用的技术如下,深度二次开发貌似需要一个全栈工程师呢。
前端用到了npm,webpack:
l React
l NVD3.js/D3.js
后端基于Python:
l Flask App Builder
l SQLAlchemy
l Pandas
希望通过本文的介绍,能给你是否选择Superset做一些参考。更多内容可以看:
Superset项目的官方介绍:
https://github.com/apache/incubator-superset/blob/master/README.md
帮助文档:
领取专属 10元无门槛券
私享最新 技术干货