superset躲坑小攥
superset简介
Superset 是一款由 Airbnb 开源的“现代化的企业级 BI(商业智能) Web 应用程序”,其通过创建和分享 dashboard,为数据分析提供了轻量级的数据查询和可视化方案。
Superset 的前端主要用到了 React 和 NVD3/D3,而后端则基于 Python 的 Flask 框架和 Pandas、SQLAlchemy 等依赖库,主要提供了这几方面的功能:
集成数据查询功能,支持多种数据库,包括 MySQL、PostgresSQL、Oracle、SQL Server、SQLite、SparkSQL 等,并深度支持 Druid。
通过 NVD3/D3 预定义了多种可视化图表,满足大部分的数据展示功能。如果还有其他需求,也可以自开发更多的图表类型,或者嵌入其他的 JavaScript 图表库(如 HighCharts、ECharts)。
提供细粒度安全模型,可以在功能层面和数据层面进行访问控制。支持多种鉴权方式(如数据库、OpenID、LDAP、OAuth、REMOTE_USER 等)。
Superset 的搭建与使用非常简单,只需要一些 Python 基础,下面先从创建虚拟环境开始。
使用原因
由于公司最新一步计划,选用一套大数据可视化分析工具,开源的superset成为了本次选型目标。将会采用kylin作为大数据计算引擎,并通过配合superset进行BI分析工作。
本篇作用
目前superset的搭建相关资料互联网上已经比较齐全,官方的python源码,python能力要求不是很高,故不会细致的写出整个过程,本文会重点解决一些大众遇到的问题,但其他文章试用效果不明显等情况。同时对于内网部署superset进行一部分总结,以供内网部署需求使用。
版本选择
由于superset版本在不断升级,网上建议python使用2.7版本较为稳定,原因是Airbnb采用该版本。但是根据时间的推移,superset的新功能迭代可以支持更完美的分析能力,使用者还可进行斟酌。
根据本篇文章发布的时间节点,采用如下环境:
- python3.6
- superset - 0.28.1
- mysql 5.7 版本以上
衍生问题 :
1. superset默认使用sqlite进行初始化操作,根据大部分用户对mysql等轻量级数据库工 具的使用,可选用mysql进行初始化。
2. 选用mysql,superset-0.28.1 可能会遇到索引长度过长等问题(Specified key was too long : max key),由于mysql5.5版本不支持过长索引,可提前准备高版本mysql。
3. superset 0.28.1左右版本需要 python3以上才可以支持。提醒各位使用者合理调整python环境版本和superset版本的匹配,如果superset未来发展更好,最新版本请根据该套匹配进行环境升级测试(比如:python4.2 + superset 0.99.10)。
4. 对于superset不太熟悉或者未观看其他文章博客的朋友,建议:根据当前互联网官网,国内外推出的superset博客,教程,进行学习和探索,综合评价后进行搭建使用,学习。
5.同时:对于刚接触的朋友,superset 的下载提供以下两种
①到python官网:pypi,或者访问: