数据可视化平台Superset(安装篇)
前言
过程和结果哪个更重要?有人说结果重要,也有人说过程重要,更有人觉得过程和结果都很重要,其实老苏觉得这个要分什么事情,就折(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
表初始化数据库
1 | docker exec -it amancevice-superset1 superset-init |
其中
amancevice-superset1
是容器的名称
用刚才创建的 admin 用户登录
常用命令
命令查询
1 | docker exec -it amancevice-superset1 superset --help |
- 设置您的本地管理员帐户
1 | docker exec -it amancevice-superset1 superset fab create-admin \ |
- 将本地数据库迁移到最新版本
1 | docker exec -it amancevice-superset1 superset db upgrade |
- 加载示例
1 | docker exec -it amancevice-superset1 superset load_examples |
- 初始化 superset
1 | docker exec -it amancevice-superset1 superset init |
设置中文
Superset
的汉化并不完全,这里只是介绍方法。
- 进入容器
1 | docker exec --user root -it amancevice-superset1 /bin/bash |
- 安装vim
1 | apt-get install vim |
- 修改
/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 | pybabel compile -d /usr/local/lib/python3.8/site-packages/superset/translations |
- 重启服务
1 | # 退出容器 |
- 打开主页
http://群晖IP:8588
,已经是中文了
更换数据库
从安装日志可以看出来,系统默认使用的数据源为 SQLite
,为了提高性能,可以改成 MySQL
数据库
- 群晖 MariaDB 中新建数据库
superset
只是为了演示方便,创建用户时勾选了
创建与用户同名的数据库并授予所有权限。
- 进入容器
1 | docker exec --user root -it amancevice-superset1 /bin/bash |
- 修改
/usr/local/lib/python3.8/site-packages/superset/config.py
文件
1 | vim /usr/local/lib/python3.8/site-packages/superset/config.py |
- 修改系统数据源,格式为
SQLALCHEMY_DATABASE_URI ="mysql://root:密码@xx.xx.xx.xx:3306/数据库名称?charset=utf8"
- 初始化数据库
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/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安装配置和汉化_小小北漂-CSDN博客
地址:https://blog.csdn.net/u014589856/article/details/103582824Superset 基于Docker的安装&入门解析_kamisamak的博客-CSDN博客
地址:https://blog.csdn.net/qq_33887096/article/details/114532948