一、实验背景与目标

本次实验以 **“数智教育” 大赛公开数据集 ** 为数据源,依托助睿数智(Uniplore)零代码 ETL 平台,完成了一套面向学生考勤行为的用户画像构建流程。实验的核心目标是通过 ETL 技术,将分散的考勤记录、类型定义与学生信息进行清洗、关联与聚合,最终生成可用于学情分析的学生多维度考勤标签表,为后续教学管理决策提供数据支撑。

二、实验环境与数据

  • 平台环境:助睿数智(Uniplore)一站式数据科学实验平台
  • 数据库环境:MySQL 8+
  • 核心数据集:
    1. raw_attendance(考勤记录表,共 2.36 万条)
    2. raw_attendance_type(考勤类型表,共 15 条)
    3. raw_student_info(学生信息表,共 1765 条)

三、详细实验操作步骤

(一)项目与数据源准备

  1. 创建实验项目:在助睿平台新建项目,命名为 “学生用户画像构建”,完成初始化。

  1. 获取源数据文件:从平台公共空间导出kqoin.csv、kqintype.csv和student_info.csv三份数据文件至本地。

  1. 配置数据库连接:新建 MySQL 数据源,配置服务器地址、端口、数据库名、账号密码,测试并保存连接。

(二)原始考勤记录表导入

1.新建转换工作流,并命名为“创建原始_学生考勤表”,在该工作流中拖拽“执行一个SQL脚本”组件,通过执行SQL脚本来创建一个标签表。

  2. 导入原始考勤数据

新建转换工作流,并命名为“导入原始考勤数据”,

创建并配置raw_attendance

3.创建raw_attendance_type表

4.创建raw_student_info表

(三)核心 ETL 流程设计与执行

1. 数据接入与多表关联

  • 配置三个 “表输入” 组件,分别读取三张源数据表。

  • 添加 “排序记录” 组件,按连接键(attendance_type_id、stu_id)对数据进行升序排序,为后续关联做准备。
  • 使用 “记录集连接” 组件,以左外连接方式,将考勤记录表与考勤类型表、学生信息表进行关联,合并完整的行为与属性数据。

2. 行为标签生成

  • 引入 “JavaScript 代码” 组件,编写脚本通过多关键词匹配规则,对迟到、早退、请假、旷课等行为进行识别,生成isLate、isEarly、isLeave、isNoUniform等二进制标签字段。

3. 多维度聚合统计

  • 使用 “分组” 组件,按stu_id和班级维度进行分组,通过SUM聚合函数,分别统计每位学生的迟到、早退、请假、旷课次数。

 

  1. 属性标准化与清洗
  • 添加"排序记录"组件,对学生信息表按stu_id排序。

  • 添加 “字段选择” 组件,去除性别、出生日期等非核心字段。

  • 使用 “替换 NULL 值” 组件,对政治面貌、住校状态等字段的空值进行填充,统一替换为 “未知”。

  • 通过 “值映射” 和 “JavaScript” 组件,对住校状态、班级名称等字段进行标准化转换,如将live_on_campus的 0/1 值映射为 “否 / 是”。

  • 添加两个"JavaScript代码"组件,分别从班级名称提取年级和判定校区类型。

5. 结果数据写入

  • 配置 “表输出” 组件,将最终的聚合数据写入目标表student_attendance_stats,完成全流程处理。

四、实验结果

核心转换流执行完成后,日志显示所有组件均执行成功,无错误或警告信息。各组件处理记录数如下:

表输入组件(考勤记录):读取23630条记录

排序记录组件:成功排序23630条记录

记录集连接组件:成功关联23630条记录

JavaScript代码组件:成功标记23630条记录

分组组件:聚合生成1765条学生统计记录

值映射组件:成功映射1765条记录的住校状态

表输出组件:成功写入1765条记录到目标表

五、问题与解决方案

问题描述:

学生信息表中性别、出生日期、政治面貌、住校状态等关键字段存在NULL 值、空字符串等数据缺失情况。若未对该类异常数据进行预处理,将直接导致后续 JavaScript 业务脚本执行抛出空指针异常、页面渲染失败,同时会造成标签表数据不完整、统计结果失真,进而影响整个数据处理流程的稳定性与数据质量。

原因分析:

该问题是实际业务数据采集场景中的普遍现象,主要源于:

  1. 原始数据采集环节存在信息漏填、录入不规范的情况
  2. 不同数据源对接时字段映射规则不统一
  3. 历史数据迁移过程中部分字段值丢失

空值会破坏数据的完整性与一致性,在进行条件判断、字符串拼接、数值计算等操作时极易引发逻辑错误,因此必须在数据预处理阶段进行系统性处理。

解决策略:

预处理层用组件将空值统一替换为 "未知" 等标准化默认值,业务逻辑层在 JS 代码中增加空值校验(推荐使用可选链和空值合并运算符),数据映射层配置不匹配时的兜底默认值,同时可辅以数据质量监控和前端录入校验进一步提升数据质量。

六、实验总结与反思

本次实验完整实践了从数据接入、清洗、关联、标签生成到聚合统计的全流程 ETL 开发,成功构建了学生考勤用户画像。实验过程不仅熟练掌握了助睿零代码 ETL 平台的核心组件,更深刻理解了数据排序、空值处理、多表关联等关键技术要点。

Logo

一站式 AI 云服务平台

更多推荐