# 1. 数仓分层的经典四层(ODS/DWD/DWS/ADS)各自职责、数据粒度与命名规范是什么?为什么数仓必须分层而不能直接使用业务库表? A DWD 层负责维度建模、明确最小粒度,DWS 层负责按维度汇总,ADS 层面向应用 ✓ 正确答案 B DWD 层保留与业务库完全一致的原始数据,禁止任何加工 C ODS 层直接做汇总宽表,命名以前缀 dws_ 开头 D ADS 层数据粒度最细,是所有其他层的上游
# 2. Kimball 维度建模与 Inmon 范式建模的核心差异是什么?互联网行业为什么普遍采用 Kimball 总线架构? A Kimball 总线架构依靠一致性维度保证各数据集市口径统一 ✓ 正确答案 B Inmon 采用自下而上的星型模型,Kimball 采用自上而下的 3NF 模型 C Kimball 模型会带来大量冗余,因此不适合互联网大数据场景 D Inmon 模型建模周期短、响应业务变化快,更适合互联网
# 3. 事实表的三种类型——事务事实表、周期快照事实表、累积快照事实表——分别适用什么业务场景?更新语义与存储开销有何差异? A 事务事实表记录状态快照,适合分析库存余额 B 累积快照事实表只增不改,每笔事务追加一行 C 累积快照事实表存储开销随周期数线性增长 D 周期快照事实表按固定周期覆盖写快照,适合账户余额、库存等状态分析 ✓ 正确答案
# 4. 拉链表(SCD Type 2)的原理与实现,如何用生效/失效时间与当前标记记录历史?与每日全量快照在存储与查询上的取舍? A 拉链表用 start_date/end_date/is_current 三段记录历史,存储量通常小于每日全量快照 ✓ 正确答案 B 拉链表每次属性变化都覆盖旧记录,不保留历史 C 拉链表查询当前状态必须扫描全部历史,性能必然低于快照表 D 拉链表只适合频繁变化的维度,不适合数据量大的场景
# 5. 维度建模的核心步骤,如何从业务过程出发确定粒度、维度与事实?粒度(Grain)错误会带来哪些口径问题? A 粒度应在建模完成后再根据查询结果确定 B 粒度越细越好,不需要考虑存储与性能 C 粒度决定事实表的行数级与分析明细度,粒度错误会导致重复计数等口径问题 ✓ 正确答案 D 粒度只影响维度数量,不影响事实可加性
# 6. 退化维度(Degenerate Dimension)是什么?订单号、交易流水号等业务键为何直接放在事实表中? A 订单号、交易流水号往往没有可分析的描述属性,直接作为事实字段放在事实表更高效 ✓ 正确答案 B 退化维度是必须单独建维度表的维度,才能保证一致性 C 退化维度必须做 SCD 历史管理,否则会丢失历史 D 退化维度只能用于事实表统计,不能用于关联其他明细
# 7. 一致性维度(Conformed Dimension)与总线矩阵的作用,为什么跨主题域共享维度是数仓可分析性的前提? A 一致性维度允许各数据集市对同一对象采用不同主键定义 B 一致性维度保证跨主题域共享的维度属性、主键一致,是跨域可分析的前提 ✓ 正确答案 C 总线矩阵以行为维度、列为业务过程,用于规划每张事实表 D 一致性维度只在单主题域内有效,不涉及跨域
# 8. 原子指标与派生指标的定义,如何用“业务过程 + 度量 + 聚合方式 + 统计维度”定义指标口径,避免同名不同义? A 原子指标可以叠加任意统计维度与过滤条件,是派生指标的基础 B 派生指标由"业务过程+度量+聚合方式"决定,不再需要维度 C 指标名称相同但口径不同属于正常现象,无需治理 D 原子指标由"业务过程+度量+聚合方式"确定,派生指标在此基础上叠加统计维度、时间周期与过滤条件 ✓ 正确答案
# 9. 数仓维度表的历史保留,SCD 拉链、全量快照与增量分区三种方案在存储成本、回填难度与查询易用性上的对比? A 全量快照存储成本最低,但查询必须回放历史 B 增量分区回填难度最大,查询当前态需合并历史基线 ✓ 正确答案 C SCD 拉链查询易用性最好,任意天直接查分区即可 D 全量快照回填难度最大,但存储成本最低
# 10. 数仓建模的规范化程度,为什么 ODS 层尽量贴源、DWD 层适度冗余、DWS 层宽表汇总?各层模型如何演进? A ODS 层应做深度清洗与规范化,剔除所有冗余字段 B ODS 尽量贴源保真,DWD 适度冗余,DWS 宽表汇总,是兼顾口径与性能的通用设计 ✓ 正确答案 C DWD 层应严格保持 3NF,禁止任何冗余 D DWS 层应保留最细粒度明细,不做任何聚合
# 11. 离线与实时两套数仓如何共用 ODS/DWD 模型与指标口径,避免两套烟囱式建设? A 共用 DWD 明细底座与统一指标字典,是避免两套烟囱式建设、保证口径一致的关键 ✓ 正确答案 B 实时数仓与离线数仓口径可以不同,各自独立即可 C 只需要在 ADS 层统一命名,就能解决口径不一致问题 D 实时数仓必须独立建一套 ODS,不能与离线共用
# 12. 事实表加宽与维度表加宽的差异,何时把常用维度属性冗余到事实表,何时保持星型规范? A 事实表加宽会减少冗余,但增加维度表连接 B 事实表加宽后维度属性变化无需任何处理 C 维度表加宽会破坏星型结构,应始终避免 D 高频使用且变化少的维度属性冗余到事实表可提升性能,变化频繁的属性应保留在维度表 ✓ 正确答案
# 13. 数仓数据域划分,如何按业务板块(交易、营销、风控)划分数据域并定义数据主题? A 数据域只能按用户维度划分,不能按业务板块划分 B 数据主题与数据域是同一层级的概念 C 数据域是业务板块的纵向划分,数据主题是数据域内更细的分析对象组织 ✓ 正确答案 D 数据域划分只影响命名,不影响数据治理与权限
# 14. 数仓与数据湖、湖仓一体的分层差异,Iceberg/Delta 如何承载 ODS/DWD 层并统一批流? A 数据湖天然提供 ACID 事务与强 schema,适合直接承载数仓 B Iceberg/Delta 通过元数据层实现 ACID、时间旅行与 schema 演进,可统一承载 ODS/DWD 并统一批流 ✓ 正确答案 C 湖仓一体只支持批处理,不支持实时流 D 数仓支持非结构化数据且扩展性优于数据湖
# 15. 数仓常见反模式,过度宽表、无粒度定义、快照表滥用、口径漂移的识别与治理? A 过度宽表字段越多越好,便于一次查询 B 快照表可以无限增长,无需考虑存储成本 C 口径漂移是正常现象,无需版本管理 D 无粒度定义会导致口径不明确与重复计数,治理需在建模前声明粒度并写入元数据 ✓ 正确答案
# 16. 数仓建模工具与流程,维度建模规范如何落地为 DDL?DataWorks/数仓建模平台的核心能力? A 建模规范只需人工口头约定,无需平台强制 B 建模平台通过可视化管理模型、自动生成 DDL、元数据与血缘管理,把规范落到代码与资产 ✓ 正确答案 C 平台生成的 DDL 无需任何校验,直接发布即可 D 血缘追踪与指标字典不属于建模平台能力
# 17. 指标一致性治理,OneData 方法论(主题域、数据域、指标域)与北极星指标体系的实践? A OneData 只关注指标命名,不涉及数据域划分 B 北极星指标是底层原子指标,无需拆解 C OneData 通过数据域、主题域、指标域划分与统一指标字典,保证指标口径全局唯一 ✓ 正确答案 D 北极星指标体系与 OneData 相互矛盾,不能结合
# 18. 大促/活动场景的数仓性能设计,分区裁剪、分桶、物化视图与预聚合在 DWS/ADS 层的应用? A 分区裁剪会强制扫描全表,无法减少数据量 B 物化视图与预聚合都会增加查询时的计算量,不利于大促 C 分桶按常用键使同桶数据同文件,可提升 Join 与聚合效率 ✓ 正确答案 D 大促场景无需分区,全表扫描即可保证性能