Databricks 導入與運作規格

日期:2026-03-20 目的:說明 item master 如何對應到 Databricks 的 medallion 分層、Unity Catalog、資料品質規則、表清單、job 切法與發布流程。 相關文件:

1. 先講結論

Databricks 的 Bronze / Silver / Gold 很適合套在這個專案,但要分清楚:

  1. Bronze / Silver / Gold

    • 是表層級
    • 回答資料走到哪一層
  2. item_tier / mapping_tier

    • 是記錄層級
    • 回答商品或 mapping 成熟到什麼程度

所以正確切法是:

Bronze / Silver / Gold = 表層級
BI / SI = 身份層級
item_tier / mapping_tier = 成熟度層級

2. 建議的 Unity Catalog 結構

第一版建議先用一個 catalog:

item_master

底下三個 schema:

item_master.bronze
item_master.silver
item_master.gold

第一版不要再切太細。
等流程穩定後,再考慮細分成:

item_master.bronze_raw
item_master.silver_core
item_master.silver_review
item_master.gold_master
item_master.gold_serving

3. 各層應該放什麼

3.1 Bronze

Bronze 只放原始資料,不做最終判斷。

建議表:

原則:

3.2 Silver

Silver 是主要工作層。

建議表:

這層開始做:

3.3 Gold

Gold 才放正式可用結果。

建議表:

建議 view:

4. 表責任邊界

4.1 Bronze 的責任

4.2 Silver 的責任

4.3 Gold 的責任

5. item_tier / mapping_tier 放在哪層

5.1 Bronze

不建議在 Bronze 正式標 item_tier / mapping_tier

5.2 Silver

最適合開始標:

也就是:

在 Silver:

5.3 Gold

正式放:

6. Data Quality 規則

Databricks expectations 建議分三種處理:

6.1 Bronze

規則 建議處理
非關鍵欄位缺漏 warn
raw_pn 為空 warn
品牌或分類缺失 warn
raw_payload 無法解析 fail
完全沒有來源識別欄位 fail

Bronze 原則:

6.2 Silver

規則 建議處理
normalized_pn 過短或無意義 warn
brand_hintcategory_hint 缺失 warn
全零碼、placeholder barcode drop
明確非法條碼格式 drop
cluster_id 不唯一 fail
candidate_id 無法連回 cluster fail
review_answer 無對應 task fail

6.3 Gold

規則 建議處理
BI / SI 代碼格式不合法 fail
item_tier 非法 fail
mapping_tier 非法 fail
mapping_decisions 無對應 SI fail
mapping_tier = bronze 不發布
高風險條碼未解除阻擋旗標 不發布

7. 發布邊界

不是所有 Gold 表資料都要對外釋出。
建議切兩層:

  1. gold 基礎表
  2. gold serving view

第一版 serving 條件建議:

若對外要更保守,可收斂成:

8. Job 切法

第一版不建議做成一個超大 job。
建議拆成 5 類:

  1. Bronze 匯入 job
  2. Silver 正規化與聚類 job
  3. Silver 候選與審核任務 job
  4. Gold 發布 job
  5. 監控與稽核 job

若要更明確,建議先建這 8 個 job:

  1. bronze_invoice_ingest
  2. bronze_channel_master_ingest
  3. bronze_crowd_ingest
  4. silver_invoice_prepare
  5. silver_candidate_build
  6. silver_review_sync
  7. gold_master_publish
  8. ops_job_monitor

9. 建議的 task DAG

9.1 主流程

bronze_invoice_ingest
  ↓
silver_invoice_prepare
  ↓
silver_candidate_build
  ↓
silver_review_sync
  ↓
gold_master_publish

9.2 旁路流程

bronze_channel_master_ingest
  ↓
silver_candidate_build

bronze_crowd_ingest
  ↓
silver_candidate_build
  ↓
silver_review_sync

9.3 監控流程

all jobs
  ↓
ops_job_monitor

10. 各 job 的主要責任

10.1 bronze_invoice_ingest

10.2 bronze_channel_master_ingest

10.3 bronze_crowd_ingest

10.4 silver_invoice_prepare

10.5 silver_candidate_build

10.6 silver_review_sync

10.7 gold_master_publish

10.8 ops_job_monitor

11. 排程、重跑與回填

11.1 適合排程跑的

11.2 適合事件驅動的

11.3 重跑原則

  1. 每批資料都要有 source_batch_id 或等價批號
  2. Silver 與 Gold 都要做 idempotent 寫入
  3. 失敗後優先用 Databricks 的 repair run
  4. 不用人工直接改表補資料

11.4 回填分三種

12. SLA 與監控

第一版可先用保守目標:

監控至少要看:

13. 最小上線組合

如果第一版不想做太大,最少先建:

Bronze

Silver

Gold

這樣已經能開始跑:

14. Unity Catalog、AI 與眾包的角色

14.1 Unity Catalog

最值得用在:

  1. 權限
  2. Lineage
  3. 審計
  4. 資產目錄
  5. 標籤與分類

14.2 AI

AI 最適合放在 Silver:

但 AI 的結果不要直接跳到 Gold。

14.3 眾包

眾包結果也應先落 Silver:

最後由規則與人工推進到 Gold。

15. 官方參考

16. 一句話收尾

這份文件現在同時負責 Databricks 的架構、表、品質規則與 job 切法。
如果要把 item master 落到 Databricks,先看這份就夠了。