1. 引言
在线教育行业随着互联网技术的飞速突破而发展迅速,用户规模和市场规模不断扩大。然而伴随着数据量的增加,传统数据库系统在处理大量复杂数据时面临性能瓶颈和数据集成困难[1]。因此,本研究的目的是开发并实现一个基于SQL Server的在线教育数据仓库系统,通过ETL技术实现多源数据集成,采用星型/雪花模型组织数据,并利用SSAS进行挖掘分析、SSRS生成可视化报表。
现有研究如刘力[2]采用纯星型模型简化查询,但牺牲了维度分析的灵活性,而基于Hadoop的方案虽支持海量数据,但实时性不足。本研究的创新性在于:混合模型优化,结合星型模型与雪花模型的优势,在查询效率与深度分析之间取得平衡;技术栈整合,首次在SQL Server生态中实现SSIS、SSAS、SSRS全链路闭环;教育场景适配,针对学习行为分析设计专用度量。
2. 系统设计
2.1. 系统总体架构设计
本系统总体架构采用分层设计理念,自下而上依次为数据采集层、ETL层、数据存储层、数据分析层和报表展示层,各层紧密协作,共同实现在线教育数据的高效管理与分析[3]。
2.2. 系统功能设计
数据采集模块支持多源异构数据接入,包括SQL Server关系型数据库和CSV/Excel文件系统,实现学生学习行为、课程资源等数据的自动化采集[4]。通过SSIS工具建立数据管道,确保数据抽取的高效性和准确性[5]。
数据存储模块采用星型–雪花混合模型组织数据,构建以学习行为和教学效果为核心的事实表,关联维度表[6]。通过建立聚集索引和分区存储优化查询性能[7]。
数据分析模块基于SSAS实现多维OLAP分析,支持切片、切块、钻取等分析行为。
报表生成模块通过SSRS提供可视化设计界面,支持拖拽式创建各类型报表。
2.3. 数据仓库设计
2.3.1. 数据仓库概念设计
本系统采用多维数据模型架构,围绕“学生学习行为分析”和“教学效果评估”两大主题设计[8]。事实表包括学习行为事实表(记录学习时长、视频观看时长等指标)和考试结果事实表(成绩、答题时间等指标) [9]。维度表设计涵盖时间维度表(支持多级时间分析)、课程维度表(实现课程层次钻取)和学生维度表(用户细分分析),通过星型–雪花混合模型实现高效查询与深度分析。
2.3.2. 数据仓库逻辑设计
在线教育数据仓库采用星型–雪花混合模型,在保证查询效率的同时支持深度分析[10]。维度表设计方面,课程维度表(DimCourse)以代理键CourseKey为主键,包含课程ID、标题、状态和创建时间等核心属性。用户维度表(DimUser)通过UserKey唯一标识用户,记录用户ID、角色和等级信息。时间维度表(DimTime)提供完整的时间层次结构,包含日期、季度等字段。章节维度表通过ChapterKey关联课程维度,记录章节编号、标题等详细信息。任务维度表则与章节维度关联,包含任务编号、标题、时间范围等属性。试卷维度表(DimTest)以TestKey为主键,关联课程维度,记录试卷名称、限时、总分等考试特征信息[11]。
学习行为事实表(FactLearning)通过UserKey、CourseKey、TaskKey和TimeKey关联各维度表,记录学习时长、视频观看时长和任务完成状态等核心指标。考试结果事实表(FactTestResults)同样采用多维度关联设计,存储考试成绩、答题时间、通过状态和教师评语等关键数据。
2.3.3. 数据仓库物理设计
该数据仓库采用星型–雪花混合存储架构,建立“主键聚集–外键覆盖–热点组合”三级索引体系。基于访问频率实施智能分层存储:热数据(3月内)使用NVMe SSD,温数据存SAS HDD,冷数据归档至磁带库。通过时间分区函数实现季度数据划分,优化存储成本与查询性能的平衡。
3. 系统实现与应用
本研究基于天池平台提供的在线教育数据集,链接为https://tianchi.aliyun.com/dataset/172411,采用分层处理策略实现数据采集。首先通过Excel进行编码和格式转换,再利用Power Query完成数据清洗预处理,最终通过SQL Server实现高效存储。对于大规模数据,采用SSIS包实现自动化批量导入,构建完整的数据处理链路。
Figure 1. Multi-dimensional dataset
图1. 多维数据集
数据分析模块在SSDT中实现完整的ETL流程。通过创建SSIS项目,使用OLE DB组件连接数据库,经数据转换和条件拆分等处理后加载至数据仓库。同时,构建Analysis Services项目,创建维度和多维数据集,配置层次结构与度量值,完成OLAP立方体建模,见图1。该系统支持上卷、下钻、切片和钻取四种核心分析操作,为在线教育提供全方位的分析视角。上卷操作通过减少维度或爬升概念层次结构来合并或聚合数据,从而从更宏观的角度观察学习情况。下钻操作通过将信息分解为更小的部分来深入分析数据。例如深入到按月份、按具体日期的数据进行查看,帮助用户发现更细粒度的数据细节。切片操作允许用户按时间、课程、学生等多个维度进行灵活操作,揭示不同因素间的关联关系。钻取操作支持用户从宏观数据深入到微观细节,例如从课程的总体学习指标逐步钻取到每个学生的具体学习记录,包括学习时长、完成的任务、考试成绩等详细信息,见图2。针对在线教育的特点和需求,系统支持聚类分析、关联规则挖掘等数据挖掘算法。在聚类分析中,通过设置合适的参数,如聚类的数量、距离度量方式等,将学生按照学习行为模式、成绩水平等因素进行分类,发现不同类型学生的特点和共性,为个性化教学和课程推荐提供依据。在关联规则挖掘方面,通过设置支持度、置信度等参数,输入相关的数据,运行数据挖掘模型,挖掘学生学习行为与课程成绩之间的潜在关系。
Figure 2. Results of drilling operations
图2. 钻取操作结果
数据展示模块通过Reporting Services项目实现可视化呈现。连接SSAS多维数据集作为数据源,使用MDX查询构建共享数据集。在报表设计中采用表格控件展示学习详情,可以按课程和时间维度展示学生学习时长分布,实现多维度数据的有效呈现,能够动态计算各维度组合的汇总值与占比,直观揭示学习行为的时间规律与课程偏好,帮助用户从宏观角度把握学生学习情况的分布特征。例如,通过分析“学习行为事实表”中的时间维度数据,发现学生在10:00~12:00的活跃度最高,可建议将重要课程或直播教学安排在该时段。同时,通过对比不同课程的学习时长和完成率,筛选出学生普遍投入时间较少的课程,为优化课程内容或调整教学节奏提供依据。图表报表可以通过可视化的方式展示学生学习行为趋势,如折线图、柱状图等。将字段分别拖到类别区域和值区域,并设置图表样式,包括颜色、图例、标题等,以直观的图表展示数据趋势,如按月统计课程参与人数的波动情况,或对比不同地区学生的平均成绩差异,强化数据的时空洞察力,使用户能够更直观地理解数据背后的含义,见图3。例如,通过柱状图发现某班学生的平均成绩显著低于其他班级,可针对性地加强该班级的教学辅导;或通过折线图分析某课程的学习时长随时间下降的趋势,及时调整教学策略。报表通过字段绑定和样式优化,支持数据下钻查看明细。例如从整体课程表现钻取到具体章节的学习数据,帮助教师识别难点内容并调整教学重点。最终将设计完成的报表发布至SSRS服务器或SharePoint平台,实现在线共享与访问,为教育决策提供有力支持。
Figure 3. Statistics of chapter learning duration
图3. 章节学习时长统计
系统测试验证了三大核心模块功能:ETL模块测试确认数据抽取、清洗和加载流程运行正常,数据处理准确无误;多维数据建模测试验证了维度表与事实表的关联关系正确,MDX查询响应快速且结果精确;数据展示模块测试确保OLAP分析操作(切片、钻取等)功能完整,SSRS报表数据呈现准确、布局合理。所有测试结果均符合预期,系统各模块运行正常。
4. 总结与展望
本研究基于SQL Server技术栈构建了在线教育数据仓库系统,通过ETL流程、星型–雪花混合模型及多维分析技术,实现了教育数据的有效管理与智能分析。系统整合了SSIS数据集成、SSAS多维建模和SSRS可视化报表,为教学决策提供了全面支持。
未来研究可从三个方向拓展:引入大数据技术处理海量教育数据;开发实时分析模块;结合机器学习算法,实现个性化学习推荐。这些改进将进一步提升系统的数据处理能力和智能化水平。
NOTES
*通讯作者。