一、实验背景1.1 实验目的本次实验基于 “数智教育” 大赛数据集在助睿数智Uniplore一站式数据科学实验平台上从零搭建学生考勤主题标签构建的 ETL 全流程转换流。通过完整的数据接入、清洗、关联、标签衍生、多维度聚合与落地入库流程掌握零代码可视化 ETL 工具的核心操作实现从原始考勤数据到标准化学生画像标签的自动化处理解决校园考勤人工统计效率低、口径不统一的痛点为后续学情分析、学风管理提供可靠的数据支撑。1.2 实验环境平台助睿数智Uniplore一站式数据科学实验平台实验平台地址https://lab.guilian.cn/数据源“数智教育” 大赛数据集包含teacher.csv、kaoqin.csv、student_info.csv等 7 张核心业务表本次实验重点使用kaoqin.csv考勤主表、kaoqin_type.csv考勤类型表、student_info.csv学生信息表三张表数据库MySQL 团队私有数据库核心技能点数据接入、多表关联、字段衍生、聚合统计、空值处理、字段标准化1.3 整体设计1功能用途与业务价值本转换流替代人工 Excel 统计实现考勤数据从原始打卡记录到标准化结果的闭环处理批量输出多维度指标同时固化统计口径、提升处理效率、沉淀标准化流程为校园管理决策提供数据支撑且可灵活扩展新增考勤类型无需修改核心转换流适配校园考勤管理的核心需求。2 核心处理逻辑转换流核心逻辑为接入三大数据源→多表关联→标记考勤行为→计算核心指标→基础属性关联→落地统计结果实现全流程自动化处理所有环节均通过助睿 ETL 平台可视化界面完成配置。3.数据与标签梳理根据转换流的逻辑需对数据与标签进行梳理明确数据源、标签维度及标签计算口径为后续转换流配置提供依据。3.1 源数据说明本次转换流处理的数据来源于 “数智教育” 大赛数据集原始数据集共包含 7 张表1_teacher.csv教师信息2_student_info.csv学生信息3_kaoqin.csv考勤主表4_kaoqintype.csv考勤类型码表5_chengji.csv成绩信息6_exam_type.csv考试类型7_consumption.csv消费信息本次实验聚焦 “考勤主题”分析以上 7 张数据表后筛选出与考勤行为直接相关且能支撑多维度分析的 3 张核心表形成 “事实表 维度表 属性表” 的完整星型模型结构各表核心作用及关键字段如下数据源主表核心作用关键字段考勤主表3_kaoqin存储学生每日原始打卡记录、考勤行为明细学生 ID、班级 ID、学期qj_term、打卡时间DataDateTime、考勤类型 IDControllerID、考勤描述controler_name考勤类型码表4_kaoqintype标准化考勤事件名称区分正常与异常考勤类型考勤类型 IDcontroller_id、考勤事件名称control_task_name学生信息表2_student_info提供学生基础属性支撑多维度学生画像学生 IDbf_StudentID、班级 IDcla_id、学生姓名bf_Name、性别bf_sex、出生日期bf_BornDate、政治面貌bf_policy、是否住校bf_zhusu3.2 标签字段说明学生考勤主题标签分为三类学生基础属性标签、学生画像维度标签和考勤行为指标标签。3.2.1 学生基础属性标签表格标签字段数据来源选择依据学生 ID考勤主表 / 学生信息表学生唯一标识用于数据关联和去重学生姓名考勤主表 / 学生信息表便于结果查阅和人工核对班级 ID考勤主表 / 学生信息表班级唯一标识用于班级维度统计班级名称考勤主表 / 学生信息表用于提取年级和校区类型性别学生信息表学生性别可按性别维度分析考勤行为差异出生日期学生信息表学生出生年份可用于年龄维度分析识别不同年龄段的考勤特点政治面貌学生信息表学生政治面貌可按政治面貌维度分析不同群体的考勤行为选表依据这些字段是学生的基础身份信息主要从学生信息表2_student_info获取考勤主表中也包含部分学生信息可作为交叉验证。这些基础属性是后续分维度统计的核心依据。示例用途可按性别分析男生与女生的迟到考勤差异可按政治面貌分析不同群体的考勤行为特点。3.2.2 学生画像维度标签表格标签字段衍生逻辑选择依据年级从班级名称cla_name中提取学校管理通常按年级统计考勤情况便于分层管理是否住校映射学生信息表bf_zhusu字段住校生与走读生的考勤行为模式不同便于针对性管理校区类型从班级名称cla_name中判断不同校区的管理规则与考勤要求存在差异可用于对比分析选表依据这三个标签字段属于衍生维度原始数据中没有直接提供需要根据班级名称和住校字段进行二次加工。年级维度有助于学校按年级进行考勤管理和对比分析住校维度用于区分住校生和走读生两者的考勤行为模式存在差异校区类型维度源于数据说明中提到的 2017-2018 年新校区启用情况不同校区的管理规则可能不同。示例用途可按住校状态分析走读生是否更容易迟到可按校区类型对比新旧校区的校服穿戴规范执行情况。3.2.3 考勤行为统计标签表格标签字段选择依据迟到次数学生行为规范的核心指标之一早退次数学生行为规范的核心指标之一请假次数区分正常缺勤与异常缺勤没穿校服次数学校日常行为规范的重要维度选表依据这四类异常考勤行为是学校日常学生管理的核心关注点。迟到和早退反映学生的时间管理能力和纪律意识请假次数可用于区分正常缺勤与异常缺勤校服穿戴是学校行为规范的重要考核项。根据数据说明“校服 [移动考勤]” 特指未穿校服的情况。示例用途可分析学生不同异常考勤次数判断考勤风险等级。3.3 标签处理口径所有标签口径统一固化确保统计结果准确可比具体如下3.3.1 基础属性字段处理口径表格字段处理方式口径说明学生 ID直接读取从考勤主表获取学生姓名直接读取从考勤主表获取班级 ID直接读取从考勤主表获取班级名称直接读取从考勤主表获取性别空值替换从学生信息表获取空值替换为 “未知”出生日期空值替换从学生信息表获取空值替换为 “未知”政治面貌空值替换从学生信息表获取空值替换为 “未知”3.3.2 衍生维度字段处理口径字段处理方式口径说明年级从cla_name提取包含 “高一”→高一包含 “高二”→高二包含 “高三”→高三其他→未知是否住校映射 空值替换bf_zhusu1→“是”bf_zhusu0→“否”空值→“未知”校区类型从cla_name判断以 “白” 或 “东” 开头→新校区其他→老校区3.3.3 考勤行为指标统计口径指标统计逻辑口径说明迟到次数COUNT (迟到 AND 非请假)考勤事件名称controler_name/control_task_name包含 “迟到”/“晚到” 关键词且排除请假的记录条数早退次数COUNT (早退 AND 非请假)考勤事件名称controler_name/control_task_name包含 “早退” 关键词且排除请假的记录条数请假次数COUNT (包含请假)考勤事件名称controler_name/control_task_name包含 “请假” 关键词的所有记录总条数含事假、病假等各类请假没穿校服次数COUNT (包含校服)考勤事件名称controler_name/control_task_name包含 “校服” 的异常情况记录条数统计口径设计理由排除请假记录请假属于正常缺勤不应计入迟到或早退的违规统计避免重复计数和误判。请假全覆盖只要考勤事件名称中包含 “请假” 关键词无论事假、病假或其他类型均计入请假次数。校服违规唯一识别根据数据说明考勤类型中的 “校服 [移动考勤]” 明确指未穿校服因此包含 “校服” 关键词的记录即视为违规。1.4 整体处理流程本次实验的核心流程分为 6 个阶段前期准备创建实验项目、导入数据集、配置数据库连接原始数据入库通过 SQL 脚本创建表将 CSV 数据导入 MySQL 数据库核心数据关联将考勤记录、考勤类型、学生信息三张表通过关联键连接构建完整数据宽表考勤标签衍生通过 JavaScript 脚本生成迟到、早退、请假等考勤行为标签多维度聚合统计按学生维度聚合统计各类考勤行为次数数据清洗与标准化空值处理、字段筛选、衍生维度年级、校区类型结果落地与验证将最终标签数据写入目标表验证结果正确性二、实验步骤保姆级分步操作步骤 1创建实验项目登录助睿数智平台点击左侧导航栏【项目管理】→【新建项目】输入项目名称学生用户画像-考勤主题标签构建点击【确定】项目创建成功后进入项目主页可看到【数据集】【资源库】【文件库】【元数据】等模块步骤 2数据集获取与导入在项目主页点击【数据集】→【新建目录】命名为 “数智教育数据集”进入公共空间找到 “数智教育” 大赛数据集将3_kaoqin.csv、4_kaoqintype.csv 和 2_student_info.csv导入到项目的 “数智教育数据集” 目录。步骤 3配置 MySQL 数据库连接点击项目主页【资源库】→【数据源】→【新建数据源】。按以下信息填写数据库配置连接名称团队私有数据库用户名平台提供的账号密码平台提供的密码服务器主机平台提供的端口3306数据库名平台提供的使用兼容库MySQL 8点击【测试连接】显示 “连接成功” 后点击【添加】完成配置步骤 4创建原始数据表并导入数据4.1 考勤记录表导入新建转换流命名为 “创建原始学生_考勤表”在该工作流中拖拽 “执行一个 SQL 脚本” 组件通过执行 SQL 脚本来创建一个标签表。整个转换流如下所示拖入【执行 SQL 脚本】组件双击打开输入建表 SQLCREATE TABLE IF NOT EXISTS raw_attendance( attend_id INT NOT NULL COMMENT 考勤ID, stu_id VARCHAR(20) NOT NULL COMMENT 学生ID, attend_date DATE NOT NULL COMMENT 考勤日期, attend_time TIME COMMENT 打卡时间, attend_type_id INT COMMENT 考勤类型ID, attend_task_order INT COMMENT 考勤事件顺序, controler_id INT COMMENT 考勤事件ID, controler_name VARCHAR(20) COMMENT 考勤事件名称, control_task_name VARCHAR(20) COMMENT 考勤任务名称, create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 入库时间, PRIMARY KEY(attend_id) )COMMENT考勤记录表;完成后运行转换流运行过程会定时刷新组件状态并刷新界面显示。导入原始考勤数据建转换工作流并命名为 “导入原始考勤数据”在该工作流中拖拽一个 “CSV 文件输入” 组件到画布。配置参数命名考勤记录文件路径我的数据集 → kaoqin.csv列分隔符和封闭符使用默认参数编码选择 UTF-8。字段获取成功后点击确认6.拖拽表输出组件到画布并创建 “考勤记录” CSV 文件输入组件到 “表输出” 组件的连线连线数据路径为 “主输出步骤”。7.配置数据库连接选择“团队私有数据库”目标表输入我们使用SQL组件创建的“raw_attendance”具体配置如下7.点击数据库字段获取连接字段将表字段改为建表语句中对应的字段。8.点击运行等待转换流执行成功。4.2 考勤类型表导入新建转换流命名为创建原始_考勤类型表。拖拽【执行一个 SQL 脚本】组件到画布中。双击组件选择数据库连接为 “团队私有数据库”输入以下建表 SQLCREATE TABLE IF NOT EXISTS raw_attendance_type ( id bigint NOT NULL AUTO_INCREMENT COMMENT 考勤类型id, attendance_type_id varchar(64) NOT NULL COMMENT 考勤类型名称, 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_type_id,attendance_task_order_id) ) COMMENT原始_考勤类型表;点击【运行】等待脚本执行成功完成表创建。新建导入原始考勤类型数据转换流。拖拽【CSV 文件输入】组件到画布。双击【CSV 文件输入】组件配置以下关键参数文件来源我的数据集选择文件kaoqin_type.csv分隔符插入制表符TAB编码GB2312拖拽表输出组件到画布与考勤记录表配置一样。点击【确认】运行转换流等待执行完成查看运行日志确认数据导入成功4.3 原始学生信息表导入新建转换流命名为创建原始学生_信息表转换流。拖拽【执行一个 SQL 脚本】组件输入以下建表 SQLCREATE 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(30) DEFAULT NULL COMMENT 宿舍号, create_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT 入库时间, PRIMARY KEY (id), UNIQUE KEY uk_student_id (stu_id) ) COMMENT原始_学生信息表;运行转换流查看日志观察是否成功。新建导入原始学生基本信息转换流。拖拽【CSV 文件输入】组件配置参数文件来源我的数据集选择文件student_info.csv列分隔符和封闭符使用默认参数编码选择 UTF-8。获取字段时需要将 “bf_leaveSchool” 的字段类型修改为 “String”。特别说明bf_zhusu、bf_qinshihao 这 2 个字段是 Integer为避免出现小数需要使用 “字段选择” 组件来固化并规范。拖拽 “字段选择” 组件到画布中创建 “CSV 文件输入” 组件到 “字段选择” 组件的连线连接线类型选择 “主输出步骤”。找到字段bf_zhusu住校和bf_qinshihao宿舍号设置类型为Integer。日期格式、宽松数字转换均选择否。拖拽【表输出】组件与字段选择组件建立连接。配置参数数据库连接团队私有数据库目标表raw_student_info提交记录数量1000忽略插入错误勾选裁剪表勾选切换至【数据库字段】标签页完成字段映射点击【确认】运行转换流查看日志确认数据导入成功。4.4 创建学生考勤主题标签表新建转换流切换到项目资源库在 “转换流” 页面点击「新建转换流」命名为创建学生考勤主题标签表点击「确定」进入设计界面。添加 “执行一个 SQL 脚本” 组件从左侧组件库拖拽「执行一个 SQL 脚本」组件到画布双击组件打开配置窗口。执行SQL脚本CREATE TABLE IF NOT EXISTS student_attendance_stats ( id bigint NOT NULL AUTO_INCREMENT COMMENT 自增ID, stu_id varchar(64) NOT NULL COMMENT 学生ID, stu_name varchar(100) DEFAULT NULL COMMENT 学生姓名, cla_id varchar(64) DEFAULT NULL COMMENT 班级ID, cla_name varchar(100) DEFAULT NULL COMMENT 班级名称, gra_name varchar(20) DEFAULT NULL COMMENT 年级, campus_type varchar(20) DEFAULT NULL COMMENT 校区类型, stu_sex varchar(10) DEFAULT NULL COMMENT 性别, born_date varchar(10) DEFAULT NULL COMMENT 出生日期年, policy varchar(50) DEFAULT NULL COMMENT 政治面貌, live_on_campus varchar(10) DEFAULT NULL COMMENT 是否住校, late_count int DEFAULT 0 COMMENT 迟到次数, early_count int DEFAULT 0 COMMENT 早退次数, leave_count int DEFAULT 0 COMMENT 请假次数, no_uniform_count int DEFAULT 0 COMMENT 未穿校服次数, create_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT 入库时间, PRIMARY KEY (id), UNIQUE KEY uk_student_id (stu_id), INDEX idx_class (cla_id), INDEX idx_grade (gra_name) ) COMMENT学生考勤主题标签表;运行转换流点击画布上方的「运行」按钮等待执行完成查看运行日志确认表创建成功无报错。学生考勤主题标签构建核心主流程步骤5学生考勤主题标签构建核心主流程5.1 数据接入读取三张原始数据表新建主流程转换流新建转换流命名为学生考勤主题标签点击「确定」进入设计界面。解锁画布转换流创建后默认处于锁定状态点击画布上方的「解锁」按钮进入可编辑模式。添加三个 “表输入” 组件从组件库拖拽 3 个「表输入」组件到画布分别命名为考勤记录、考勤类型、学生信息。配置 “考勤记录” 表输入组件双击组件步骤名称改为考勤记录数据库连接选择团队私有数据库。在 SQL 编辑框中输入查询语句点击「获取 SQL 查询语句」选择raw_attendance表。配置 “考勤类型” 表输入组件步骤名称改为考勤类型数据库连接选择团队私有数据库。输入查询语句点击「获取 SQL 查询语句」选择raw_attendance_type表。配置 “学生信息” 表输入组件步骤名称改为学生信息数据库连接选择团队私有数据库。输入查询语句点击「获取 SQL 查询语句」选择raw_student_info表。5.2 数据关联关联考勤记录与考勤类型添加 “记录集连接” 组件拖拽「记录集连接」组件到画布连接顺序为考勤记录 → 记录集连接。为避免因为排序问题造成连接结果出错添加排序记录组件到考勤记录与记录集连接之间。双击打开【排序记录】配置界面名称按照考勤类型和考勤任务排序。点击「确定」保存配置。记录集连接配置连接方式左外连接LEFT JOIN。关联字段attendance_type_id attendance_task_order_id。点击「获取字段」确认两表字段已合并点击「确认」保存。添加 “JavaScript 脚本” 组件打标签拖拽「JavaScript 脚本」组件连接到记录集连接组件命名为提取异常考勤记录。双击组件输入脚本代码根据考勤事件名称自动生成迟到、早退、请假、未穿校服的标识字段点击获取变量生成字段数据。// 初始化标识字段 var isLate 0; var isEarly 0; var isLeave 0; var isNoUniform 0; if (attendance_task_name ! null) { // 迟到判断 if (attendance_task_name.includes(迟到) || attendance_task_name.includes(晚到)) { isLate 1; } // 早退判断 if (attendance_task_name.includes(早退) || attendance_task_name.includes(早走)) { isEarly 1; } // 请假判断 if (attendance_task_name.includes(请假) || attendance_task_name.includes(缺勤)) { isLeave 1; } // 未穿校服判断 if (attendance_task_name.includes(未穿校服)) { isNoUniform 1; } }点击测试脚本确认标记字段仅存在1和0两个值。5.3 多维度分组聚合统计添加 “分组 / 聚合” 组件拖拽「分组 / 聚合」组件连接到JavaScript脚本组件命名为按学生统计考勤次数。配置分组字段双击组件在「分组」标签页插入以下字段作为分组依据stu_idstu_namecla_idcla_name配置聚合函数在「聚合」标签页添加以下聚合规则字段名聚合函数目标字段名isLateSumlate_countisEarlySumearly_countisLeaveSumleave_countisNoUniformSumno_uniform_count点击确认。5.4关联学生信息表补充基础属性添加 “排序记录” 组件拖拽两个「排序记录」组件第一个连接到分组/聚合组件按stu_id升序排序。命名为考勤数据按学号排序。第二个连接到学生信息表输入组件按stu_id升序排序。命名为按照学生编号进行排序。添加 “记录集连接” 组件拖拽「记录集连接」组件连接顺序为排序后的聚合结果 → 记录集连接 ← 排序后的学生信息表。配置关联条件连接方式左外连接LEFT OUTER。关联字段stu_id stu_id。点击「获取字段」确认已合并学生基础属性字段点击「确认」保存。5.5 字段选择移除冗余字段添加 “字段选择” 组件拖拽「字段选择」组件连接到记录集连接组件命名为移除冗余字段。配置移除规则双击组件切换到「移除」标签页右键空白处点击「获取字段」在字段列表中勾选需要移除的字段如原始自增 ID、多余的关联字段等仅保留以下核心字段stu_idstu_namecla_idcla_namelate_countearly_countleave_countno_uniform_countstu_sexborn_datepolicylive_on_campus确认输出字段右键组件点击「显示输出字段」确认保留的字段正确点击「确认」保存。5.6 空值处理替换 NULL 值添加 “替换 NULL 值” 组件拖拽「替换 NULL 值」组件连接到字段选择组件命名为替换空值。配置替换规则双击组件勾选「选择字段」在表格中右键点击「插入」依次添加需要处理的字段字段名值替换为stu_sex未知born_date未知policy未知live_on_campus未知保存配置点击「预览」确认空值已被替换点击「确认」保存。5.7 学生基础属性标准化处理1. 住校状态映射添加「值映射」组件连接到替换NULL值组件命名为住校状态映射。双击组件配置使用的字段名live_on_campus不匹配时的默认值否在字段值表格中右键「插入」添加映射规则表格源值目标值0否1是点击「确认」保存配置。2. 从班级名提取年级添加「JavaScript 脚本」组件连接到值映射组件命名为从班级名提取年级双击组件输入脚本代码var gra_name; if (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 未知; }在输出字段设置中添加gra_name字段类型为String点击「确认」保存。3、校区类型判定添加「JavaScript 脚本」组件连接到值映射组件命名为校区类型判定。双击组件输入脚本代码var class_campus_type if (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未知 }替换 “字段名” 或 “重命名” 值字段否5.8 结果入库写入学生考勤主题标签表添加 “表输出” 组件拖拽「表输出」组件连接到校区类型判定组件。配置基本参数数据库连接团队私有数据库目标表student_attendance_stats提交记录数量1000勾选「裁剪表」。配置字段映射切换到「数据库字段」标签页点击「获取字段」将流字段与表字段一一对应保存配置点击「确认」保存组件配置。5.9 执行工作流并验证结果运行转换流点击画布上方的「运行」按钮在弹出的窗口中选择默认配置点击「启动」等待转换流执行完成。查看运行日志执行过程中定期查看日志确认所有组件执行成功无报错、无警告。验证数据库结果进入项目「元数据」页面右键点击团队私有数据库选择「加载元数据」展开student_attendance_stats表点击「查询」标签页查看数据每个学生仅有一条统计记录。迟到、早退、请假、未穿校服次数统计与原始数据一致。gra_name、campus_type字段衍生正常无空值。live_on_campus字段已映射为 “是 / 否” 文本可读性正常。三、问题与解决下面记录本次助睿 Uniplore 学生考勤主题标签构建实验中遇到的典型问题、原因及完整解决方法均为实验过程中真实出现的场景问题 1记录集连接组件执行报错提示 “输入流未按关联字段排序”问题现象运行考勤记录表与考勤类型表的关联转换流时记录集连接组件执行失败日志报错Record set join requires sorted input streams转换流终止运行无法得到关联结果。问题原因助睿 Uniplore 平台的「记录集连接」组件采用有序归并连接算法要求参与关联的两个输入流必须提前按关联字段升序排序本次实验中直接将两个表输入组件连接到记录集连接未添加排序记录组件导致输入流无序关联算法无法正常执行。解决方法在考勤记录表输入组件与记录集连接之间添加「排序记录」组件配置按关联字段attendance_type_id升序排序在考勤类型表输入组件与记录集连接之间同样添加「排序记录」组件按attendance_type_id升序排序重新运行转换流关联组件执行成功数据匹配正常。问题 2学生信息表 CSV 导入后live_on_campus字段被自动识别为小数出现0.0而非整数0/1问题现象导入student_info.csv后查看数据库表数据live_on_campus字段的值显示为0.0、1.0而非原始数据的整数0和1后续字段类型校验报错。问题原因CSV 文件导入时平台自动识别字段类型为浮点型Number而目标建表语句中该字段为INT类型类型不匹配导致数据格式异常影响后续住校状态映射处理。解决方法在 CSV 文件输入组件后添加「字段选择」组件双击「字段选择」组件切换到「元数据」标签页找到live_on_campus字段将其数据类型修改为Integer重新运行导入转换流字段值恢复为整数格式与目标表字段类型一致。问题 3考勤标签统计结果中迟到、早退等次数为NULL而非0问题现象运行分组聚合组件后部分学生的late_count、early_count等统计字段显示为NULL而非预期的0影响后续数据查询与报表展示。问题原因分组聚合时部分学生无对应异常考勤记录聚合函数SUM对空值的计算结果为NULL未对聚合结果中的空值进行统一处理。解决方法在分组聚合组件后添加「替换 NULL 值」组件配置替换规则数值型统计字段late_count、early_count、leave_count、no_uniform_count的空值统一替换为0重新运行转换流所有统计字段的空值均被替换为0结果符合预期。问题 4从班级名称提取年级时部分班级的gra_name字段生成null或错误值问题现象运行「从班级名提取年级」的 JavaScript 脚本后部分班级的gra_name字段为空或被错误标记为 “未知”无法正确识别高一 / 高二 / 高三。问题原因班级名称格式不统一部分班级名称包含额外前缀如 “实验”“重点”脚本中includes()方法的匹配逻辑未覆盖这些情况且未处理cla_name为NULL的边界场景。解决方法优化 JavaScript 脚本增加cla_nameNULL的判断默认赋值为 “未知”调整匹配逻辑使用indexOf()替代includes()并对班级名称进行去空格处理确保匹配不受额外字符影响测试脚本后重新运行所有班级的年级字段均能正确生成无空值或错误值。四、实验总结1.收获熟练掌握了助睿 Uniplore 平台的核心组件使用方法包括表输入、CSV 文件输入、排序记录、记录集连接、JavaScript 脚本、分组聚合、字段选择、替换 NULL 值、值映射、表输出等理解了可视化 ETL 的开发流程与数据处理逻辑。掌握了教育大数据中用户画像标签的构建思路从原始业务数据到主题标签宽表的加工流程包括数据接入、关联清洗、标签衍生、聚合统计、标准化处理等关键步骤。学会了排查 ETL 开发中的常见问题如数据排序问题、字段类型不匹配、空值处理、脚本逻辑错误等掌握了针对性的解决方法提升了数据开发的调试能力。理解了有序归并连接算法的原理明确了关联操作前数据排序的必要性以及数据预处理空值处理、字段类型修正对后续流程稳定性的影响。2.对平台的整体评价助睿 Uniplore 数智平台以可视化、零代码的方式降低了大数据 ETL 开发的门槛非常适合大数据入门学习者快速掌握数据集成与处理流程。平台组件功能完善覆盖了数据导入、转换、关联、聚合、输出等全流程需求日志信息清晰便于排查问题同时提供了公共数据集与私有数据库的一体化环境无需额外搭建本地环境大大提升了实训效率。不过部分组件如记录集连接的使用限制较为严格对新手来说需要一定的适应过程但整体而言平台是大数据实训的优质工具能帮助学习者快速建立数据开发的整体认知为后续深入学习大数据技术打下坚实基础。