数据可视化平台Superset(安装篇)

前言

过程和结果哪个更重要?有人说结果重要,也有人说过程重要,更有人觉得过程和结果都很重要,其实老苏觉得这个要分什么事情,就折(xue)腾(xi)来说,老苏觉得过程比结果重要,因为虽然有可能你最终折腾失败了,但是在折腾的过程中你依然能学到很多东西。

以前老苏发文都是最终已经折腾成功的,但其实在老苏的笔记里还有大量折腾失败的案例,本文就是其中之一。

大概是3月份的时候,一个朋友准备搞数据可视化分析,让我折腾一下 Superset ,和很多软件一样,Superset 安装并不复杂,真正难的是怎么使用。


什么是 Superset ?

Superset 是由 Airbnb (知名在线短租赁公司)开源的数据分析与可视化平台。支持丰富的数据源连接,多种可视化方式,并能够对用户实现细粒度的权限控制。该工具主要特点是可自助分析、自定义仪表盘、分析结果可视化(导出)、用户/角色权限控制,还集成了一个 SQL 编辑器,可以进行 SQL 编辑查询等。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 superset ,选择第一个 amancevice/superset,版本选择 latest

本文完成于2021年3月,当时的 latest 和现在安装的可能会存在差异

docker 文件夹中,创建一个新文件夹,并将其命名为 superset。然后在 superset 文件夹中再创建两个新的子文件夹,命名为 configdata

文件夹 装载路径 备注
/docker/superset/config /home/superset 存放配置文件

端口

端口不能冲突

本地端口 容器端口 类型
8588 8088 TCP

运行

开始资源会很高

甚至CPU占用回到100%

这个过程不会太长,这个时候你如果看日志,会发现日志在快速不停的刷新

日志在 Docker –> 容器 –> amancevice-superset1 –> 详情 –> 终端机

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

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

配置用户名和密码

启动 Superset 服务之后,使用 superset-init 脚本以 admin 用户和 Superset 表初始化数据库

1
docker exec -it amancevice-superset1 superset-init

其中 amancevice-superset1 是容器的名称

用刚才创建的 admin 用户登录

常用命令

命令查询

1
docker exec -it amancevice-superset1 superset --help

  1. 设置您的本地管理员帐户
1
2
3
4
5
6
docker exec -it amancevice-superset1 superset fab create-admin \
--username admin \
--firstname Superset \
--lastname Admin \
--email admin@superset.com \
--password admin
  1. 将本地数据库迁移到最新版本
1
docker exec -it amancevice-superset1 superset db upgrade
  1. 加载示例
1
docker exec -it amancevice-superset1 superset load_examples
  1. 初始化 superset
1
docker exec -it amancevice-superset1 superset init

设置中文

Superset 的汉化并不完全,这里只是介绍方法。

  1. 进入容器
1
docker exec --user root -it amancevice-superset1 /bin/bash
  1. 安装vim
1
apt-get install vim

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

en 改为 zh

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

  1. 重启服务
1
2
3
4
5
6
7
8
# 退出容器
exit

# 停止容器
docker stop amancevice-superset1

# 启动容器
docker start amancevice-superset1

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

更换数据库

从安装日志可以看出来,系统默认使用的数据源为 SQLite,为了提高性能,可以改成 MySQL 数据库

  1. 群晖 MariaDB 中新建数据库 superset

只是为了演示方便,创建用户时勾选了 创建与用户同名的数据库并授予所有权限。

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

  1. 初始化数据库
1
2
3
4
5
# 退出容器
exit

# 初始化数据库
docker exec -it amancevice-superset1 superset db upgrade

  1. 初始化 superset
1
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