数据岗位面试题更新 2026-08-05

在数据仓库建模过程中,维度表和事实表各自承担什么角色?请说明它们的核心设计原则,并解释为什么需要遵循这些原则。

数据系统设计技术原理方案权衡

考察说明

考查对数据仓库核心建模概念(维度建模)的理解,包括维度表与事实表的职责划分及设计规范。

回答思路

  1. 【回答框架 1】维度表用于描述业务过程中的‘谁、什么、何时、何地’等上下文信息,包含描述性属性和层级关系,主键为代理键或自然键,设计上追求冗余可控、易于理解和查询,遵循缓慢变化维(SCD)策略处理历史变化。
  2. 【回答框架 2】事实表用于记录业务过程的度量值,如销售额、订单量,包含外键关联维度表以及可加、半可加或不可加的度量列,设计上关注粒度定义,粒度越细,事实表行数越多,但分析灵活性越高。
  3. 【回答框架 3】设计原则方面,维度表应使用有意义的业务名称、避免使用可能变化的自然键作为主键、适当冗余以提升查询性能;事实表应明确声明粒度、确保度量一致性、避免在事实表中存储描述性信息,并考虑分区和索引以优化加载与查询。
  4. 【回答框架 4】维度建模通常采用星型或雪花型模式,星型模式将维度表直接连接事实表,查询性能好;雪花型模式规范化维度表,减少冗余但增加关联复杂度,实际中星型更常用。
  5. 【回答框架 5】设计时还需考虑业务过程与一致性维度,确保不同事实表共享的维度保持一致,以支持跨流程分析。
  6. 【关键点 1】维度表是描述性上下文,事实表是度量性业务事件。
  7. 【关键点 2】事实表粒度必须明确,粒度决定分析能力与存储成本。
  8. 【关键点 3】维度表主键建议使用代理键,避免自然键变化影响关联。
  9. 【关键点 4】星型模式通常优于雪花型,查询性能更佳。
  10. 【关键点 5】一致性维度是跨事实表分析的基础。
  11. 【易错点 1】将描述性字段放入事实表,导致冗余和粒度混乱。
  12. 【易错点 2】忽略缓慢变化维处理,导致历史分析不准确。
  13. 【易错点 3】事实表粒度定义不清,导致数据重复或无法下钻。