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

![时间序列_柱状图.gif](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112118784-853879599.gif)

![饼状图.gif](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112124212-953945562.gif)

![折线图.gif](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112135242-514586707.gif)

以及另外几十种图表格式
![图标概览.gif](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112143373-910271645.gif)

话不多说,开始搭建吧。
##1.前期准备
**Linux服务器CentOS7(Windows系统的不作概述 一般缺少的whl文件在 [此网站](https://www.lfd.uci.edu/~gohlke/pythonlibs/)
可以下载**
**python3.+版本(此处我使用的是3.6.2版本)**
**yum安装 [163镜像](http://mirrors.163.com/)**

[superset官网](https://blog.csdn.net/zzy1078689276/article/details/78732183/)

##2.安装环境
####2.1 安装python3.6.2
[python3.6.2安装及测试](https://www.cnblogs.com/liongong/p/7858573.html)

####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/
出现如下界面

![image.png](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112143712-921148797.png)
3.1 登陆
右上角选择中文,输入刚才的用户名和密码
3.2 安装连接mysql数据源的数据库依赖
```
pip install mysqlclient
```
3.3 连接数据源
![image.png](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112144126-29504031.png)

点击增加过滤条件旁边的+号
![image.png](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112144593-1515271071.png)
连接数据库
![image.png](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112145488-1764047230.png)

连接数据表,点击右上角的增加过滤条件
![image.png](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112146556-544105135.png)

选择数据库 输入表名
![image.png](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112146774-1833124605.png)

点击数据表 进入根据表创建Charts的界面 以饼状图为例:
选择数据源 图标类型 时间区间 指标数值 分组依据(这里是性别)
![image.png](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112146907-2110940904.png)

执行Query: 点击Save保存

![image.png](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112147042-520372014.png)

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

##4.将生成的饼状图变为html,嵌入自己项目
修改superset中的config.py配置文件
将PUBLIC_ROLE_LIKE_GAMMA改为True
支持图表跨域
![image.png](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112147180-1961179493.png)

在Charts中找到刚才保存的图标 点击右上尖括号 复制iframe的代码
![image.png](https://img2018.cnblogs.com/blog/1821710/201909/1821710-20190930112147315-948611537.png)

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

嵌入图表Demo网址浏览:[http://www.songlei.online:8777](http://www.songlei.online:8777/)

关注公众号:Code In Java
资源,项目,面试题一网打尽
希望与你成为Java技术的同路人

最新文章

  1. Moq基础
  2. linux下 SVN切换仓库地址命令
  3. javascript数据类型判断
  4. angular 依赖注入原理
  5. asp.net保存网上图片到服务器
  6. Spark随笔(一):Spark的综合认识
  7. java中==与equal()方法的区别
  8. HDOJ 6069 素数筛法(数学)
  9. 目标检测(一) R-CNN
  10. iOS 运行时使用(交换两个方法)
  11. 使用RMAN Active duplicate创建异地auxiliary Database
  12. MySQL中条件放在where后面与放在on后面的区别
  13. 2016ICPC-大连 A Simple Math Problem (数学)
  14. Hadoop概念学习系列之搭建(windows)Eclipse/MyEclipse远程操作(Linux上)hadoop2.2.0/hadoop2.6.0 出错集(三十五)
  15. NFS基础配置
  16. Wifi Troughput Test using iperf
  17. Windows Forms Application Creation and Initialization
  18. MyCat安装与测试教程 超详细!
  19. django系列6--Ajax05 请求头ContentType, 使用Ajax上传文件
  20. 冲刺ing-2

热门文章

  1. bzoj4129 Haruna’s Breakfast 树上带修莫队+分块
  2. 【洛谷P2398】GCD SUM
  3. Azure IoT 技术研究系列1
  4. 快照方式备份MySQL数据库及举例
  5. day03记 angular代码
  6. transform-origin属性
  7. Activiti的流程实例及挂起激活(七)
  8. RabbitMQ 工作图解
  9. 【翻译】详解HTML5 自定义 Data 属性
  10. Oracle--创建TRIGGER实现跟踪用户登录信息