Superset全流程安装使用
简介
Apache Superset 是一个现代化的、企业就绪的商业智能 Web 应用程序。它 快速、轻量级、直观,并加载了各种选项,使所有技能的用户都可以轻松使用 用于探索和可视化其数据的集合,从简单的饼图到高度详细的 deck.gl
地理空间图表。
Superset 的前端主要用到了 React
和 NVD3/D3
,而后端则基于 Python 的 Flask 框架和 Pandas、SQLAlchemy 等依赖库,主要提供了这几方面的功能:
直观的界面,用于可视化数据集和制作交互式仪表板
各种精美的可视化效果来展示您的数据
用于提取和呈现数据集的无代码可视化构建器
用于准备可视化数据的世界级 SQL IDE,包括丰富的元数据浏览器
轻量级语义层,使数据分析人员能够快速定义自定义维度和指标
对大多数 SQL 数据库的开箱即用支持
无缝的内存中异步缓存和查询
一种可扩展的安全模型,允许配置非常复杂的规则,以确定谁可以访问哪些产品功能和数据集
与主要身份验证后端(数据库、OpenID、LDAP、OAuth、REMOTE_USER等)集成
添加自定义可视化插件的能力
用于编程自定义的 API
专为扩展而设计的云原生架构
Superset也是云原生的,因为它很灵活,允许您选择:
Web服务器(Gunicorn,Nginx,Apache),
元数据数据库引擎(MySQL,Postgres,MariaDB等),
消息队列(Redis,RabbitMQ,SQS等),
结果后端(S3,Redis,Memcached等),
缓存层(Memcached,Redis等),
Superset还可以与NewRelic,StatsD和DataDog等服务很好地配合使用,并且能够运行。 针对最常用数据库技术的分析工作负载。
配置Python环境
Superset是由Python语言编写的Web应用,要求Python3.6的环境
如果不配置环境,直接使用最新的3.10版本会出现如下错误:
1. 安装Miniconda
conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同Python版本的软件包及其依赖,并能够在不同的Python环境之间切换,Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等,Miniconda包括Conda、Python
1.1 下载Miniconda(Python3版本)
下载地址:https://repo.anaconda.com/miniconda/
根据系统环境,选择 Miniconda3-latest-Linux-x86_64.sh
1.2 安装Miniconda
执行以下命令进行安装,并按照提示操作,直到安装完成
1 | wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh |
在安装过程中,出现以下提示时,可以指定安装路径
出现以下字样,即为安装完成
1.3 配置环境变量
运行如下命令:
1 | export CONDA_HOME=/root/allen/miniconda3 |
重启一下虚拟机。
1.4 取消激活base环境
Miniconda安装完成后,每次打开终端都会激活其默认的base环境,我们可通过以下命令,禁止激活默认base环境
如果不关闭,就会自动激活base环境
1 | conda config --set auto_activate_base false |
2. 创建Python3.6环境
2.1 配置conda国内镜像
1 | conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free |
查看下 .condarc
文件,是否是如下配置
1 | cat ~/.condarc |
输出内容如下:
1 | auto_activate_base: false |
2.2 创建Python3.6环境
1 | conda create -n superset python=3.6 |
conda环境管理常用命令,其中的name是环境名称
1
2
3
4
5 >conda create -n env_name #创建环境
>conda info --envs #查看所有环境
>conda remove -n env_name --all #删除一个环境
2.3 激活superset环境
激活环境:
1 | conda activate superset |
激活后效果如下图所示:
退出环境:
1 >conda deactivate
2.4 执行 python
命令查看python版本
安装Superset
1. 安装依赖
1 | sudo apt install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev default-libmysqlclient-dev |
2. Python虚拟环境
官方流程中有这一步,可以省略,前面已经通过Miniconda创建了虚拟环境
1 | apt install python3-venv |
创建和激活虚拟环境
1 | python3 -m venv venv |
3. 安装
3.1 安装(更新)setuptools和pip
1 | pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/ |
-i
的作用是指定镜像,这里选择国内镜像
3.2 安装Superset
1 | pip install apache-superset -i https://pypi.douban.com/simple/ |
安装成功:
4. 初始化数据库
1 | superset db upgrade |
这边是个大坑,可以参考下面的错误提示:
错误提示1:
1 | ImportError: cannot import name '_ColumnEntity' |
执行以下安装:
1 | pip install sqlalchemy==1.3.24 |
错误提示2:
1 | ModuleNotFoundError: No module named 'dataclasses' |
执行以下安装:
1 | pip install dataclasses |
错误提示3:
1 | ModuleNotFoundError: No module named 'cryptography.hazmat.backends.openssl.x509' |
执行以下安装:
1 | pip install cryptography==2.5 |
错误提示4:
1 | INFO:superset.utils.screenshots:No PIL installation found |
执行以下安装:
1 | pip install pillow |
错误提示5:
1 | /root/venv/lib/python3.6/site-packages/flask_caching/__init__.py:202: UserWarning: Flask-Caching: CACHE_TYPE is set to null, caching is effectively disabled. |
根据上面的路径,修改python3.6/site-packages/superset/config.py
:
1 | THUMBNAIL_CACHE_CONFIG: CacheConfig = {"CACHE_TYPE": "null"} |
如果你遇到其他错误,在网上查一下还是能够轻松解决的。
5. 创建管理员用户
给superset创建管理员用户,分别执行下面命令:
1 | export FLASK_APP=superset |
设置用户名与密码,其他的可以不用设置,直接 enter
就行
flask是一个python web框架,Superset使用的就是flask
6. 初始化
1 | superset load_examples #可选,加载一些示例 |
启动Superset
运行以下命令:
1 | superset run -p 8088 --with-threads --reload --debugger |
配置反向代理
简单的模版:
1 | server { |
访问
对接数据库
Superset默认使用sqllite。还支持其他数据库,参考Install Database Drivers
最后
这个安装Superset就完成了。
这个程序的安装复杂程度超出了我的想象,容我再重新理一下,再来分享一下使用细节。