Files
ewoooc/docker/superset/DASHBOARD_GUIDE.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

322 lines
8.5 KiB
Markdown

# Superset 儀表板建置指南
> MOMO Pro System - BI 分析平台
> 建立日期: 2026-02-07
---
## 存取資訊
| 項目 | 值 |
|------|-----|
| URL | https://monitor.wooo.work/superset/ |
| 帳號 | admin |
| 密碼 | <SUPERSET_ADMIN_PASSWORD> |
---
## 已建立的資料集
| 資料集 | 說明 | 主要時間欄位 |
|--------|------|--------------|
| `daily_sales_snapshot` | 每日銷售快照 | snapshot_date |
| `realtime_sales_monthly` | 即時業績月度資料 | - |
| `monthly_summary_analysis` | 月度總結分析 | report_month |
| `products` | 商品資料 | updated_at |
| `price_records` | 價格記錄 | timestamp |
---
## 需建立的儀表板
### 1. 銷售分析總覽 (Sales Analysis Dashboard)
**對應頁面**: `/sales_analysis`
**建議圖表**:
| 圖表名稱 | 圖表類型 | 資料集 | 說明 |
|----------|----------|--------|------|
| 每日銷售趨勢 | Line Chart | daily_sales_snapshot | X軸: snapshot_date, Y軸: SUM(金額) |
| 銷售額 TOP 10 商品 | Bar Chart | daily_sales_snapshot | 依商品名稱群組,取前 10 名 |
| 銷售通路分佈 | Pie Chart | daily_sales_snapshot | 依通路群組 |
| 星期銷售熱力圖 | Heatmap | daily_sales_snapshot | X軸: 星期, Y軸: 時段 |
| 銷售數據表格 | Table | daily_sales_snapshot | 詳細銷售記錄 |
**建立步驟**:
1. 前往 **Charts** > **+ Chart**
2. 選擇資料集 `daily_sales_snapshot`
3. 選擇圖表類型 (如 Line Chart)
4. 設定 X 軸、Y 軸、分組欄位
5. 點擊 **Save** 儲存圖表
6. 將圖表加入儀表板
---
### 2. 當日業績追蹤 (Daily Sales Dashboard)
**對應頁面**: `/daily_sales`
**建議圖表**:
| 圖表名稱 | 圖表類型 | 資料集 | 說明 |
|----------|----------|--------|------|
| 當日業績總覽 | Big Number | daily_sales_snapshot | 顯示今日總銷售額 |
| 業績達成率 | Gauge Chart | daily_sales_snapshot | 對比目標達成率 |
| 時段業績分佈 | Area Chart | daily_sales_snapshot | X軸: 時段, Y軸: 金額 |
| 商品銷售排行 | Bar Chart | daily_sales_snapshot | 今日銷售 TOP 20 |
| 業績明細表 | Table | daily_sales_snapshot | 可篩選日期的明細 |
**篩選器設定**:
- 新增 **Time Filter** 設定為 `snapshot_date`
- 預設顯示今天的資料
---
### 3. 成長分析 (Growth Analysis Dashboard)
**對應頁面**: `/growth_analysis`
**建議圖表**:
| 圖表名稱 | 圖表類型 | 資料集 | 說明 |
|----------|----------|--------|------|
| 月度成長趨勢 | Line Chart | realtime_sales_monthly | 顯示月度成長率 |
| 年增率比較 | Bar Chart | realtime_sales_monthly | YoY 比較 |
| 成長率 KPI | Big Number with Trendline | realtime_sales_monthly | 月成長率指標 |
| 品類成長分析 | Treemap | realtime_sales_monthly | 各品類成長貢獻 |
**計算欄位** (Metrics):
```sql
-- 月增長率
(SUM() - SUM()) / SUM() * 100
```
---
### 4. 月度總結 (Monthly Summary Dashboard)
**對應頁面**: `/monthly_summary_analysis`
**建議圖表**:
| 圖表名稱 | 圖表類型 | 資料集 | 說明 |
|----------|----------|--------|------|
| 月度業績總覽 | Big Number | monthly_summary_analysis | 當月總業績 |
| 月度趨勢比較 | Line Chart | monthly_summary_analysis | 12 個月趨勢 |
| 月度業績表格 | Pivot Table | monthly_summary_analysis | 月份 x 指標 |
| 月環比分析 | Bar Chart | monthly_summary_analysis | MoM 比較 |
---
### 5. ABC 分析 (ABC Analysis Dashboard)
**對應頁面**: `/abc_analysis/detail`
**建議圖表**:
| 圖表名稱 | 圖表類型 | 資料集 | 說明 |
|----------|----------|--------|------|
| ABC 分類圓餅圖 | Pie Chart | products | A/B/C 類商品佔比 |
| 帕累托曲線 | Dual Line Chart | products | 累計銷售貢獻 |
| ABC 商品列表 | Table | products | 可篩選分類的商品表 |
| 分類銷售佔比 | Sunburst Chart | products | 階層式銷售分佈 |
**計算欄位** (需在 SQL Lab 建立虛擬資料集):
```sql
SELECT
i_code,
product_name,
total_sales,
SUM(total_sales) OVER (ORDER BY total_sales DESC) as cumulative_sales,
SUM(total_sales) OVER () as grand_total,
CASE
WHEN SUM(total_sales) OVER (ORDER BY total_sales DESC) / SUM(total_sales) OVER () <= 0.7 THEN 'A'
WHEN SUM(total_sales) OVER (ORDER BY total_sales DESC) / SUM(total_sales) OVER () <= 0.9 THEN 'B'
ELSE 'C'
END as abc_class
FROM products
WHERE total_sales > 0
ORDER BY total_sales DESC
```
---
### 6. 商品價格趨勢 (Price Trends Dashboard)
**對應頁面**: 商品看板的價格趨勢
**建議圖表**:
| 圖表名稱 | 圖表類型 | 資料集 | 說明 |
|----------|----------|--------|------|
| 價格變動時間線 | Line Chart | price_records | 選定商品的價格歷史 |
| 今日價格變動 | Table | price_records | 今日有變動的商品 |
| 漲價/降價統計 | Bar Chart | price_records | 漲降價商品數量 |
| 價格變動熱力圖 | Heatmap | price_records | 時間 x 商品類別 |
**篩選器**:
- 商品篩選器 (product_id)
- 時間範圍篩選器 (timestamp)
---
## 建立儀表板步驟
### Step 1: 建立圖表
1. 登入 Superset
2. 點擊 **Charts** > **+ Chart**
3. 選擇資料集 (如 `daily_sales_snapshot`)
4. 選擇圖表類型
5. 設定維度 (Dimensions) 和指標 (Metrics)
6. 設定篩選條件
7. 點擊 **Run** 預覽
8. 點擊 **Save** 儲存
### Step 2: 建立儀表板
1. 點擊 **Dashboards** > **+ Dashboard**
2. 輸入儀表板名稱 (如「銷售分析總覽」)
3. 點擊 **Edit dashboard**
4. 從右側 Charts 清單拖曳圖表到畫布
5. 調整圖表大小和位置
6. 新增篩選器 (Filter box)
7. 點擊 **Save**
### Step 3: 設定篩選器
1. 在儀表板編輯模式
2. 點擊 **+ Add filter** (左上角)
3. 選擇篩選類型:
- **Time Filter**: 時間範圍
- **Select Filter**: 下拉選單
- **Range Filter**: 數值範圍
4. 選擇要影響的圖表
---
## SQL Lab 進階查詢
對於複雜的分析需求,可以使用 SQL Lab 建立虛擬資料集:
### 範例: 銷售成長分析虛擬表
```sql
-- 建立虛擬資料集: sales_growth_analysis
WITH monthly_sales AS (
SELECT
DATE_TRUNC('month', snapshot_date) as month,
SUM() as total_amount,
COUNT(DISTINCT ) as product_count,
COUNT(*) as order_count
FROM daily_sales_snapshot
GROUP BY DATE_TRUNC('month', snapshot_date)
)
SELECT
month,
total_amount,
product_count,
order_count,
LAG(total_amount) OVER (ORDER BY month) as prev_month_amount,
(total_amount - LAG(total_amount) OVER (ORDER BY month)) /
NULLIF(LAG(total_amount) OVER (ORDER BY month), 0) * 100 as growth_rate
FROM monthly_sales
ORDER BY month DESC
```
**使用步驟**:
1. 點擊 **SQL Lab** > **SQL Editor**
2. 貼上 SQL 查詢
3. 執行查詢確認結果
4. 點擊 **Save** > **Save Dataset**
5. 使用此虛擬資料集建立圖表
---
## 權限設定
### 建立唯讀角色
1. 前往 **Settings** > **List Roles**
2. 點擊 **+ Add**
3. 角色名稱: `MOMO_Viewer`
4. 權限設定:
- `can read on Chart`
- `can read on Dashboard`
- `datasource access on [MOMO_UAT].[daily_sales_snapshot]`
- (其他需要的資料集權限)
### 建立用戶
1. 前往 **Settings** > **List Users**
2. 點擊 **+ Add**
3. 設定帳號密碼
4. 指派角色 `MOMO_Viewer`
---
## 嵌入儀表板到現有系統
### iframe 嵌入
```html
<!-- 嵌入完整儀表板 -->
<iframe
src="https://monitor.wooo.work/superset/superset/dashboard/1/?standalone=true"
width="100%"
height="800px"
frameborder="0">
</iframe>
```
### Superset 嵌入設定
1. 前往 **Settings** > **Feature Flags**
2. 啟用 `ENABLE_DASHBOARD_EMBEDDING`
3. 在儀表板設定中允許嵌入
---
## 排程報告 (未來功能)
Superset 支援排程發送報告:
1. 前往儀表板
2. 點擊 **...** > **Schedule Report**
3. 設定:
- 收件人 (Email)
- 排程頻率 (Daily/Weekly)
- 報告格式 (PDF/Image)
> 注意: 需要額外設定 SMTP 和 Celery Beat
---
## 常見問題
### Q1: 圖表顯示「No data」
- 檢查時間篩選器範圍
- 確認資料集有資料
- 檢查 SQL 查詢條件
### Q2: 連線到 MOMO_UAT 失敗
- 確認 PostgreSQL Pod IP 正確
- 檢查 superset_readonly 用戶權限
- 驗證網路連通性
### Q3: 儀表板載入緩慢
- 減少單一儀表板的圖表數量
- 使用時間範圍限制資料量
- 考慮建立物化視圖
---
## 下一步
1. 依照本指南建立 6 個儀表板
2. 測試所有圖表功能
3. 設定用戶權限
4. 評估是否嵌入或取代現有頁面