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 等)。
源码地址:https://github.com/apache/incubator-superset
搭建 方式一:pip安装Superset 由 Python 构建,可使用 pip 安装 pip install superset,详细信息请参考官方文档:https://superset.incubator.apache.org
官方文档地址:https://superset.incubator.apache.org/installation.html
只需执行以下几句即可
git clone https://github.com/apache/incubator-superset/ cd incubator-superset/contrib/docker # prefix with SUPERSET_LOAD_EXAMPLES=yes to load examples: docker-compose run --rm superset ./docker-init.sh # you can run this command everytime you need to start superset now: docker-compose up案例
#1.安装 # 通过 PyPi 仓库安装 superset sudo yum upgrade python-setuptools sudo yum install mysql-devel gcc gcc-c++ gcc-devel libffi-devel python-devel python-pip python-wheel openssl-devel libsasl2-devel openldap-devel sudo pip install superset mysqlclient #2.初始化 #创建初始超级用户: admin/123456 fabmanager create-admin --app superset --username admin --password 123456 --firstname admin --lastname admin --email yanjingang@mail.com #使用默认 sqllite metadata,位于 ~/.superset/superset.db,并根据 migrate 创建表结构 superset db upgrade #加载 Superset提供的示例数据 superset load_examples #初始化 role 等 superset init #3. 启动 superset runserver -d #-d打开debug 模式;-p指定端口 或 gunicorn -D -w 2 -k gevent --timeout 120 -b 0.0.0.0:8088 --limit-request-line 0 --limit-request-field_size 0 superset:app -D 后台运行 -w 负载进程数量,通常推荐的worker数量是:(2 x $num_cores) + 1 -k 工作进程类型(gevent是一个基于libev的并发库) *关闭:pkill gunicorn #4.访问 http://localhost:8088 admin/123456 #5.创建数据源 点击“数据源 —> 数据库 -> 添加新记录” SQLAlchemy URI格式为:dialect://user:password@host:port/dbname[?key=value..] 示例:mysql://root:XXXXXXXXXX@127.0.0.1:3306/test?charset=utf8 #6.添加表 点击“数据源 —> 数据表 -> 添加新记录” #7.创建可视化分析报表 点击“Charts-添加新记录”,选择数据源和表类型后编辑sql和表行业选项并调试即可。 *图标配置方法可参考系统内置的示例报表。 #8.合并多个报表到看板 有时多个报表从不同纬度分析同一个事情,可以在建立报表时选择建到一个看板上,就能在一个页面一起看了。 看板上可以增加filter_box类型的报表做筛选条件(条件不支持设置默认值)。 #9.添加用户/角色/权限
Superset 本身提供了一组基本角色和权限控制:
- Admin:拥有所有可能的权限,包括从其他用户授予或撤消权限以及更改其他人的切片和 dashboard。
- Alpha:可以访问所有数据源,但不能授予或撤消其他用户的访问权限。它们也仅限于改变它们拥有的对象。可以添加和更改数据源。
- Gamma:访问受限,只能使用通过另一个互补角色获得访问权限的数据源。他们只能查看由他们有权访问的数据源制作的切片和 dashboard。无法更改或添加数据源,但可以可以创建切片和 dashboard。
- sql_lab:被授予对 SQL Lab 的访问权限。
- public:可以通过在 supersetconfig.py 设置 PUBLIC_ROLE_LIKE_GAMMA = True,授予该角色与 Gamma 角色相同的权限集。
登录:
添加数据库:
编辑报表:
看板:



