Superset
Welcome | Superset (apache.org)
https://github.com/apache/superset
— 简介 —
- Superset 是一个数据可视化和数据探索平台(数据可视化工具)
- Superset 可以取代或增强许多团队的专有商业智能工具
- Superset 与各种数据源很好地集成。
Superset 提供:
A no-code interface for building charts quickly
用于快速构建图表的无代码界面
A powerful, web-based SQL Editor for advanced querying
一个强大的、基于 Web 的 SQL 编辑器,用于高级查询
A lightweight semantic layer for quickly defining custom dimensions and metrics
一个轻量级语义层,用于快速定义自定义维度和指标
Out of the box support for nearly any SQL database or data engine
开箱即用,支持几乎所有 SQL 数据库或数据引擎
A wide array of beautiful visualizations to showcase your data, ranging from simple bar charts to geospatial visualizations
各种精美的可视化效果来展示您的数据,范围从简单的条形图到地理空间可视化效果
Lightweight, configurable caching layer to help ease database load
轻量级、可配置的缓存层,有助于减轻数据库负载
Highly extensible security roles and authentication options
高度可扩展的安全角色和身份验证选项
An API for programmatic customization
用于编程定制的 API
A cloud-native architecture designed from the ground up for scale
从头开始设计的云原生架构,旨在实现规模化
— 部署 —
官网提供多种安装方式:Kubernetes、PyPI、Docker Compose、Docker等
1. Docker 部署
https://superset.apache.org/docs/installation/docker-builds
apache/superset - Docker Image | Docker Hub
默认运行地址 http://localhost:8088
默认账号密码:admin
2. Docker Compose 部署
注意:
在 Quickstart 中官方建议使用 Docker Compose 方式,但这种构建方式不被建议在生产环境中使用
OS环境依赖:
可参考:使用Docker Compose安装本地安装 | Superset (zhaoweilong.github.io)
要注意 superset 不直接支持 Windows 操作系统,需要使用虚拟机或 WSL + Docker Desktop
win11+docker compose部署尝试
1 | # 从官网克隆仓库到本地,进入目录 |
- Docker Desktop官方安装https://docs.docker.com/desktop/install/windows-install/
- docker desktop修改默认安装路径(管理存储空间),可见基于windows WSL安装Docker Desktop,修改默认安装到C盘及默认下载镜像到C盘-腾讯云开发者社区-腾讯云 (tencent.com)
3. PyPI 部署
apache-superset:2.1详细部署流程
目的
- 项目需求,用于生产的数据分析平台,使用PyPI部署
- 测试与简单调用可移步docker部署
环境
- VMware® Workstation 16 Pro
- ubuntu-20.04.6-desktop-amd64
具体步骤
OS环境配置
下载 iso 文件(Index of /ubuntu-releases/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror)
我这里下的是**/ubuntu-releases/20.04.6/**ubuntu-20.04.6-desktop-amd64.iso
打开VMware,点击/文件/新建虚拟机
类型选择典型(推荐),下一步
选择安装程序光盘映像文件,找到刚才下载的iso文件,下一步
填写信息(用户名与登录密码等),下一步
填写信息(虚拟机名称和安装位置),下一步
磁盘分 20G(仅作项目环境调试不长期使用),存储为单个文件(确保性能但影响不大),下一步
完成
选择刚创建的虚拟机,开启
等待,鼠标移动至窗口可操作,按 CTRL+ALT 快捷键回到主机,输入用户名密码,登入系统
Superset环境配置
进入系统,全都关掉Skip/Next/Done等弹窗,左上角火狐浏览器,搜索Superset,没连接代理可以用bing,一般是搜索结果第一个,进入官网(欢迎 |超集 — Welcome | Superset (apache.org)), Get Started
点击左侧栏 /Installation/PyPI,右侧找到 ubuntu20.04 对应的操作系统依赖项下载命令复制
在 Ubuntu 20.04 中,以下命令将确保安装所需的依赖项:
1
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev default-libmysqlclient-dev
粘贴到终端,在终端窗口使用快捷键 CTRL+SHIFT+V,粘贴命令回车运行,结果如下图
安装python的虚拟环境venv
1
pip install virtualenv
结束出现了一个WARNING,告诉我们需要添加环境变量$PATH(可以使用 echo $PATH命令查看当前环境变量)
可以使用 sudo vi /etc/profile 进入配置文件进行编辑,在文件末尾写入
1 | export PATH=$PATH:/home/<用户名>/.local/bin/ |
(如果vi麻烦就自行下载使用其他编辑器vim nano vsc……,注意保存编辑内容)
输入source /etc/profile载入修改后的配置文件
1 | source /etc/profile |
- 输入virtualenv —version查看到命令已经存在
1 | virtualenv --version |
- 使用 virtualenv superset创建名为superset的python虚拟环境,并使用source命令激活环境
1 | virtualenv superset |
不喜欢virtualenv也可以使用其他方式构建虚拟环境,也可参考文档
Superset下载安装与初始化
- 在刚刚创建的虚拟环境内,输入pip install apache-superset命令正式下载superset,等待结束
1 | pip install apache-superset |
- 结束后,输入superset db upgrade命令进行初始化
1 | superset db upgrade |
发现报错
- 检查发现superset2.x版本不再受支持
如果更换版本成本太大,尝试了pip python和superset的升级也有一些问题
- 还是先根据提示先升级pip
1 | pip install —upgrade pip |
再次运行superset db upgrade命令可能会出现 TypeError: init() got an unexpected keyword argument ‘unbound_message’是apache-superset 2.1的bug,需要降级flask,使用下面的命令:
1 | python -m pip uninstall -y Flask |
- 发现在终端输入superset是有输出的,但是需要设置一个FLASK_APP的环境变量
终端输入export FLASK_APP=superset
1 | # 关闭终端就没有了后面添加到/etc/profile |
再次运行superset db upgrade
1 | superset db upgrade |
- 看文档还要进行初始化配置
翻译:注意,对于Superset的生产实例,有些配置是强制性的。特别地,如果没有用户指定的SECRET_KEY值,Superset将不会启动。请参考配置Superset
上面爆不安全的SECRET_KEY也是之前找问题输入了一句export SUPERSET_SECRET_KEY=“123456”
而找到~/superset/lib/pytohn3.8/site-packages/superset目录下的config.py配置文件可以发现,配置里就是SECRET_KEY调环境变量的SUPERSET_SECRET_KEY
文档里面的注释建议用openssl rand -base64 42那就在终端中用该命令生成一个随机密钥再赋值给SUPERSET_SECRET_KEY
1 | SUPERSET_SECRET_KEY="$(openssl rand -base64 42)" |
- 执行superset db upgrade命令,遇到模块缺失问题就pip install安装,或者重装
1 | # 这里装了一个marshmallow_enum |
- 最后在执行superset db upgrade命令,成功
- 接着根据官网文档依次执行后面的命令
1 | export FLASK_APP=superset #上面应该执行过了 |
- 如果一切正常,打开浏览器,网址栏进入8088端口就能见到界面了,输入之前创建的管理员用户[admin]和密码
1 | localhost:8088 |
成功进入(因为没改代理跳过了superset load_examples一步所以主菜单没显示样例数据)
- 到此,apache-superset:2.1 PyPI 部署完成