最近在公司做一个数据可视化相关的项目,使用了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技术的同路人

Airbnb开源 快速搭建企业级BI数据平台的更多相关文章

  1. HDP 企业级大数据平台

    一 前言 阅读本文前需要掌握的知识: Linux基本原理和命令 Hadoop生态系统(包括HDFS,Spark的原理和安装命令) 由于Hadoop生态系统组件众多,导致大数据平台多节点的部署,监控极其 ...

  2. 如何用MoveIt快速搭建机器人运动规划平台?

    MoveIt = RobotGo,翻译成中文就是“机器人,走你!”所以,MoveIt的主要就是一款致力于让机器人能够自主运动及其相关技术的软件,它的所有模块都是围绕着运动规划的实现而设计的. 两个月前 ...

  3. 2012开源项目计划-WPF企业级应用整合平台

    2012开源项目计划-WPF企业级应用整合平台 开篇 2012年,提前祝大家新年快乐,为了加快2012年的开发计划,特打算年前和大家分享一下2012年的开发计划和年后具体的实施计划,希望有兴趣或者有志 ...

  4. 【HADOOP】| 环境搭建:从零开始搭建hadoop大数据平台(单机/伪分布式)-下

    因篇幅过长,故分为两节,上节主要说明hadoop运行环境和必须的基础软件,包括VMware虚拟机软件的说明安装.Xmanager5管理软件以及CentOS操作系统的安装和基本网络配置.具体请参看: [ ...

  5. 搭建企业级全网数据定时备份方案[cron + rsync]

    1.1.1. 服务端的配置[192.168.25.141] Rsync的端口是:873 man rsyncd.conf 查看帮助 Rsync是Redhat默认自带的,这里只是做了rsync服务器端的后 ...

  6. 如何基于Go搭建一个大数据平台

    如何基于Go搭建一个大数据平台 - Go中国 - CSDN博客 https://blog.csdn.net/ra681t58cjxsgckj31/article/details/78333775 01 ...

  7. 搭建企业级实时数据融合平台难吗?Tapdata + ES + MongoDB 就能搞定

      摘要:如何打造一套企业级的实时数据融合平台?Tapdata 已经找到了最佳实践,下文将以 Tapdata 的零售行业客户为例,与您分享:基于 ES 和 MongoDB 来快速构建一套企业级的实时数 ...

  8. 单机,伪分布式,完全分布式-----搭建Hadoop大数据平台

    Hadoop大数据——随着计算机技术的发展,互联网的普及,信息的积累已经到了一个非常庞大的地步,信息的增长也在不断的加快.信息更是爆炸性增长,收集,检索,统计这些信息越发困难,必须使用新的技术来解决这 ...

  9. 基于开源Red5搭建的视频直播平台

    开始之前,为了便于大家了解Red5,此处引用网络文字,非原创 引言 流媒体文件是目前非常流行的网络媒体格式之一,这种文件允许用户一边下载一边播放,从而大大减少了用户等待播放的时间.另外通过网络播放流媒 ...

随机推荐

  1. ztree 获取CheckBox选中节点时,不获取选中上级父节点

    //将第三个参数改为false,表示不去勾选父节点下的所有子节点 zTreeObj.checkNode(node, true, false); setting.check.chkboxType = { ...

  2. zookeeper之一 安装和配置(单机+集群)

    这里我以zookeeper3.4.10.tar.gz来演示安装,安装到/usr/local/soft目录下. 一.单机版配置 1.安装和配置 #.下载 wget http://apache.fayea ...

  3. BSOJ5458 [NOI2018模拟5]三角剖分Bsh 分治最短路

    题意简述 给定一个正\(n\)边形及其三角剖分,每条边的长度为\(1\),给你\(q\)组询问,每次询问给定两个点\(x_i\)至\(y_i\)的最短距离. 做法 显然正多边形的三角剖分是一个平面图, ...

  4. java定义时间

    import java.text.SimpleDateFormat; import java.util.Date; SimpleDateFormat format=new SimpleDateForm ...

  5. XNUCA 2019ezPHP

    ezPHP 源码很简单(感觉越简单的源码越不好搞),一个写文件的功能且只能写文件名为[a-z.]* 的文件,且文件内容存在黑名单过滤,并且结尾被加上了一行,这就导致我们无法直接写入.htaccess里 ...

  6. Delphi--长线程

    { 长线程, 开启:随应用程序启用而启动 关闭:岁应用程序关闭而结束 } unit uLongThread; interface uses Classes, ADODB, DB, ActiveX, S ...

  7. div中放入一个img元素导致div高度会多出几个像素

    在写代码的时候经常遇到这样一个问题,如果div里嵌套一个img元素且div的高度是由img的高度来撑开,那么div的高度总会比img的高度多3px.好了,废话不多说,直接给大家上代码. html代码: ...

  8. LeetCode--098--验证搜索二叉树(python)

    给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数.节点的右子树只包含大于当前节点的数.所有左子树和右子树自身必须也是二叉搜索树. ...

  9. qt学习(一)qt三个文件函数的框架

    学到点什么, 而不是复制着什么, 每天敲着别人给的代码,苦涩得改完bug, 就这样一天天的过去, 实质上并没有学到什么, 别人的思想只是拿来借鉴, 你的思想是好是坏都是你的, 不用急着抛弃自己. 从q ...

  10. 最短路(模板)【CodeChef CLIQUED,洛谷P3371】

    自TG滚粗后咕咕咕了这么久,最近重新开始学OI,也会慢慢开始更博了.... 最短路算法经典的就是SPFA(Bellman-Ford),Dijkstra,Floyd: 本期先讲两个经典的单源最短路算法: ...