最近公司有bi的需求,安排我收集了阿里云的quickbi、apache、airbnb的supersetd、和metabase系统的资料,我的以为superset还不错,就来了个简单上手了html
supeprset是airbnb开源到apache的商业智能项目,目前正在apache里孵化,之后可能成为apache的顶级项目mysql
项目地址:github.com/apache/incu…git
bi数据显示面板由数据图表组成,数据图表里的数据来自数据库里的表,数据库里的表来自配置的数据源,关系以下所示 github
而后在添加数据源界面填上数据库的名称、链接参数 sql
可选:Expose in SQL Lab单选表示是否能够在Sql Editor调试这个数据源,建议勾上docker
superset支持的完整的数据源列表参考:superset.incubator.apache.org/installatio…shell
经常使用的mysql snakeflow druid都支持数据库
数据源建好后,只是表示有可选的数据使用了,具体使用数据源中的那张表须要在superset中建立数据表来表示apache
而后选择数据源和填写须要操做的表 flask
最后保存就ok了
在superset中有了数据表后,就能够从这个数据表读取数据生成图表了 好比从下面这个mysql的word_freq表中生成图表
而后选择图表使用的数据表,和须要显示成的效果,这里案例就使用表格简单的把数据显示出来了
这个superset能够生成复杂的查询
而后对这个图表进行保存
通常一个bi面板由多个图表组成,能够提早建立多个图表,而后在bi面板中组合使用
而后进入到这个dashboard的编辑模式就能够把图表添加到这个dashboard了
分享面板能够生成访问这个dashboard的url,方便进行交流
superset提供了基于角色的权限管理
能够看到这个superset提供了一大堆内置的权限可使用,权限涉及到两张表:ab_permission、ab_view_menu
superset使用flask内置的has_access, has_access_api装饰实现权限检查 在incubator-superset/superset/security.py中继承了flask默认的权限处理,并在/incubator-superset/superset/init.py注册成了默认的权限处理器
能够在"Manage" > "Queries"中查看到执行过的sql语句列表,详情就是具体的sql语句了,显示效果以下
能够看到这个superset源码的目录结构是很是清晰的。
superset截至本文写完共有51张表,部分效果以下
能够看到这些表的命名仍是很是简单、容易理解的
链接mysql必须指定字符集,不然中文乱码,好比mysql+mysqldb://root:root@127.0.0.1/word_freq?charset=utf8
source venv/bin/activate
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements-dev.txt
FLASK_ENV=development FLASK_APP=superset:app flask run -p 8098 --with-threads --reload --debugger --host=0.0.0.0
复制代码
可使用docker启动这个superset,参考:superset.incubator.apache.org/installatio…