搬瓦工部署 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_hereyour_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 添加数据源。常见的连接字符串格式如下:

  • MySQLmysql+pymysql://user:password@host:3306/dbname
  • PostgreSQLpostgresql+psycopg2://user:password@host:5432/dbname
  • ClickHouseclickhousedb+connect://user:password@host:8123/dbname
  • SQLitesqlite:///path/to/database.db

如果需要连接额外的数据库类型,可能需要在 Superset 容器中安装对应的 Python 驱动:

docker compose exec superset pip install clickhouse-connect mysqlclient

八、创建图表和仪表板

连接数据源后,可以按照以下步骤创建可视化:

  • 创建数据集:进入 SQL Lab 执行查询,或在 Datasets 中直接选择表。
  • 创建图表:选择数据集后,选择图表类型并配置维度、指标和筛选条件。
  • 组装仪表板:将多个图表拖拽到同一仪表板中,可调整布局和添加筛选器。

九、性能优化建议

  • 启用缓存:配置 Redis 缓存可显著提升重复查询的响应速度。
  • 异步查询:对于耗时较长的查询,可配置 Celery 异步执行。
  • 数据库调优:为 PostgreSQL 元数据库增加 shared_bufferswork_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%)

购买时填入即可抵扣。