# Superset 儀表板建置指南 > MOMO Pro System - BI 分析平台 > 建立日期: 2026-02-07 --- ## 存取資訊 | 項目 | 值 | |------|-----| | URL | https://monitor.wooo.work/superset/ | | 帳號 | admin | | 密碼 | | --- ## 已建立的資料集 | 資料集 | 說明 | 主要時間欄位 | |--------|------|--------------| | `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 ``` ### 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. 評估是否嵌入或取代現有頁面