Files
ewoooc/docker/superset/README.md
OoO d6d8777e41
All checks were successful
CD Pipeline / deploy (push) Successful in 1m12s
V10.601 收斂 Gemini 與密鑰治理
2026-06-06 14:52:46 +08:00

5.5 KiB

Apache Superset 部署指南

概述

Apache Superset 是 MOMO Pro System 的 BI 分析平台,用於建立進階分析儀表板。

架構

                         ┌─────────────────────────────────────┐
                         │        Apache Superset (UAT)        │
                         │   https://monitor.wooo.work/superset│
                         └──────────────┬──────────────────────┘
                                        │
            ┌───────────────────────────┼───────────────────────────┐
            │                           │                           │
            ▼                           ▼                           ▼
    ┌───────────────┐          ┌───────────────┐          ┌───────────────┐
    │  UAT 資料庫   │          │  GCP 資料庫   │          │  DEV 資料庫   │
    │ 192.168.0.110 │          │35.194.233.141 │          │  127.0.0.1    │
    │ momo_analytics│          │ momo_analytics│          │ momo_database │
    └───────────────┘          └───────────────┘          └───────────────┘

快速部署

# 1. SSH 到 UAT 主機
ssh wooo@192.168.0.110

# 2. 進入 Superset 目錄
cd /home/wooo/momo_pro_system/docker/superset

# 3. 執行部署腳本
chmod +x deploy.sh
./deploy.sh deploy

# 4. 設定 Nginx 反向代理 (見下方)

# 5. 設定資料庫唯讀用戶 (見下方)

服務管理

# 查看狀態
./deploy.sh status

# 查看日誌
./deploy.sh logs

# 重啟服務
./deploy.sh restart

# 停止服務
./deploy.sh stop

# 清除所有資料 (危險)
./deploy.sh clean

訪問資訊

項目
內部 URL http://127.0.0.1:8088
外部 URL https://monitor.wooo.work/superset/
帳號 admin
密碼 <SUPERSET_ADMIN_PASSWORD>

Nginx 配置

將以下內容加入 /etc/nginx/sites-available/monitor:

# Superset BI 分析平台
location /superset/ {
    proxy_pass http://127.0.0.1:8088/;
    proxy_http_version 1.1;
    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_set_header X-Script-Name /superset;

    # WebSocket 支援
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    # 超時設定
    proxy_connect_timeout 300;
    proxy_send_timeout 300;
    proxy_read_timeout 300;
}

然後重啟 Nginx:

sudo nginx -t && sudo systemctl reload nginx

資料庫連線設定

1. 建立唯讀用戶

在 UAT PostgreSQL 執行:

kubectl exec -it momo-postgres-0 -n momo -- psql -U momo -d momo_analytics

執行 SQL:

CREATE ROLE superset_readonly WITH LOGIN PASSWORD 'Wooo_Superset_RO_2026';
GRANT CONNECT ON DATABASE momo_analytics TO superset_readonly;
GRANT USAGE ON SCHEMA public TO superset_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO superset_readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO superset_readonly;

2. 在 Superset 新增資料庫連線

登入 Superset 後:

  1. 點擊右上角 +Database
  2. 選擇 PostgreSQL
  3. 輸入連線資訊

UAT 環境連線:

postgresql+psycopg2://superset_readonly:Wooo_Superset_RO_2026@host.docker.internal:5432/momo_analytics

注意: 使用 host.docker.internal 連接主機上的 K8s PostgreSQL

GCP 環境連線:

postgresql+psycopg2://superset_readonly:Wooo_Superset_RO_2026@35.194.233.141:5432/momo_analytics

注意: GCP 需要先設定防火牆規則允許 UAT IP (114.32.151.246)

預計實作的儀表板

儀表板 對應功能 資料表
銷售分析總覽 /sales_analysis daily_sales_snapshot, realtime_sales_monthly
當日業績追蹤 /daily_sales daily_sales_snapshot
成長分析 /growth_analysis realtime_sales_monthly
月度總結 /monthly_summary_analysis monthly_summary_analysis
ABC 分析 /abc_analysis/detail products, price_records
商品價格趨勢 / (首頁看板) products, price_records

資源需求

項目 最低需求 建議配置
CPU 2 核心 4 核心
RAM 4 GB 8 GB
硬碟 10 GB 20 GB

故障排除

問題: 容器啟動失敗

# 查看日誌
docker compose logs superset

# 檢查資料庫連線
docker compose logs superset-db

問題: 無法連線到外部資料庫

  1. 確認防火牆規則
  2. 確認資料庫用戶權限
  3. 測試連線:
docker exec -it momo-superset bash
pip install psycopg2-binary
python -c "import psycopg2; conn = psycopg2.connect('postgresql://...')"

問題: SQL Lab 查詢超時

修改 superset_config.py:

SQLLAB_TIMEOUT = 600  # 秒

備份

# 備份 Superset 資料
docker exec superset-postgres pg_dump -U superset superset > superset_backup.sql

# 還原
docker exec -i superset-postgres psql -U superset superset < superset_backup.sql

更新日誌

  • 2026-02-08: 初始部署