資料倉儲建模 中階

資料倉儲分區與叢集(Partitioning & Clustering)

AI 練習作答

請說明資料倉儲中分區與叢集的優化策略。

分區(Partitioning)

將大型表按某欄位值(通常是日期)分割為多個邏輯區塊。查詢時若 WHERE 子句包含分區欄位,只掃描相關分區(Partition Pruning),大幅減少資料掃描量。

常用欄位:event_date、created_at

以 BigQuery 為例:分區表的查詢費用 = 只掃描到的分區資料量。

叢集(Clustering)

在分區內,按一或多個欄位對資料進行排序儲存(類似索引)。查詢時若 WHERE 或 GROUP BY 包含叢集欄位,可以跳過大量資料塊。

常用欄位:user_id、country、category

最佳實踐

  • 分區欄位:高基數的時間欄位,確保每個分區不會太小也不會太大。
  • 叢集欄位:查詢中常見的 filter/group by 欄位,選擇基數適中的欄位。
  • 兩者可同時使用:先按日期分區,再在分區內按 user_id 叢集。
  • 避免過度分區(小分區過多反而影響效能)。

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分