最近在公司做一个数据可视化相关的项目,使用了Airbnb开源维护的企业级BI数据平台superset,相较于tableau这种收费的商业软件,Superset是开源维护的,同时图表的种类和颜值普遍偏高。以下效果图:

python做系统 python做bi系统_python

python做系统 python做bi系统_python做bi系统_02

python做系统 python做bi系统_数据源_03

以及另外几十种图表格式

话不多说,开始搭建吧。

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/

出现如下界面

python做系统 python做bi系统_数据源_04

3.1 登陆

右上角选择中文,输入刚才的用户名和密码

3.2 安装连接mysql数据源的数据库依赖

pip install mysqlclient

3.3 连接数据源

python做系统 python做bi系统_python做系统_05

点击增加过滤条件旁边的+号

python做系统 python做bi系统_python做系统_06

连接数据库

python做系统 python做bi系统_python做bi系统_07

连接数据表,点击右上角的增加过滤条件

python做系统 python做bi系统_python做系统_08

选择数据库 输入表名

python做系统 python做bi系统_python做系统_09

点击数据表 进入根据表创建Charts的界面 以饼状图为例:

选择数据源 图标类型 时间区间 指标数值 分组依据(这里是性别)

python做系统 python做bi系统_flask_10

执行Query: 点击Save保存

python做系统 python做bi系统_python_11

到这里,BI数据平台生成图标已经完成了。以下是将图标引入自己的项目

4.将生成的饼状图变为html,嵌入自己项目

修改superset中的config.py配置文件

将PUBLIC_ROLE_LIKE_GAMMA改为True

支持图表跨域

python做系统 python做bi系统_数据源_12

在Charts中找到刚才保存的图标 点击右上尖括号 复制iframe的代码

python做系统 python做bi系统_python_13

嵌入我们自己项目中的iframe标签中即可。

资源,项目,面试题一网打尽

希望与你成为Java技术的同路人