
1) 【一句话结论】
以K12教育场景“学员”为中心,采用星型模型,以“学员学习行为”事实表为核心,关联学员、课程、教师、时间等维度表,通过事件时间、数据分区等工程优化,支撑课程效果与教师绩效分析。
2) 【原理/概念讲解】
维度模型(星型模型)是数据仓库的核心架构,核心是事实表(存储业务事件的核心度量)和维度表(存储描述性维度)。事实表是模型中心,记录业务事件(如“学员学习”“作业提交”)及业务度量(如学习时长、作业正确率),主键为复合键(事实键+维度键);维度表围绕事实表展开,存储描述性属性(如学员姓名、课程名称、教师专业),主键为单键,用于关联事实表。类比:事实表像“事件日志”(记录每次学习、作业提交),维度表像“标签”(给事件打上“学员是谁”“学什么课程”“哪个老师教”的标签),通过标签关联事件,便于分析业务指标。
3) 【对比与适用场景】
| 类别 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 事实表 | 存储业务事件的核心度量(如学习时长、作业正确率)及维度键 | 主键为复合键(事实键+维度键),存储高基数、可加性度量 | 支撑课程效果(如评估课程有效性)、教师绩效(如评估教师表现)分析 | 度量需可加性(如总学习时长=各课程学习时长之和),避免非可加性度量(如平均分);需包含事件时间戳,支持时间分析 |
| 维度表 | 存储描述性维度(如学员、课程、教师)的属性 | 主键为单键(如学员ID、课程ID),存储低基数、非度量属性 | 关联事实表,提供分析维度 | 属性需稳定(如课程名称、教师姓名),避免频繁变更;多级维度需设计层级关系(如学校-地区、年级-学校) |
4) 【示例】
学员学习行为(事件ID, 事件时间戳, 学习时长, 作业正确率, 考试分数, 课程ID, 学员ID, 教师ID, 事件类型)
学员维度(学员ID, 姓名, 年级, 学校, 注册日期, 更新时间)
课程维度(课程ID, 课程名称, 科目, 难度等级, 开课日期, 课程类型)
教师维度(教师ID, 姓名, 专业, 带班学员数, 平均作业正确率, 聘用时间)
时间维度(时间ID, 年份, 季度, 月份, 周数, 日期)
5) 【面试口播版答案】
面试官您好,针对K12教育场景以“学员”为中心设计维度模型,我采用星型模型,以“学员学习行为”事实表为核心,关联学员、课程、教师、时间等维度表。具体来说,事实表记录学员学习事件(如学习时长、作业正确率),维度表存储学员、课程、教师等描述性信息。事实表包含事件时间戳(如2024-01-15 10:30)、学习时长(分钟)、作业正确率(%)等度量,维度键关联学员ID、课程ID、教师ID。维度表如“学员维度”存储学员ID、姓名、年级、学校,“课程维度”存储课程ID、课程名称、难度等级。这样设计能支撑课程效果分析(如通过学习时长、作业正确率评估课程有效性),也能支撑教师绩效分析(如通过带班学员数、平均作业正确率评估教师表现)。同时,事实表按课程ID+事件时间分区,并建立学习时长、作业正确率等度量的索引,提升查询性能,确保分析效率。
6) 【追问清单】
7) 【常见坑/雷区】