学生用户画像——考勤主题标签构建实验

发布时间:2026/5/21 6:37:07

学生用户画像——考勤主题标签构建实验 学生用户画像——考勤主题标签构建实验一、实验概述1.1实验目标本实验依托数智教育数据集在助睿ETL平台完成学生考勤数据从接入、整合、标签生成到指标统计、数据入库的全流程自动化处理。通过可视化ETL开发方式解决校园考勤人工统计效率低下、统计标准不统一的问题输出可直接应用于学生管理的考勤标签数据为学生用户画像体系搭建提供可靠的数据支撑。1.2实验环境操作平台助睿零代码数据实验平台lab.guilian.cn支撑工具Uniplore iDIS大数据智能服务平台数据来源数智教育数据集涵盖教师、学生、考勤、考勤类型、成绩、考试类型、消费7类数据表数据库MySQL 8及以上版本团队私有数据库1.3实验范围实验覆盖项目创建、数据导入、数据库连接配置、原始数据表搭建、数据清洗、多表关联、标签计算、结果数据入库全流程重点围绕考勤数据加工处理输出学生考勤行为相关统计标签。二、转换流整体设计2.1功能与价值本转换流替代传统人工统计模式实现考勤数据自动化加工处理批量生成学生异常考勤统计指标统一数据统计口径大幅提升数据处理效率形成标准化考勤统计台账支持按学生、班级、年级、校区等多维度分析满足校园精细化学生管理的实际需求。2.2核心处理流程数据接入→数据排序→多表关联匹配→考勤行为标签标注→分组聚合统计→属性标准化处理→空值填充替换→结果数据入库。三、数据与标签说明3.1源数据说明本次实验核心采用3张数据表构建星型数据模型考勤主表3_kaoqin.csv存储学生原始考勤明细数据包含学生ID、考勤时间、考勤类型ID等关键字段。考勤类型表4_kaoqintype.csv定义考勤行为分类区分正常考勤与异常考勤是生成考勤标签的核心依据。学生信息表2_student_info.csv提供学生基础属性信息包含性别、住校状态、班级等维度字段。3.2标签体系设计基础属性标签学生ID、姓名、班级ID、班级名称、性别、出生日期、政治面貌。衍生维度标签年级从班级名称提取、住校状态编码映射转换、校区类型从班级名称判定。行为统计标签迟到次数、早退次数、请假次数、未穿校服次数。3.3标签处理口径基础属性空值统一替换为“未知”直接读取原始有效数据。衍生维度班级名称含“高一/高二/高三”对应提取年级住校状态1映射为“是”、0映射为“否”班级名称以“白-/东-”开头判定为新校区其余为老校区。行为统计按关键词匹配考勤行为排除请假记录后统计迟到、早退次数包含“请假”关键词统计为请假次数包含“校服”关键词统计为未穿校服次数。四、实验操作步骤4.1创建实验项目登录助睿零代码数据实验平台进入项目管理界面点击新建项目按钮。输入项目名称“学生用户画像标签构建”完成项目创建操作。在项目列表中找到新建的项目点击打开进入数据集成操作界面。4.2数据资源准备4.2.1创建数据集目录切换至文件库页面右键点击根目录选择新建目录选项。将目录命名为“数智教育数据集”完成目录创建。4.2.2导入实验数据进入公共空间打开数据资源列表页面。依次选中3_kaoqin.csv、4_kaoqintype.csv、2_student_info.csv文件点击更多选项后选择导出。设置导出路径为“数智教育数据集”完成实验数据导入操作。可看到3_kaoqin.csv已经导入成功现在需要将其他的一一导入。现在三个数据表均导出到指定目录。4.2.3配置数据库连接切换至元数据页面右键点击关系数据库选择新建数据源选项。连接类型选择MySQL设置连接名称为“团队私有数据库”。配置主机地址、端口3306、数据库名称、账号密码驱动选择MySQL8版本。点击添加按钮会显示连接成功可在关系数据库中查看。4.3 原始数据表构建与数据导入4.3.1 原始学生考勤表处理1创建原始考勤表在资源库右键点击新建转换流。命名创建原始_学生考勤表点击确定。在组件库搜索执行一个 SQL 脚本拖拽到画布。双击组件配置数据库连接团队私有数据库输入建表 SQL创建 raw_attendanceSQL脚本如下CREATE TABLE IF NOT EXISTS raw_attendance (id bigint NOT NULL AUTO_INCREMENT COMMENT 自增ID,attendance_id varchar(64) DEFAULT NULL COMMENT 考勤ID,learn_term varchar(30) DEFAULT NULL COMMENT 学期,data_datetime varchar(50) DEFAULT NULL COMMENT 时间和日期,attendance_type_id varchar(64) DEFAULT NULL COMMENT 考勤类型ID,attendance_name varchar(100) DEFAULT NULL COMMENT 考勤名称,attendance_task_order_id varchar(64) DEFAULT NULL COMMENT 考勤事件ID,stu_id varchar(64) DEFAULT NULL COMMENT 学生ID,stu_name varchar(100) DEFAULT NULL COMMENT 学生姓名,cla_name varchar(100) DEFAULT NULL COMMENT 班级名,cla_id varchar(64) DEFAULT NULL COMMENT 班级ID,create_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT 入库时间,PRIMARY KEY (id),KEY idx_student_id (stu_id),KEY idx_term (learn_term)) COMMENT原始_学生考勤表;点击顶部执行转换流选择本地运行点击启动。查看日志提示执行成功即完成建表。2导入原始考勤数据新建转换流命名导入原始考勤数据点击确认。拖拽CSV 文件输入组件到画布。双击配置命名考勤记录文件名选择数智教育数据集 / 3_kaoqin.csv列分隔符TAB编码UTF-8勾选包含列头行右键字段区域点击获取字段确认字段无误后确定。拖拽表输出组件到画布连接 CSV 组件选择主输出步骤。双击表输出数据库连接团队私有数据库目标表raw_attendance切换到数据库字段右键获取字段将字段改成如下之后点击确认执行转换流日志显示 ** 写入成功23630 条** 即完成。4.3.2 原始考勤类型表处理新建转换流创建原始_考勤类型表。拖拽执行 SQL 脚本创建raw_attendance_type表步骤与“原始考勤记录表数据导入”一致。SQL脚本如下CREATE TABLE IF NOT EXISTS raw_attendance_type (id bigint NOT NULL AUTO_INCREMENT COMMENT 自增ID,attendance_type_id varchar(64) NOT NULL COMMENT 考勤类型id,attendance_type_name varchar(100) DEFAULT NULL COMMENT 考勤类型名称,attendance_task_order_id varchar(64) DEFAULT NULL COMMENT 考勤事件id,attendance_task_name varchar(100) DEFAULT NULL COMMENT 考勤事件名,create_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT 入库时间,PRIMARY KEY (id),UNIQUE KEY uk_attendance_type_id (attendance_task_order_id))COMMENT原始_考勤类型表;点击执行。新建转换流导入原始考勤类型数据。拖拽CSV 文件输入双击进入配置。关键配置文件名选择 4_kaoqintype.csv编码GB2312列分隔符TAB拖拽表输出双击进入配置。关键配置如下图所示将字段改成如下执行转换流日志显示15 条数据写入成功。4.3.3 原始学生信息表处理新建转换流执行 SQL 创建raw_student_info表。新建转换流原始学生基本信息表数据导入。拖拽执行一个SQL脚本双击配置如下创建raw_student_info表。SQL语句如下CREATE TABLE IF NOT EXISTS raw_student_info (id bigint NOT NULL AUTO_INCREMENT COMMENT 自增ID,stu_id varchar(64) NOT NULL COMMENT 学生ID,stu_name varchar(100) DEFAULT NULL COMMENT 学生姓名,stu_sex varchar(10) DEFAULT NULL COMMENT 性别,stu_nation varchar(50) DEFAULT NULL COMMENT 民族,born_date varchar(10) DEFAULT NULL COMMENT 出生日期年,cla_name varchar(100) DEFAULT NULL COMMENT 班级名,native_place varchar(200) DEFAULT NULL COMMENT 家庭住址,residence_type varchar(50) DEFAULT NULL COMMENT 家庭类型,policy varchar(50) DEFAULT NULL COMMENT 政治面貌,cla_id varchar(64) DEFAULT NULL COMMENT 班级ID,cla_term varchar(30) DEFAULT NULL COMMENT 班级学期,live_on_campus varchar(10) DEFAULT NULL COMMENT 是否住校,leave_school varchar(10) DEFAULT NULL COMMENT 是否退学,dormitory_no varchar(50) DEFAULT NULL COMMENT 宿舍号,create_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT 入库时间,PRIMARY KEY (id),UNIQUE KEY uk_student_id (stu_id),KEY idx_cla_id (cla_id)) COMMENT原始_学生信息表;配置完成点击启动查看日志。拖拽CSV文件输入选择2_student_info.csv编码UTF-8。获取字段后需要将“bf_leaveSchool”的字段类型修改为“String”拖拽字段选择组件连接CSV输入选择主输出。双击字段选择→元数据插入两行配置如下bf_zhusu→类型Integerbf_qinshihao→类型Integer连接表输出目标表raw_student_info。双击打开表输出配置界面数据库连接选择团队私有数据库目标表指定为raw_student_info并勾选指定数据库字段选项。切换到数据库字段页签在空白处右键选择获取字段让系统自动匹配流字段与数据表字段逐一核对stu_id、stu_name、live_on_campus等关键字段映射无误后保存配置执行转换流日志显示1765 条数据写入成功。4.4 创建学生考勤主题标签表新建名为“创建学生考勤主题标签表”的转换流点击确认。在组件库中拖拽“执行一个SQL脚本”组件至画布完成组件基础放置。双击配置数据库连接为“团队私有数据库”在脚本编辑区输入建表语句用于创建student_attendance_stats结果表确认语句无错误后保存配置。SQL脚本如下CREATE TABLE IF NOT EXISTS student_attendance_stats (id INT PRIMARY KEY AUTO_INCREMENT COMMENT 自增主键,student_id INT NOT NULL COMMENT 学生ID,student_name VARCHAR(50) NOT NULL COMMENT 学生姓名,class_id INT NOT NULL COMMENT 班级ID,class_name VARCHAR(50) NOT NULL COMMENT 班级名称,grade VARCHAR(10) NOT NULL COMMENT 年级,gender VARCHAR(10) NOT NULL COMMENT 性别,birth_date VARCHAR(10) NOT NULL COMMENT 出生日期,political_status VARCHAR(20) NOT NULL COMMENT 政治面貌,is_boarder VARCHAR(10) NOT NULL COMMENT 是否住校,campus_type VARCHAR(10) NOT NULL COMMENT 校区类型,late_count INT NOT NULL DEFAULT 0 COMMENT 迟到次数,early_leave_count INT NOT NULL DEFAULT 0 COMMENT 早退次数,leave_count INT NOT NULL DEFAULT 0 COMMENT 请假次数,uniform_violate_count INT NOT NULL DEFAULT 0 COMMENT 没穿校服次数,create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 统计入库时间,INDEX idx_student (student_id),INDEX idx_class (class_id),INDEX idx_grade (grade)) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT学生考勤主题标签表;点击执行转换流按钮等待运行完成查看日志提示建表成功完成目标结果表的创建工作。4.5 学生考勤主题标签构建核心步骤4.5.1 新建主转换流在资源库中新建转换流将其正式命名为 “学生考勤主题标签”进入转换流编辑界面后找到画布右上角的锁定图标并点击解除编辑锁定状态为后续组件拖拽与配置做好准备。4.5.2 三步数据接入表输入从组件库拖拽3个表输入组件至画布依次修改组件名称为“考勤记录”“考勤类型”“学生信息”。分别双击每个组件选择数据库连接为“团队私有数据库”点击获取SQL查询语句依次对应选择raw_attendance、raw_attendance_type、raw_student_info三张原始表。完成配置后点击确定成功读取三张核心表的全部数据完成数据接入环节。、4.5.3 关联考勤记录 考勤类型为避免因为排序问题造成连接结果出错。添加一个排序记录组件到转换流的“考勤记录”与“记录集连接”之间。拖拽排序记录组件并与考勤记录组件连接。双击配置右键获取字段之后只保留attendance_type_id、attendance_task_order_id修改组件名称为“按考勤类型与任务ID排序”点击确认。将排序后的考勤记录与考勤类型组件分别连接至该组件。双击配置连接参数第一个Transform选择排序后考勤数据第二个Transform选择考勤类型数据连接类型设为LEFT OUTER获取字段之后只保留attendance_type_id和attendance_task_order_id点击确定完成两张表的关联。4.5.4 标记异常考勤JavaScript拖拽JavaScript代码组件至画布与记录集组件连接。双击进入配置命名为“提取异常考勤记录”在脚本编辑区编写逻辑先初始化isLate、isEarly、isLeave、isNoUniform四个变量为0再通过关键词判断考勤行为并赋值为1完成异常标记规则配置。点击获取变量自动生成四个标记字段使用测试脚本功能校验输出结果确保仅输出0或1的正确标记值。脚本如下// 初始化变量var isLate 0;var isEarly 0;var isLeave 0;var isNoUniform 0;// 核心判断逻辑if(attendance_type_name ! null attendance_task_name ! null){// 迟到判断排除请假if((attendance_type_name.includes(迟到) ||attendance_type_name.includes(晚到) ||attendance_task_name.includes(迟到) ||attendance_task_name.includes(晚到)) !attendance_task_name.includes(请假)){isLate 1;}// 早退判断排除请假if((attendance_type_name.includes(早退) ||attendance_task_name.includes(早退)) !attendance_task_name.includes(请假)){isEarly 1;}// 校服违规只要包含“校服”就标记违规if(attendance_type_name.includes(校服) || attendance_task_name.includes(校服)){isNoUniform 1;}}// 请假判断if(attendance_task_name ! null){if(attendance_task_name.includes(请假)){isLeave 1;}}4.5.5 分组统计次数将分组组件与 JavaScript 代码组件连接选择主输出。双击进入分组配置界面右键获取字段只保留stu_id、stu_name、cla_id、cla_name这四个字段实现按学生维度分组。在聚合配置区添加统计规则late_count 使用 求和(isLate)、early_count 使用 求和(isEarly)、leave_count 使用 求和 (isLeave)、no_uniform_count 使用 求和 (isNoUniform)完成配置后确定实现学生考勤次数的精准统计。4.5.6 关联学生信息首先在左侧组件库搜索并拖拽排序记录组件将其与“学生信息”表输入组件建立连接。双击该组件将步骤名称设置为“按照学生编号进行排序”在字段配置中添加stu_id并设置为升序排序完成后点击确认对学生信息数据按学号进行预排序。从组件库拖拽记录集连接1组件连接刚刚设置好的排序记录。接着再次拖拽一个排序记录组件连接到“分组”统计结果的输出端。双击配置步骤名称为“考勤数据按学号排序”同样添加stu_id字段并设为升序排序确保考勤统计数据也按学号有序排列。最后记录集连接1组件将两个已排序的数据流分别接入该组件。双击进入配置界面选择第一个Transform为“考勤数据按学号排序”、第二个Transform为“按照学生编号进行排序”连接类型设置为LEFT OUTER并将两个数据源的连接字段都只保留stu_id。点击确认后即可完成考勤统计数据与学生基础信息的左外连接实现数据的完整合并。4.5.7 移除冗余字段拖拽字段选择组件并命名为“移除冗余字段”将其与上一步的“记录集连接1”组件建立数据流连接。双击进入配置界面切换至“移除”页签右键点击字段列表空白处选择“获取字段”自动加载当前数据流中的所有字段。在获取到的全部字段中移除以下核心字段学生IDstu_id、学生姓名stu_name、班级IDcla_id、班级名称cla_name、迟到次数late_count、早退次数early_count、请假次数leave_count、没穿校服次数no_uniform_count、性别stu_sex、出生日期born_date、政治面貌policy、是否住校live_on_campus其余无关字段全部保留。点击“确认”保存配置完成冗余字段清理为验证字段筛选配置是否生效右键点击 “移除冗余字段” 组件选择 “显示输出字段” 功能查看组件处理后的输出字段列表。弹出窗口中仅展示了预设保留的字段证明筛选规则已成功生效数据已完成精简。4.5.8 空值替换拖拽替换NULL值组件与字段选择组件连接选择主输出。进入配置界面后勾选需要处理的字段将stu_sex、born_date、policy、live_on_campus四个字段的空值统一替换为“未知”。完成参数设置后点击确定实现数据空值的标准化处理。4.5.9 属性标准化拖拽值映射组件至画布并连接数据流替换NULL值选择主输出。。拖拽值映射组件至画布命名为“住校状态映射”与上一步的数据流建立连接。双击进入配置界面选择live_on_campus作为待映射字段右键添加映射规则数值1映射为“是”、数值0映射为“否”并设置不匹配时默认值为“否”完成住校状态字段的标准化处理。拖拽第一个JavaScript代码组件命名为“从班级提取年级”编写脚本从cla_name字段中识别“高一、高二、高三”关键词生成年级字段在配置窗口的字段列表空白处右键插入新字段字段名称输入“gra_name”类型为“String”替换“字段名”或“重命名”值选择“否”设置完成后点击“确认”完成年级衍生字段的定义。脚本如下var gra_nameif (cla_name null){gra_name未知}else if(cla_name.includes(高一)){gra_name高一}else if (cla_name.includes(高二)){gra_name高二}else if (cla_name.includes(高三)){gra_name高三} else{gra_name未知}再拖拽第二个JavaScript代码组件与上一个JavaScript代码组件连接选择主输出。命名为“校区类型判定”编写脚本通过班级名称前缀判断校区类型生成“新校区/老校区”标签同样插入新字段“class_campus_type”类型为“String”替换“字段名”或“重命名”值选择“否”完成校区衍生字段的定义。脚本如下var class_campus_typeif (cla_name null){class_campus_type未知}else if(cla_name.startsWith(白-) || cla_name.startsWith(东-)){class_campus_type新校区}else if (cla_name ! null !isEmpty(cla_name)){class_campus_type老校区} else{class_campus_type未知}通过值映射与脚本计算的组合实现住校状态、年级、校区三类属性的统一格式化同时通过字段插入功能为后续数据处理新增了规范的衍生维度字段消除了原始数据的编码差异与信息缺失问题为后续学生标签整合与多维度分析提供了标准、规范的数据基础。4.5.10 结果入库拖拽表输出组件连接至最后一个处理组件选择主输出。双击配置数据库为“团队私有数据库”目标表选择student_attendance_stats。勾选裁剪表选项避免数据重复写入完整配置如下切换至数据库字段页签右键获取字段并完成流字段与表字段的完整映射确认无误后保存配置。点击执行转换流并启动任务查看运行日志待全部组件显示完成状态确认数据成功写入目标表。点击上角的启动按钮完成启动执行成功无误。4.6 结果验证切换至元数据界面右键团队私有数据库选择加载元数据刷新后进入数据探查模块在表列表中找到student_attendance_stats表。点击查询按钮查看表内数据逐一核对学生基础信息完整性、年级与校区及住校状态的准确性、迟到早退请假未穿校服次数统计结果确认全部数据符合预期。五、实验结果本次实验顺利完成考勤主表、考勤类型表、学生信息表三张原始表的数据导入为标签构建提供了完整数据源。成功搭建学生考勤标签全流程转换流实现数据接入、关联、标记、统计、入库的自动化处理替代人工统计提升效率。最终生成标准化学生考勤主题标签表涵盖基础属性、衍生维度、考勤统计三类核心标签数据口径统一、统计结果精准可直接应用于学生用户画像分析与校园精细化管理。#助睿数智 #商业数据分析 #ETL数据加工 #数据实验

相关新闻