322 lines
8.5 KiB
Markdown
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. 評估是否嵌入或取代現有頁面
|