最近在公司做一个数据可视化相关的项目,使用了Airbnb开源维护的企业级BI数据平台superset,相较于tableau这种收费的商业软件,Superset是开源维护的,同时图表的种类和颜值普遍偏高。以下效果图:
以及另外几十种图表格式
话不多说,开始搭建吧。
1.前期准备
Linux服务器CentOS7(Windows系统的不作概述 一般缺少的whl文件在 此网站
可以下载
python3.+版本(此处我使用的是3.6.2版本)
yum安装 163镜像
2.安装环境
2.1 安装python3.6.2
2.2.安装编译环境
sudo yum install gcc gcc-c++ libffi-devel openssl-devel libsasl2-devel openldap-devel
2.3 更新pip及工具 使用python3下载
####pip3 install --upgrade setuptools pip
2.4 安装virtualenv虚拟环境
pip3 install virtualenv
2.5 进入虚拟环境
. ./venv/bin/activate
2.6 使用豆瓣镜像源安装superset
pip3 install superset -i https://pypi.douban.com/simple
问题描述1:
ImportError: No module named flask_compress/ext/XXX
这是因为superset默认的flask版本要>1.0同时又不能太高,其他组件同理,一般都是版本过低或者过高
卸载原有的flask并且安装1.0版本的flask
pip3 uninstall flask
pip3 install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com flask==1.0
问题描述2:
Was unable to import superset Error:No module named '_sqlite3'
这是系统默认的python解释器版本2.7与3.6冲突 网上也有解决方案修改默认的解释器版本或者对当前编译环境加入sqlite3模块
2.7 创建管理员用户名和密码
fabmanager create-admin --app superset
问题描述:No module named '_sqlite3'
解决方案同上 其实是上一步出了问题
2.8 初始化Superset数据库
superset db upgrade
2.9 装载官方提供的系统案例
superset load_examples
2.10 初始化
superset init
2.10 启动superset
superset run -p 8088 --with-threads --reload --debugger
3.启动superset,连接mysql数据源,根据表创建Charts
在浏览器输入IP:8888或者IP:8888/login/
出现如下界面
3.1 登陆
右上角选择中文,输入刚才的用户名和密码
3.2 安装连接mysql数据源的数据库依赖
pip install mysqlclient
3.3 连接数据源
点击增加过滤条件旁边的+号
连接数据库
连接数据表,点击右上角的增加过滤条件
选择数据库 输入表名
点击数据表 进入根据表创建Charts的界面 以饼状图为例:
选择数据源 图标类型 时间区间 指标数值 分组依据(这里是性别)
执行Query: 点击Save保存
到这里,BI数据平台生成图标已经完成了。以下是将图标引入自己的项目
4.将生成的饼状图变为html,嵌入自己项目
修改superset中的config.py配置文件
将PUBLIC_ROLE_LIKE_GAMMA改为True
支持图表跨域
在Charts中找到刚才保存的图标 点击右上尖括号 复制iframe的代码
嵌入我们自己项目中的iframe标签中即可。
嵌入图表Demo网址浏览:http://www.songlei.online:8777