搬瓦工部署 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% 折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。