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 |
| 密碼 | Wooo_Superset_2026 |
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 後:
- 點擊右上角
+→Database - 選擇
PostgreSQL - 輸入連線資訊
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
問題: 無法連線到外部資料庫
- 確認防火牆規則
- 確認資料庫用戶權限
- 測試連線:
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: 初始部署