
前言
过程和结果哪个更重要?有人说结果重要,也有人说过程重要,更有人觉得过程和结果都很重要,其实老苏觉得这个要分什么事情,就折(xue)腾(xi)来说,老苏觉得过程比结果重要,因为虽然有可能你最终折腾失败了,但是在折腾的过程中你依然能学到很多东西。
以前老苏发文都是最终已经折腾成功的,但其实在老苏的笔记里还有大量折腾失败的案例,本文就是其中之一。
大概是3月份的时候,一个朋友准备搞数据可视化分析,让我折腾一下 Superset ,和很多软件一样,Superset 安装并不复杂,真正难的是怎么使用。
什么是 Superset ?
Superset是由Airbnb(知名在线短租赁公司)开源的数据分析与可视化平台。支持丰富的数据源连接,多种可视化方式,并能够对用户实现细粒度的权限控制。该工具主要特点是可自助分析、自定义仪表盘、分析结果可视化(导出)、用户/角色权限控制,还集成了一个SQL编辑器,可以进行SQL编辑查询等。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 superset ,选择第一个 amancevice/superset,版本选择 latest。
本文完成于2021年3月,当时的
latest和现在安装的可能会存在差异

卷
在 docker 文件夹中,创建一个新文件夹,并将其命名为 superset。然后在 superset 文件夹中再创建两个新的子文件夹,命名为 config 和 data。
| 文件夹 | 装载路径 | 备注 |
|---|---|---|
/docker/superset/config | /home/superset | 存放配置文件 |

端口
端口不能冲突
| 本地端口 | 容器端口 | 类型 |
|---|---|---|
| 8588 | 8088 | TCP |

运行
开始资源会很高

甚至CPU占用回到100%

这个过程不会太长,这个时候你如果看日志,会发现日志在快速不停的刷新
日志在
Docker-->容器-->amancevice-superset1-->详情-->终端机

等到日志不再刷新的时候,你就可以在浏览器中输入 http://群晖IP:8588 ,并看到主界面了

这个时候资源消耗会稳定下来

配置用户名和密码
启动 Superset 服务之后,使用 superset-init 脚本以 admin 用户和 Superset 表初始化数据库
docker exec -it amancevice-superset1 superset-init
其中
amancevice-superset1是容器的名称

用刚才创建的 admin 用户登录

常用命令
命令查询
docker exec -it amancevice-superset1 superset --help

- 设置您的本地管理员帐户
docker exec -it amancevice-superset1 superset fab create-admin \
--username admin \
--firstname Superset \
--lastname Admin \
--email admin@superset.com \
--password admin
- 将本地数据库迁移到最新版本
docker exec -it amancevice-superset1 superset db upgrade
- 加载示例
docker exec -it amancevice-superset1 superset load_examples
- 初始化 superset
docker exec -it amancevice-superset1 superset init
设置中文
Superset 的汉化并不完全,这里只是介绍方法。
- 进入容器
docker exec --user root -it amancevice-superset1 /bin/bash
- 安装vim
apt-get install vim

- 修改
/usr/local/lib/python3.8/site-packages/superset/config.py
vim /usr/local/lib/python3.8/site-packages/superset/config.py

将 en 改为 zh

- 重新编译涉及到国际化的文件
pybabel compile -d /usr/local/lib/python3.8/site-packages/superset/translations

- 重启服务
# 退出容器
exit
# 停止容器
docker stop amancevice-superset1
# 启动容器
docker start amancevice-superset1

- 打开主页
http://群晖IP:8588,已经是中文了

更换数据库
从安装日志可以看出来,系统默认使用的数据源为 SQLite,为了提高性能,可以改成 MySQL 数据库
- 群晖 MariaDB 中新建数据库
superset
只是为了演示方便,创建用户时勾选了
创建与用户同名的数据库并授予所有权限。

- 进入容器
docker exec --user root -it amancevice-superset1 /bin/bash
- 修改
/usr/local/lib/python3.8/site-packages/superset/config.py文件
vim /usr/local/lib/python3.8/site-packages/superset/config.py
- 修改系统数据源,格式为
SQLALCHEMY_DATABASE_URI ="mysql://root:密码@xx.xx.xx.xx:3306/数据库名称?charset=utf8"

- 初始化数据库
# 退出容器
exit
# 初始化数据库
docker exec -it amancevice-superset1 superset db upgrade

- 初始化 superset
docker exec -it amancevice-superset1 superset-init

上图中可以看出已经切换到了 MySQL 了
参考文档
Welcome | Superset
地址:https://superset.apache.org/apache/superset: Apache Superset is a Data Visualization and Data Exploration Platform
地址:https://github.com/apache/supersetamancevice/docker-superset: Docker image for AirBnB’s Superset
地址:https://github.com/amancevice/docker-supersetamancevice/superset
地址:https://hub.docker.com/r/amancevice/superset/docker-superset/examples at main · amancevice/docker-superset
地址:https://github.com/amancevice/docker-superset/tree/main/examplessuperset的docker安装配置和汉化_小小北漂-优快云博客
地址:https://blog.youkuaiyun.com/u014589856/article/details/103582824Superset 基于Docker的安装&入门解析_kamisamak的博客-优快云博客
地址:https://blog.youkuaiyun.com/qq_33887096/article/details/114532948
本文详细介绍了如何在群晖NAS上使用Docker安装和配置Apache Superset,包括创建数据源、设置权限、迁移数据库至MySQL以及汉化过程。通过这个折腾的过程,即便最终可能失败,也能学习到不少关于数据可视化平台Superset的知识。

被折叠的 条评论
为什么被折叠?



