搬瓦工部署 Apache Superset 数据可视化平台教程
Apache Superset 是一款现代化的开源数据可视化和商业智能平台,由 Airbnb 开发并捐赠给 Apache 基金会。它支持丰富的图表类型、交互式仪表板以及 SQL 查询编辑器,能够连接 MySQL、PostgreSQL、ClickHouse 等多种数据源。本文将介绍如何在搬瓦工 VPS 上通过 Docker 部署 Apache Superset,帮助你快速搭建属于自己的数据可视化平台。部署前请确保已安装 Docker 和 Docker Compose。
一、Superset 简介与功能特性
Apache Superset 拥有以下核心功能:
- 丰富的可视化组件:内置数十种图表类型,包括折线图、柱状图、饼图、热力图、地理地图、桑基图等。
- 交互式仪表板:支持拖拽布局,可创建多个仪表板并设置自动刷新。
- SQL Lab:内置的 SQL 编辑器,支持语法高亮、自动补全和查询结果可视化。
- 多数据源支持:原生支持 30 多种数据库,通过 SQLAlchemy 可扩展更多。
- 权限管理:基于角色的细粒度权限控制,支持 LDAP、OAuth 等认证方式。
- 缓存机制:支持 Redis 缓存查询结果,提升大数据量场景下的响应速度。
二、系统要求
- 操作系统:Ubuntu 20.04+ 或 Debian 11+(推荐 Ubuntu 22.04)。
- 内存:至少 2GB,推荐 4GB 以上以获得良好的查询性能。
- 磁盘:至少 10GB 可用空间。
- Docker:已安装 Docker 和 Docker Compose。
搬瓦工推荐选择 THE PLAN 或更高配置的方案。购买时使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买链接:bwh81.net。
三、创建项目目录
mkdir -p /opt/superset && cd /opt/superset
四、编写 Docker Compose 配置
创建 docker-compose.yml 文件:
cat > /opt/superset/docker-compose.yml <<'EOF'
version: '3.8'
services:
superset-db:
image: postgres:15
restart: always
environment:
POSTGRES_DB: superset
POSTGRES_USER: superset
POSTGRES_PASSWORD: your_db_password_here
volumes:
- superset_db_data:/var/lib/postgresql/data
superset-cache:
image: redis:7-alpine
restart: always
volumes:
- superset_redis_data:/data
superset:
image: apache/superset:latest
restart: always
ports:
- "8088:8088"
environment:
SUPERSET_SECRET_KEY: your_secret_key_here
DATABASE_HOST: superset-db
DATABASE_PORT: 5432
DATABASE_DB: superset
DATABASE_USER: superset
DATABASE_PASSWORD: your_db_password_here
REDIS_HOST: superset-cache
REDIS_PORT: 6379
depends_on:
- superset-db
- superset-cache
volumes:
- superset_app_data:/app/superset_home
volumes:
superset_db_data:
superset_redis_data:
superset_app_data:
EOF
请将 your_db_password_here 和 your_secret_key_here 替换为强密码。可以用以下命令生成随机密钥:
openssl rand -base64 42
五、启动服务
cd /opt/superset
docker compose up -d
等待镜像下载完毕后,初始化数据库和创建管理员账户:
# 初始化数据库
docker compose exec superset superset db upgrade
# 创建管理员用户
docker compose exec superset superset fab create-admin \
--username admin \
--firstname Admin \
--lastname User \
--email admin@example.com \
--password admin_password_here
# 初始化默认角色和权限
docker compose exec superset superset init
六、配置反向代理
建议使用 Nginx 反向代理并配置 HTTPS。创建 Nginx 配置文件:
cat > /etc/nginx/sites-available/superset <<'EOF'
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://127.0.0.1:8088;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
}
}
EOF
ln -s /etc/nginx/sites-available/superset /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
然后使用 Certbot 申请 SSL 证书:
certbot --nginx -d your_domain.com
七、连接数据源
登录 Superset 后台(默认端口 8088),进入 Settings → Database Connections,点击 + Database 添加数据源。常见的连接字符串格式如下:
- MySQL:
mysql+pymysql://user:password@host:3306/dbname - PostgreSQL:
postgresql+psycopg2://user:password@host:5432/dbname - ClickHouse:
clickhousedb+connect://user:password@host:8123/dbname - SQLite:
sqlite:///path/to/database.db
如果需要连接额外的数据库类型,可能需要在 Superset 容器中安装对应的 Python 驱动:
docker compose exec superset pip install clickhouse-connect mysqlclient
八、创建图表和仪表板
连接数据源后,可以按照以下步骤创建可视化:
- 创建数据集:进入 SQL Lab 执行查询,或在 Datasets 中直接选择表。
- 创建图表:选择数据集后,选择图表类型并配置维度、指标和筛选条件。
- 组装仪表板:将多个图表拖拽到同一仪表板中,可调整布局和添加筛选器。
九、性能优化建议
- 启用缓存:配置 Redis 缓存可显著提升重复查询的响应速度。
- 异步查询:对于耗时较长的查询,可配置 Celery 异步执行。
- 数据库调优:为 PostgreSQL 元数据库增加
shared_buffers和work_mem参数。 - 限制查询行数:在管理界面中设置默认查询行数上限,避免大查询拖垮服务。
十、数据备份
定期备份 PostgreSQL 元数据库以保护仪表板和配置数据:
# 备份数据库
docker compose exec superset-db pg_dump -U superset superset > /opt/superset/backup_$(date +%Y%m%d).sql
# 恢复数据库
cat backup_file.sql | docker compose exec -T superset-db psql -U superset superset
十一、常见问题
Superset 启动后页面空白
检查是否已执行数据库初始化命令。查看容器日志排查错误:
docker compose logs superset
无法连接外部数据库
确保目标数据库允许远程连接,并且防火墙已放行对应端口。如果 Superset 运行在 Docker 中,使用宿主机 IP 而非 localhost 访问外部服务。
图表加载缓慢
优化数据库查询,为常用字段添加索引,或启用 Redis 缓存减少重复查询。
总结
Apache Superset 是一款功能强大且完全免费的数据可视化平台,适合个人开发者和中小团队使用。通过在搬瓦工 VPS 上自托管,你可以完全掌控数据安全并根据需求灵活扩展。如果你需要更多的数据分析工具,可以参考 Metabase 商业智能 或 Redash 仪表板 教程。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 折扣。