学生用户画像-考勤主题标签构建
学生用户画像-考勤主题标签构建一、实验说明1.1 实验目的本次实验依托 “数智教育” 大赛提供的校园数据集借助助睿数智UniploreETL 数据集成平台完成学生考勤数据的多维度统计与标签构建。通过完整实现数据接入、多表关联、字段衍生、指标聚合与结果入库的 ETL 全流程解决传统校园考勤依赖人工统计、效率低下、统计口径不统一、易出错等问题。同时针对原始数据中的空值、格式不规范等情况进行优化处理保证转换流程稳定运行最终输出准确、可用、可直接用于管理决策的考勤统计结果为学校精细化考勤管理提供数据支撑。1.2 实验环境工具平台助睿数智Uniplore数据集成平台ETL• 数据源数智教育大赛数据集共 7 张业务表• 运行设备支持助睿 ETL 平台的计算机具备数据库连接权限1.3 实验范围本次实验覆盖 ETL 转换流从搭建到运行的完整配置包括多数据源接入、数据表关联匹配、考勤行为标签自动生成、多维度统计聚合、最终结果入库等环节。重点验证表关联准确性、空值处理逻辑、指标计算口径一致性确保整个流程可稳定、高效、重复执行。二、转换流整体设计2.1 功能用途与业务价值本次构建的考勤 ETL 转换流完全替代人工 Excel 统计模式实现从原始打卡记录到标准化考勤结果的自动化处理。系统可批量生成多维度、多口径的统计指标统一统计规则、提升统计效率、沉淀可追溯的数据台账同时支持后续新增考勤类型灵活扩展无需频繁修改转换逻辑能够很好地适配校园日常考勤管理的真实需求。2.2 核心处理逻辑全程在助睿 ETL 可视化界面完成配置实现零代码自动化处理。三、数据与标签梳理根据转换流的逻辑需要对数据与标签进行梳理确定数据源、标签维度、标签计算口径3.1 源数据说明本次实验使用的数据集共包含 7 张数据表其中与考勤主题强相关的有 3 张构成星型模型结构1、考勤主表3_kaoqin.csv核心事实表记录每一条学生考勤明细2、考勤类型码表4_kaoqintype.csv定义考勤行为类型名称是标签生成的依据3、学生信息表2_student_info.csv提供学生性别、班级、住校状态等基础属性其他数据表如教师信息、成绩、消费等与本次考勤主题无关暂不使用。添加图片注释不超过 140 字可选3.2 标签字段说明本次构建的学生考勤标签分为三类基础属性标签、衍生维度标签、考勤行为指标标签。3.2.1 学生基础属性标签添加图片注释不超过 140 字可选基础属性标签直接来自学生信息表与考勤主表用于唯一标识学生并支持多维度分析包括这些字段是后续按性别、年级、班级进行考勤对比分析的基础。3.2.2 获取实验数据集添加图片注释不超过 140 字可选·年级从班级名称中提取 “高一 / 高二 / 高三”·是否住校将住校字段 1/0 映射为 “是 / 否”空值记为 “未知”·校区类型根据班级名称前缀判断新校区 / 老校区这三个维度可用于分析不同群体、不同管理场景下的考勤差异。3.2.3 考勤行为统计标签添加图片注释不超过 140 字可选这些指标直接反映学生纪律遵守情况是学生考勤画像的核心。3.3 标签处理口径为保证结果统一可比所有字段均采用固定处理规则·基础属性空值统一替换为 “未知”·年级从班级名称关键词匹配生成·住校状态按 1 是、0 否、空 未知映射·校区按 “白 -、东 -” 开头判定为新校区·请假记录不计入迟到早退仅单独统计·包含 “校服” 关键词的记录判定为未穿校服3.3.1 基础属性字段处理口径添加图片注释不超过 140 字可选3.3.2 衍生维度字段处理口径添加图片注释不超过 140 字可选3.3.3 考勤行为指标统计口径添加图片注释不超过 140 字可选四、实验步骤4.1 创建实验项目登录助睿数智平台进入数据集成模块点击 “新建项目”命名为 “学生用户画像标签构建”确认创建项目成功显示在项目列表中添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选4.2 数据资源获取为方便后续的数据使用我们可以将原始数据导入我们的团队私有数据库项目创建成功后点击该项目右上角“…”点击“打开项目”添加图片注释不超过 140 字可选在项目页面可以看到左侧有3个菜单资源库、文件、元数据资源库用于对工作流的管理包括新建、删除、修改、查看工作流的信息导出导入工作空间调度管理等操作文件库用于保存工作流中需要用到的文件和工作流产生的文件元数据管理是助睿ETL的重要基石可以为工作流定义“运行配置”、“数据库”、“flink集群”等配置添加图片注释不超过 140 字可选4.2.1 获取实验数据集进入文件库新建 “数智教育数据集” 目录添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选接下来我们将从公共空间导出本次所需三张核心数据表·3_kaoqin.csv·4_kaoqintype.csv·2_student_info.csv添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选在弹出的窗口中选择导出到刚刚新创建的目录下点击“确定”添加图片注释不超过 140 字可选可以看到在数智教育数据集的目录下新增了3_kaoqin.csv接下来重复以上导出操作将本次实验用到的数据表 4_kaoqintype.csv 和 2_student_info.csv 都导出到“数智教育数据集”添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选4.2.2 建立数据源连接进入元数据→关系数据库→新建数据源添加图片注释不超过 140 字可选选择 MySQL 类型填写服务器地址、端口、库名、账号密码填写完毕后点击“测试”按钮验证填写信息是否正确如果填写无误会返回“数据库连接成功”添加图片注释不超过 140 字可选最后点击“添加”增加了一个数据库连接。添加成功后关系数据库节点会增加一个子节点。添加图片注释不超过 140 字可选4.2.3 数据导入团队私有数据库4.2.3.1 原始考勤记录表数据导入新建转换流命名为创建原始_学生考勤表在组件库中拖拽执行一个 SQL 脚本组件。添加图片注释不超过 140 字可选配置数据库连接为团队私有数据库编写 CREATE TABLE 语句创建用于存储原始考勤数据的表raw_attendance设置字段类型、主键与注释。运行转换流查看日志提示执行成功表创建完成。2导入原始考勤数据新建转换流导入原始考勤数据拖拽CSV 文件输入组件选择文件库中的 3_kaoqin.csv配置编码为 UTF-8列分隔符保持默认勾选包含列头行通过获取字段加载所有列添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选下滑在字段表格中空白处右键点击“获取字段”,字段获取成功后点击“确认”添加图片注释不超过 140 字可选拖拽表输出组件连接 CSV 输入与表输出配置目标表为 raw_attendance完成字段映射。连线类型选择“主输出步骤”添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选点击“数据库字段”在空白处右键“获取字段”将表字段修改为建表语句中对应的字段点击“确认”添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选运行转换流日志显示处理成功即完成考勤数据入库。添加图片注释不超过 140 字可选4.2.3.2 原始考勤类型表数据导入流程与考勤表一致新建创建原始_考勤类型表与导入原始考勤类型数据转换流。添加图片注释不超过 140 字可选配置完成后执行转换流运行过程会定时刷新组件状态并画布下面显示执行日志注意4_kaoqintype.csv 编码为GB2312列分隔符为制表符必须正确配置否则会出现乱码或字段错位。最终数据存入raw_attendance_type表。添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选4.2.3.3 原始学生基本信息表数据导入新建创建原始_学生信息表与导入原始学生基本信息数据转换流。添加图片注释不超过 140 字可选特殊处理学生信息表中 bf_zhusu、bf_qinshihao 为整数类型需要增加字段选择组件规范元数据避免小数出现bf_leaveSchool 字段类型改为 String保证数据格式统一。添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选拖拽“字段选择”组件到画布中创建“CSV文件输入”组件到“字段选择”组件的连线连接线类型选择“主输出步骤”添加图片注释不超过 140 字可选双击“字段选择”组件在配置窗口中点击“元数据”并在空白处插入2行将“bf_zhusu”、“bf_qinshihao”字段的元数据设置如下添加图片注释不超过 140 字可选使用“表输出”组件将“2_student_info.csv”数据输出到团队私有数据库的“raw_student_info”中添加图片注释不超过 140 字可选执行转换流添加图片注释不超过 140 字可选4.2.4 创建学生考勤主题标签表在数据统计完成后需要一张专门的表来存放最终标签结果。新建转换流创建学生考勤主题标签表。使用执行一个 SQL 脚本组件编写 CREATE TABLE 语句创建student_attendance_stats表。表结构包含自增主键、学生 ID、姓名、班级、年级、性别、住校状态、校区类型、迟到次数、早退次数、请假次数、未穿校服次数等关键字段。添加图片注释不超过 140 字可选执行转换流结果表创建完成准备接收最终标签数据。添加图片注释不超过 140 字可选4.3 学生考勤主题标签构建本环节是实验核心通过可视化拖拽组件完成数据接入 — 关联清洗 — 标签标记 — 指标计算 — 属性标准化 — 结果入库全流程。4.3.1 数据转换流逻辑说明整体流程遵循标准 ETL 处理思路先读取三张原始数据表通过关联补齐业务信息再用脚本识别异常考勤行为按学生分组统计次数最后关联学生属性、清洗字段、处理空值、标准化输出最终写入结果表。各组件作用添加图片注释不超过 140 字可选4.3.2 数据接入获取考勤记录、考勤类型数据、学生信息数据新建转换流命名为学生考勤主题标签。添加图片注释不超过 140 字可选解锁画布编辑状态从组件库拖拽 3 个表输入组件到画布。分别配置三个组件·组件 1考勤记录读取 raw_attendance·组件 2考勤类型读取 raw_attendance_type·组件 3学生信息读取 raw_student_info添加图片注释不超过 140 字可选系统提示弹窗中点击“确认”获取“raw_attendance”考勤记录表的所有字段获取SQL查询语句后点击“确认”添加图片注释不超过 140 字可选每个组件都通过获取 SQL 查询语句加载全字段保证数据完整读取。添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选4.3.3 数据关联关联考勤记录考勤类型考勤记录表只有类型 ID没有行为名称必须关联码表才能判断迟到、早退、请假等行为。由于记录集连接要求输入数据有序先在考勤记录后添加排序记录组件按 attendance_type_id、attendance_task_order_id 排序。拖拽记录集连接组件将排序后的数据与考勤类型表连接。添加图片注释不超过 140 字可选为避免因为排序问题造成连接结果出错。添加一个排序记录组件到转换流的“考勤记录”与“记录集连接”之间。添加图片注释不超过 140 字可选双击“排序记录”组件通过“获取字段”功能获取字段列表然后删除多余字段只保留“attendance_type_id”、“attendance_task_order_id”字段。最后设置步骤名称为“按照考勤类型和考勤任务类型排序”添加图片注释不超过 140 字可选创建“考勤类型”表输入组件到记录集连接组件的连接线。由于“考勤类型”组件的记录默认是按“attendance_type_id”、“attendance_task_order_id”这两个字段升序记录的所以无需再次排序。添加图片注释不超过 140 字可选需要通过记录集连接组件来配置“考勤记录”和“考勤类型”两个表的关联关系。连接类型选择LEFT OUTER左外连接保证所有考勤记录都被保留。添加图片注释不超过 140 字可选关联字段设置为 attendance_type_id、attendance_task_order_id删除多余字段只保留关键匹配项。连接完成后每条考勤记录都拥有了明确的行为名称。添加图片注释不超过 140 字可选4.3.4 行为标签衍生统计学生异常考勤次数通过 JavaScript 脚本对考勤名称做关键词匹配生成 0/1 标记便于后续求和统计。添加JavaScript 代码组件命名为提取异常考勤记录。输入JavaScript脚本使用“获取变量”获取输出字段系统将自动解析脚本中变量定义代码生成字段数据。添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选脚本中定义输出字段isLate、isEarly、isLeave、isNoUniform。点击测试脚本验证逻辑正确确保空值不报错、匹配准确。添加图片注释不超过 140 字可选4.3.5 多维度分组聚合统计将明细数据按学生维度汇总计算每个人的异常次数。添加分组组件按 stu_id、stu_name、cla_id、cla_name 分组。添加图片注释不超过 140 字可选双击“分组”组件设置分组字段为“stu_id”、“stu_name”、“cla_id”、“cla_name”。聚合方式使用SUM对四个标记字段求和SUM (isNoUniform) → 没穿校服次数分组后数据从明细转为一人一行的统计结果便于生成画像标签。添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选4.3.6 关联学生信息统计结果缺少性别、住校、政治面貌等信息需要再次关联学生信息表。在学生信息组件后添加排序记录按 stu_id 排序。添加图片注释不超过 140 字可选双击“排序记录”组件通过“获取字段”功能获取字段列表只保留“stu_id”字段。设置步骤名称为“按照学生编号进行排序”添加图片注释不超过 140 字可选拖拽“记录集连接”组件至画布中创建“按照学生编号进行排序”排序记录组件到“记录集连接 1”组件的连接线。再次添加“排序记录”并建立“记录集连接”组件到“排序记录”组件的连接线添加图片注释不超过 140 字可选双击“排序记录”组件按下图进行配置步骤名称设置为“考勤数据按学号排序”排序字段为“stu_id”添加图片注释不超过 140 字可选创建“考勤数据按学号排序”记录排序组件到记录集连接 1组件的连线关联学生信息和考勤记录信息添加图片注释不超过 140 字可选使用记录集连接做左外连接以 stu_id 为关联键将学生属性拼接到统计结果中。添加图片注释不超过 140 字可选4.3.7 字段选择移除冗余字段多表关联后会产生大量无用字段影响效率与可读性。搜索“字段选择”拖拽至画布中创建“记录集连接 1”组件到字段选择组件的连接线添加图片注释不超过 140 字可选双击字段选择组件在配置弹窗中步骤名称输入“移除冗余字段”点击“移除”Tab标签右键空白处并点击“获取字段”只保留学生 ID、姓名、班级 ID、班级名称、性别、出生日期、政治面貌、是否住校、迟到次数、早退次数、请假次数、未穿校服次数。添加图片注释不超过 140 字可选在字段选择组件鼠标右键弹出菜单点击“显示输出字段”查看输出字段是否正确添加图片注释不超过 140 字可选4.3.8 空值处理关联后性别、出生日期、住校状态等可能出现 NULL必须统一处理。拖拽“替换NULL值”组件至画布创建“移除冗余字段”字段选择组件到“替换NULL值”组件的连线连线类型选择“主输出步骤”添加图片注释不超过 140 字可选将 stu_sex、born_date、policy、live_on_campus 的空值统一替换为未知。添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选4.3.9 学生基础属性标准化处理4.3.9.1 住校状态映射原始住校状态以数字形式存储可读性差且存在空值通过映射转换为规范文本并处理空值使标签表更直观同时满足住校/走读考勤对比分析的需求。添加“值映射”组件到画布中并创建替换NULL值组件到值映射组件的连线并选择“主输出步骤”添加图片注释不超过 140 字可选添加值映射组件字段选择 live_on_campus。配置映射规则0→否1→是不匹配默认→否。把数字编码转为文字提升可读性。添加图片注释不超过 140 字可选4.3.9.2 从班级名提取年级原始数据无独立年级字段无法按年级做考勤统计与画像分群通过从班级名称中提取年级信息补齐年级维度支撑年级层面的考勤分析。拖拽“JavaScript代码”组件至画布中创建住校状态映射组件到JavaScript代码组件的连线添加图片注释不超过 140 字可选双击“JavaScript代码”组件步骤名称改为“从班级提取年级”脚本判断包含 “高一”→高一“高二”→高二“高三”→高三其余→未知。输出新字段 gra_name。添加图片注释不超过 140 字可选4.3.9.3 校区类型判定原始数据无校区类型字段不同校区管理口径与考勤规则存在差异通过班级名称规则判定老校区/新校区增加校区分析维度使考勤标签更贴合校园实际管理场景。再添加一个JavaScript 代码组件命名为校区类型判定。脚本判断以 “白 -”“东 -” 开头→新校区其余→老校区空值→未知。字段名称“class_campus_type”类型为“String”替换“字段名”或“重命名”值选择“否”添加图片注释不超过 140 字可选4.3.10 结果入库实验核心将统计结果写入目标表形成标准化台账便于后续查询、分析和追溯。具体操作如下添加表输出组件并创建“校区类型判定”“JavaScript代码组件到表输出组件的连线添加图片注释不超过 140 字可选数据库连接选择团队私有数据库目标表选择 student_attendance_stats。勾选裁剪表避免重复插入导致数据冗余。进入数据库字段页通过获取字段完成流字段与表字段的一一映射。确认映射无误后保存配置。添加图片注释不超过 140 字可选4.3.11 执行工作流点击工具栏执行使用默认运行配置启动转换流。观察底部日志所有组件显示完成、无报错、无异常数据说明流程执行成功。添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选进入元数据右键数据库加载元数据打开 student_attendance_stats 表。在查询页面预览数据检查学生信息、考勤次数、年级、校区、住校状态等是否完整、准确、规范。确认结果符合预期整个考勤标签构建完成。添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选添加图片注释不超过 140 字可选五、问题与解决在实验过程中遇到了两个问题问题 1表关联后数据缺失、字段混乱现象部分考勤记录丢失字段重复错乱原因连接类型错误未使用左外连接关联字段选择不当解决改为 LEFT OUTER 连接只保留关键字段关联重新运行问题 2脚本标记条件不生效现象迟到、请假等行为判断不准确原因字段为空时脚本报错关键词匹配逻辑不完善解决增加空值判断优化脚本逻辑确保所有记录都能正常标记六、实验总结通过本次学生考勤标签构建实验我完整走完了从原始数据到标准化标签的 ETL 全流程真正理解了数据抽取、清洗、转换、加载的核心逻辑。在助睿数智可视化平台的支持下我无需编写复杂代码就能完成多表关联、字段衍生、指标计算、空值处理等企业级数据处理操作。实验让我掌握了表输入、记录集连接、分组、脚本、字段选择、值映射等核心组件的使用方法也深刻体会到统一口径、规范处理、严谨校验在数据工作中的重要性。任何一个小配置错误都可能导致结果偏差这让我养成了先检查配置、再预览数据、最后执行运行的习惯。整体来看本次实验不仅提升了我的 ETL 工具实操能力更建立了数据治理与用户画像构建的基本思维为后续更复杂的数据挖掘、可视化分析、大数据应用学习打下了扎实基础。