Superset 是一款由 Airbnb 开源的“现代化的企业级 BI(商业智能) Web 应用程序”,其通过创建和分享 dashboard,为数据分析提供了轻量级的数据查询和可视化方案。
Superset 的前端主要用到了 React 和 NVD3/D3,而后端则基于 Python 的 Flask 框架和 Pandas、SQLAlchemy 等依赖库,主要提供了这几方面的功能:
Superset 由 Python 构建,可使用 pip 安装 pip install superset,详细信息请参考官方文档:
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 本身提供了一组基本角色和权限控制:
登录: