1. Superset 介绍
Superset是Airbnb开源BI数据分析与可视化平台(曾用名Caravel、Panoramix),该工具主要特点是可自助分析、自定义仪表盘、分析结果可视化(导出)、用户/角色权限控制,还集成了一个SQL编辑器,可以进行SQL编辑查询等,原来是用于支持Druid的可视化分析,后面发展为支持很多种关系数据库及大数据计算框架,如:mysql, oracle, Postgres, Presto, sqlite, Redshift, Impala, SparkSQL, Greenplum, MSSQL。整个项目基于Python框架,它集成了Flask、D3、Pandas、SqlAlchemy等。
Github地址:点我进入GitHub开源官网
官网地址:点我进入官网
2. 架构介绍
2.1 后端
整个项目的后端是基于Python的,用到了Flask、Pandas、SqlAlchemy。
Flask AppBuilder(鉴权、CRUD、规则
Pandas(分析)
SqlAlchemy(数据库ORM)
此外,也关注到Superset的缓存机制值得我们学习:
采用memcache和Redis作为缓存
级联超时配置
UI具有时效性控制
允许强制刷新
2.2 前端
自然前端是JS的天下,用到了npm、react、webpack,这意味着你可以在手机也可以流畅使用。
D3 (数据可视化)
nvd3.org(可重用图表)
2.3 局限性
Superset的可视化,目前只支持每次可视化一张表,对于多表join的情况还无能为力
依赖于数据库的快速响应,如果数据库本身太慢Superset也没什么办法
语义层的封装还需要完善,因为druid原生只支持部分sql