前言
过程和结果哪个更重要?有人说结果重要,也有人说过程重要,更有人觉得过程和结果都很重要,其实老苏觉得这个要分什么事情,就折(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 | 存放配置文件 |

端口
端口不能冲突

运行
开始资源会很高

甚至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/superset
amancevice/docker-superset: Docker image for AirBnB’s Superset
地址:https://github.com/amancevice/docker-superset
amancevice/superset
地址:https://hub.docker.com/r/amancevice/superset/
docker-superset/examples at main · amancevice/docker-superset
地址:https://github.com/amancevice/docker-superset/tree/main/examples
superset的docker安装配置和汉化_小小北漂-CSDN博客
地址:https://blog.csdn.net/u014589856/article/details/103582824
Superset 基于Docker的安装&入门解析_kamisamak的博客-CSDN博客
地址:https://blog.csdn.net/qq_33887096/article/details/114532948
本篇文章来源于微信公众号: 各种折腾