一. Superset 概述
1.介绍:Superset是Airbnb开源BI数据分析与可视化平台(曾用名Caravel、Panoramix),该工具主要特点是可自助分析、自定义仪表盘、分析结果可视化(导出)、用户/角色权限控制,还集成了一个SQL编辑器,可以进行SQL编辑查询等,原来是用于支持Druid的可视化分析,后面发展为支持很多种关系数据库及大数据计算框架,如:mysql, oracle, Postgres, Presto, sqlite, Redshift, Impala, SparkSQL, Greenplum, MSSQL。整个项目基于Python框架,它集成了Flask、D3、Pandas、SqlAlchemy等。
2.局限性
①Superset的可视化,目前只支持每次可视化一张表,对于多表join的情况还无能为力
②依赖于数据库的快速响应,如果数据库本身太慢Superset也没什么办法
③语义层的封装还需要完善,因为druid原生只支持部分sql
二.安装Python环境
(一)安装Miniconda
1)下载 Miniconda(Python3 版本)
下载地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
直接下载比较慢,建议使用迅雷下载。
2)上传文件
在software下新建文件夹,安装 lrzsz
mkdir superset
cd superset/
ll
上传文件
rz
3)安装 Miniconda
(1)执行以下命令进行安装,并按照提示操作,直到安装完成。
bash Miniconda3-latest-Linux-x86_64.sh
(2)在安装过程中,出现以下提示时,可以指定安装路径
(3)出现以下字样,即为安装完成
4)加载环境变量配置文件,使之生效
source ~/.bashrc
5)取消激活 base 环境
Miniconda 安装完成后,每次打开终端都会激活其默认的 base 环境,我们可通过以下命令,禁止激活默认 base 环境。
conda config --set auto_activate_base false
我们新建会话,发现最前面的 bash 已经不见了,查看Python版本:
发现这是 Python 自带的版本
(二)创建Python3.9环境
1)配置 conda 国内镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
2)创建 Python 3.9环境
conda create --name superset python=3.9
输入y继续
3)激活 superset 环境
conda activate superset
激活后效果如图所示
说明:退出当前环境
conda deactivate
4)执行 python 命令查看 python 版本
三.Superset部署
(一)安装依赖
安装 Superset 之前,需安装以下所需依赖
sudo yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-devel openldap-devel
大概两分钟左右,安装完毕
2.安装Superset
pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/
**说明:**pip 是 python 的包管理工具,可以和 centos 中的 yum 类比
2)安装Superset
pip install apache-superset==2.0.0 -i https://pypi.douban.com/simple/
说明:-i 的作用是指定镜像,这里选择国内镜像
注:如果遇到网络错误导致不能下载,可尝试更换镜像
pip install apache-superset --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple
3)初始化 Supetset 数据库
superset db upgrade
会报以下错误
报错后输入下列代码
pip install cryptography==3.3.2 -i https://repo.huaweicloud.com/repository/pypi/simple
再次执行命令,出现错误:
TypeError: __init__() got an unexpected keyword argument 'unbound_message'
需要降低Flask的版本到2.0.3
python -m pip uninstall -y Flask
python -m pip install Flask==2.0.3
再次执行命令,出现错误:
ModuleNotFoundError: No module named 'wtforms.ext'
这个是因为WTForms 3.0.1的版本去掉了ext,需要降低WTForms的版本到2.3.3
python -m pip uninstall -y WTForms
python -m pip install WTForms==2.3.3
再次执行命令,初始化数据库成功:
4)创建管理员用户
export FLASK_APP=superset
superset fab create-admin
**说明:**flask 是一个 python web 框架,Superset 使用的就是 flask
5)Superset 初始化
superset init
(三)启动Superset
1)安装 gunicorn
pip install gunicorn -i https://pypi.douban.com/simple/
**说明:**gunicorn 是一个 Python Web Server,可以和 java 中的 TomCat 类比
2)启动 Superset
(1)确保当前 conda 环境为 superset,及下图所示
(2)启动
gunicorn --workers 5 --timeout 120 --bind 192.168.19.203:8787 "superset.app:create_app()" --daemon
(3)登录 Superset
访问 http://192.168.19.203:8787,并使用前面创建的管理员账号进行登录。
ps:访问时注意关闭防火墙进行网站访问