一、实验背景1.1 实验目的本次实验以 “数智教育” 大赛数据集为基础依托助睿零代码 ETL 平台构建学生多维度考勤统计转换流完整实践数据接入、多表关联、标签衍生、聚合统计到结果落地的全流程数据处理逻辑。实验旨在解决传统校园考勤依赖人工统计存在的效率低下、统计口径不统一、易出错等问题同时结合真实数据中的空值、异常值等情况优化数据清洗与空值处理规则确保转换流稳定运行最终输出可直接用于校园考勤管理的标准化统计结果为教务管理提供数据化支撑。1.2 实验环境工具平台助睿 Uniplore 零代码数据科学平台https://lab.guilian.cn/该平台提供从数据接入、ETL 处理、建模分析到可视化展示的全链路零代码能力无需编写复杂 SQL 或代码即可完成数据处理流程配置适配数据分析教学场景与企业级数据加工需求官网地址为https://www.uniplore.com/。数据源“数智教育” 大赛公开数据集包含 7 张核心业务表覆盖学生基础信息、考勤打卡记录、班级信息、考勤类型等多维度数据为本次考勤统计提供完整业务数据支撑。实验设备可正常访问助睿平台的计算机设备具备数据库连接权限能够稳定运行平台组件并处理数据集。二、转换流整体设计2.1 功能用途与业务价值本转换流通过自动化数据处理替代传统人工 Excel 考勤统计实现从原始打卡数据到标准化统计台账的闭环处理可批量生成学生考勤次数、异常行为、合规率等多维度指标彻底解决人工统计效率低、口径不统一、数据易丢失的痛点。转换流固化了考勤统计的业务规则与计算口径后续可直接复用无需重复配置同时支持灵活扩展新增考勤类型或统计维度时仅需调整组件配置即可适配无需重构流程能快速响应校园考勤管理的业务变化需求为教务部门的考勤管理与学生行为分析提供高效、可靠的数据支撑。2.2 核心处理逻辑转换流采用 “数据接入 - 关联整合 - 行为标记 - 指标计算 - 结果落地” 的递进式处理逻辑通过助睿平台可视化组件实现全流程无代码配置数据接入读取学生信息表、考勤记录表、考勤类型表等核心数据源完成数据接入与基础清洗多表关联以学生学号、班级 ID 为关联字段将学生基础信息与考勤打卡数据进行关联整合形成完整的考勤明细数据行为标记基于打卡时间、考勤类型等字段衍生生成迟到、早退、请假、未穿校服等考勤行为标签指标计算按学生维度聚合统计迟到次数、早退次数、请假次数、合规出勤次数等核心指标结果落地将清洗、聚合后的标准化统计结果写入数据库生成可直接用于分析的学生考勤统计台账。三、数据与标签梳理结合转换流的业务逻辑对数据源、标签维度及计算口径进行梳理明确各环节的输入数据、衍生标签与统计指标确保处理流程清晰、计算口径统一。3.1 源数据说明本次实验使用的 “数智教育” 大赛数据集包含 7 张核心业务表各表的核心作用与关键字段梳理如下学生信息表存储学生基础属性数据关键字段包括学号stu_id、姓名stu_name、班级 IDcla_id、班级名称cla_name、性别、出生日期等用于关联学生身份信息与考勤数据考勤记录表存储学生每日打卡明细数据关键字段包括学号stu_id、打卡时间、考勤任务 ID、打卡状态、校区等是考勤行为分析的核心数据源考勤类型表定义不同考勤任务的类型与规则关键字段包括考勤任务 ID、考勤类型、任务名称、规则说明等用于识别打卡行为对应的考勤场景班级信息表存储班级与年级的对应关系关键字段包括班级 IDcla_id、班级名称、年级、校区等用于补充学生所属班级与校区信息其余 3 张辅助表分别为校区信息表、课程信息表、教师信息表本次实验中主要用于补充学生的校区、课程相关信息辅助完善学生考勤统计的多维度维度。四、实验步骤4.1 创建实验项目4.2 数据资源获取为方便后续的数据使用我们可以将原始数据导入我们的团队私有数据库在项目页面可以看到左侧有3个菜单资源库、文件、元数据资源库用于对工作流的管理包括新建、删除、修改、查看工作流的信息导出导入工作空间调度管理等操作文件库用于保存工作流中需要用到的文件和工作流产生的文件元数据管理是助睿ETL的重要基石可以为工作流定义“运行配置”、“数据库”、“flink集群”等配置4.2.1 获取实验数据集首先获取本次的实验数据集点击“文件库”右键根目录点击“新建目录”接下来我们将公共空间的数据资源导入到这个目录下首先点击公共空间再点击右上角数据资源点击“3_kaoqin.csv”卡片右上角的“更多”并点击“导出”接下来重复以上导出操作将本次实验用到的数据表 4_kaoqintype.csv 和 2_student_info.csv 都导出到“数智教育数据集”4.2.2 建立数据源连接在元数据tab页关系数据库右键打开菜单选择“新建数据源”弹出新建数据库连接窗口连接类型选择“MySQL”用户名和密码使用助教提供的账号和密码。服务器主机名使用助教提供的数据库连接地址“rm-2vc3qok06bag39a5n.mysql.cn-chengdu.rds.aliyuncs.com”端口号为3306数据库名为助教提供的数据库名称驱动类型选择“MySQL 8”连接名称为“团队私有数据库”填写完毕后点击“测试”按钮验证填写信息是否正确如果填写无误会返回“数据库连接成功”最后点击“添加”增加了一个数据库连接。添加成功后关系数据库节点会增加一个子节点。4.2.3 数据导入团队私有数据库4.2.3.1 原始考勤记录表数据导入1)创建原始_学生考勤表新建转换工作流并命名为“创建原始_学生考勤表”在该工作流中拖拽“执行一个SQL脚本”组件通过执行SQL脚本来创建一个标签表。整个转换流如下所示配置说明在组件中填写SQL脚本选择目标数据库连接“团队私有数据库”确保脚本执行权限SQL脚本如下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文件输入”组件到画布双击CSV文件输入组件在步骤名称中输入“考勤记录”配置参数如下下滑在字段表格中空白处右键点击“获取字段”接下来拖拽一个“表输出”组件到画布并创建“考勤记录”CSV文件输入组件到“表输出”组件的连线连线类型选择“主输出步骤”双击“表输出”组件基本配置中数据库连接选择“团队私有数据库”目标表输入我们使用SQL组件创建的“raw_attendance”具体配置如下点击“数据库字段”在空白处右键“获取字段”将表字段修改为建表语句中对应的字段点击“确认”完成后运行转换流运行过程会定时刷新组件状态并画布下面显示执行日志。4.2.3.2 原始考勤类型表数据导入参照“4.2.3.1 原始考勤记录表数据导入”小节的实验操作完成原始考勤类型表“4_kaoqintype.csv”数据导入到团队私有数据库其中的建表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文件输入组件时考勤类型原始表的列分隔符和考勤表的不一样在配置中列分隔符为“插入制表符TAB”、编码为“GB2312”表输出组件的配置与“4.2.3.1 原始考勤记录表数据导入”小节的一样配置完成后执行转换流运行过程会定时刷新组件状态并画布下面显示执行日志4.2.3.2 原始学生基本信息表数据导入参照“4.2.3.1 原始考勤记录表数据导入”小节的实验操作完成原始学习基本信息表“2_student_info.csv”数据导入到团队私有数据库其中的建表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”数据获取字段时需要将“bf_leaveSchool”的字段类型修改为“String”特别说明bf_zhusu、bf_qinshihao 这2个字段是Integer为避免出现小数需要使用“字段选择”组件来固化并规范拖拽“字段选择”组件到画布中创建“CSV文件输入”组件到“字段选择”组件的连线连接线类型选择“主输出步骤”双击“字段选择”组件在配置窗口中点击“元数据”并在空白处插入2行将“bf_zhusu”、“bf_qinshihao”字段的元数据设置如下使用“表输出”组件将“2_student_info.csv”数据输出到团队私有数据库的“raw_student_info”中4.2.4 创建学生考勤主题标签表新建转换工作流并命名为“创建学生考勤主题标签表”在该工作流中拖拽“执行一个SQL脚本”组件通过执行SQL脚本来创建一个标签表。整个转换流如下所示配置说明在组件中填写SQL脚本选择目标数据库连接“团队私有数据库”确保脚本执行权限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.3 学生考勤主题标签构建4.3.1 数据转换流逻辑说明转换流遵循“数据接入—清洗整合—维度拆解—标签标记—指标计算—结果落地”的核心逻辑数据接入接入考勤原始打卡表、考勤类型码表、学生信息基础表数据整合多表关联给原始打卡记录绑定学生班级、住校属性、考勤事件名称标签标记通过考勤事件名称自动识别迟到、早退、请假、未穿校服等行为指标计算按日核算在校时长按多维度聚合统计各类异常次数结果落地统一写入考勤统计结果表供报表、查询、分析直接使用整体逻辑各组件作用4.3.2 数据接入获取考勤记录、考勤类型数据、学生信息数据首先我们需要获取考勤记录、考勤类型数据、学生信息数据。考勤记录表记录了每位学生每天的考勤行为考勤类型表定义了每种考勤行为对应的类型名称如正常考勤、没穿校服等学生信息表提供了学生是否住校的核心属性。只有将这三份数据分别接入并后续关联起来才能完整判断学生的每次考勤是正常还是违纪同时支撑住校相关维度的统计。切换到资源库同样右键根目录点击“新建转换流”输入转换流名字“学生考勤主题标签”点击“确定”点击“组件库”搜索“表输入”拖拽3个表输入组件至画布中2. 双击第一个表输入组件在配置窗口中步骤名称修改为“考勤记录”数据库连接选择“团队私有数据库”并点击“获取SQL查询语句”在数据库中选择“raw_attendance”原始_学生考勤表系统提示弹窗中点击“确认”获取“raw_attendance”考勤记录表的所有字段获取SQL查询语句后点击“确认”同样的参考以上步骤将“表输入 1”和“表输入 2”组件分别命名为“考勤类型”和“学生信息”分别获取“raw_attendance_type”考原始_考勤类型表和“raw_student_info”原始_学生信息表所有字段数据4.3.3 数据关联关联考勤记录考勤类型使用表输入组件读取考勤记录、考勤类型数据后需通过记录集连接组件完成数据关联补充关键业务信息为后续指标计算奠定基础。使用记录集连接组件将考勤主表与考勤类型码表关联——因为考勤记录表只有考勤类型IDattendance_type_id和考勤任务顺序IDcontrol_task_order_id 缺少具体的考勤行为名称而通过记录集连接组件进行连接即可为每条考勤记录补充“正常考勤”“没穿校服”“迟到”“请假”等具体行为信息确保后续能准确识别各类考勤行为。具体操作如下在组件库搜索“记录集连接”组件并将组件拖拽至画布中创建“考勤记录”CSV文件输入组件到记录集连接组件的连接线在建立连接线时会出现“排序需要”的提示。这是由于记录集连接组件是按接收数据的顺序进行记录关联的如果接收的数据是无序的可能会造成记录连接结果出错。为避免因为排序问题造成连接结果出错。添加一个排序记录组件到转换流的“考勤记录”与“记录集连接”之间。双击“排序记录”组件通过“获取字段”功能获取字段列表然后删除多余字段只保留“attendance_type_id”、“attendance_task_order_id”字段。因为下一步连接是使用这两个字段进行连接所以采用这两个字段对记录进行排序。最后设置步骤名称为“按照考勤类型和考勤任务类型排序”创建“考勤类型”表输入组件到记录集连接组件的连接线。由于“考勤类型”组件的记录默认是按“attendance_type_id”、“attendance_task_order_id”这两个字段升序记录的所以无需再次排序。需要通过记录集连接组件来配置“考勤记录”和“考勤类型”两个表的关联关系。双击记录集连接组件在下拉列表中选择需要连接的数据来源第一个Transform选择“按照考勤类型和考勤任务类型排序”第二个Transform选择“考勤类型”连接类型选择LEFT OUTER2个Transform字段中仅保留“attendance_type_id”、“attendance_task_order_id”字段这样做表示使用这2个字段进行记录连接。可以使用“删除选中的行”批量删除多个字段。4.3.4 行为标签衍生统计学生异常考勤次数通过Javascript脚本生成考勤行为二进制标记为后续聚合统计提供支撑确保标签判断精准。具体操作如下添加“JavaScript 代码”组件对接“记录集连接”组件的输出通过关键词匹配生成二进制判断标签1是0否用于后续指标聚合双击“JavaScript代码”组件命名为“提取异常考勤记录”在Script1中输入JavaScript脚本脚本代码如下// 初始化变量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;}}// 请假判断使用“获取变量”获取输出字段系统将自动解析脚本中变量定义代码生成字段数据点击“JavaScript脚本”组件的“测试脚本”按钮确认标记字段is_late_early、is_leave等仅存在1和0两个值标签判断准确如迟到记录对应is_late_early1正常出勤对应is_compliant1无异常。4.3.5 多维度分组聚合统计实验核心按两大统计维度聚合数据将明细数据转化为统计指标满足多层级考勤管理需求。具体操作如下在助睿ETL平台拖拽2个“分组”组件分别对接“用户自定义Java表达式”组件的输出按两大统计维度进行聚合统一聚合指标确保数据全覆盖聚合规则聚合函数SUM迟到标记→ 迟到次数late_count聚合函数SUM早退标记→ 早退次数early_count聚合函数SUM请假标记→ 请假次数leave_count聚合函数SUM没穿校服标记→ 没穿校服次数no_uniform_count操作如下添加“分组”组件并建立连接线连线选择“主输出步骤”双击“分组”组件设置分组字段为“stu_id”、“stu_name”、“cla_id”、“cla_name”设置聚合字段为“late_early_count”、“leave_count”、“no_uniform_count”、“compliant_count”、“total_attendance”4.3.6 关联学生信息基于上述结果使用记录集连接组件关联学生信息表——因为考勤记录表仅包含学生ID和班级ID缺少学生是否住校的核心属性通过按学生ID关联学生信息表可补全该属性支撑住校相关维度的统计。具体操作如下由于“学生信息”数据表中的学号不是升序记录的所以在进行记录关联前也需要对数据进行排序。再次添加“排序记录”并建立“学生信息”表输入组件到“排序记录”组件的连接线双击“排序记录”组件通过“获取字段”功能获取字段列表然后删除多余字段只保留“stu_id”字段。因为下一步连接是使用这个字段进行连接所以采用这个字段对记录进行排序。最后设置步骤名称为“按照学生编号进行排序”拖拽“记录集连接”组件至画布中创建“按照学生编号进行排序”排序记录组件到“记录集连接 1”组件的连接线由于考勤记录数据不是按“学号”升序记录的所以在进行记录关联前也需要对数据进行排序。再次添加“排序记录”并建立“记录集连接”组件到“排序记录”组件的连接线双击“排序记录”组件按下图进行配置步骤名称设置为“考勤数据按学号排序”排序字段为“stu_id”创建“考勤数据按学号排序”记录排序组件到记录集连接 1组件的连线关联学生信息和考勤记录信息记录集连接 1组件的第一个Transform选择“考勤数据按学号排序”第二个Transform选择“按照学生编号进行排序”连接类型选择LEFT OUTER点击第一个Transform的连接字段中的“获得连接字段”按钮即可获取考勤记录和考勤类型关联后的字段。同样的获取第二个Transform的连接字段。第一个Transform字段保留“stu_id”第二个Transform字段保留“stu_id”。连接类型选择LEFT OUTER表示使用考勤记录的字段 stu_id与学生信息的字段 stu_id进行左外连接。4.3.7 字段选择移除冗余字段经过多表关联和前期接入数据中会包含大量与考勤统计无关的字段如学生信息表中的非必要属性需要对关联后的数据进行冗余字段移除因为这些冗余字段不仅会增加数据处理的负担还可能导致后续聚合、计算出现干扰只有移除冗余字段保留核心有用字段才能提升处理效率确保统计逻辑清晰。具体操作如下搜索“字段选择”拖拽至画布中创建“记录集连接 1”组件到字段选择组件的连接线双击字段选择组件在配置弹窗中步骤名称输入“移除冗余字段”点击“移除”Tab标签右键空白处并点击“获取字段”在获取的字段中**删除以下核心字段外其他字段保留**为后续时间维度拆解和行为标签衍生奠定基础学生 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.3.8 空值处理3个数据表关联后字段“stu_sex”、“born_date”、“policy”、“live_on_campus”存在空值需要对这么空值进行处理。拖拽“替换NULL值”组件至画布创建“移除冗余字段”字段选择组件到“替换NULL值”组件的连线连线类型选择“主输出步骤”双击“替换NULL值”组件勾选“选择字段”在字段空白表格中右键。点击“插入”双击插入的行字段名称选择“stu_sex”继续插入行将“born_date”、“policy”、“live_on_campus”的空值均替换为“未知”4.3.9 学生基础属性标准化处理经过多表关联与字段筛选后原始数据中住校状态为编码值且缺少年级、校区类型等画像分析必需字段无法直接用于学生考勤标签输出与后续用户画像分析。因此需要对学生基础属性进行标准化映射、缺失字段衍生统一数据格式、补齐分析维度保证标签表规范可用。4.3.9.1 住校状态映射原始住校状态以数字形式存储可读性差且存在空值通过映射转换为规范文本并处理空值使标签表更直观同时满足住校/走读考勤对比分析的需求。添加“值映射”组件到画布中并创建替换NULL值组件到值映射组件的连线并选择“主输出步骤”双击“值映射”组件步骤名称改为“住校状态映射”使用的字段名为“live_on_campus”不匹配时的默认值为“否”双击插入的行在源值中输入“0”目标值输入“否”代表将原数据中的“0”统一映射为“否”同样的再插入一行在源值中输入“1”目标值输入“是”并点击“确认”4.3.9.2 从班级名提取年级原始数据无独立年级字段无法按年级做考勤统计与画像分群通过从班级名称中提取年级信息补齐年级维度支撑年级层面的考勤分析。拖拽“JavaScript代码”组件至画布中创建住校状态映射组件到JavaScript代码组件的连线双击“JavaScript代码”组件步骤名称改为“从班级提取年级”并输入以下代码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未知}接下需要设置“gra_name”字段类型在配置窗口的下方空白表格处右键点击“插入”字段名称输入“gra_name”类型为“String”替换“字段名”或“重命名”值选择“否”设置完成后点击“确认”4.3.9.3 校区类型判定原始数据无校区类型字段不同校区管理口径与考勤规则存在差异通过班级名称规则判定老校区/新校区增加校区分析维度使考勤标签更贴合校园实际管理场景。参考“4.3.9.2 从班级名提取年级”步骤添加“JavaScript代码”组件“JavaScript代码”组件命名为“校区类型判定”输入的代码如下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未知}字段名称“class_campus_type”类型为“String”替换“字段名”或“重命名”值选择“否”4.3.10 结果入库实验核心将统计结果写入目标表形成标准化台账便于后续查询、分析和追溯。具体操作如下添加表输出组件并创建“校区类型判定”“JavaScript代码组件到表输出组件的连线双击表输出组件选择“团队私有数据库”连接勾选“指定数据库字段”建立工作流字段与数据库表字段的映射关系。勾选后会激活“数据库字段”tab页在数据库字段tab页右键选择“获取字段”4.3.11 执行工作流查看日志工作流执行后会打开日志页面定期刷新工作流日志数据。查看数据库结果打开“元数据”tab页在“团队私有数据库”连接上右键选择“加载元数据”查看数据库表数据是否符合预期五、问题与解决问题 1数据读取组件日志显示 I0 但 O0后续流程无数据输入问题描述数据库读取组件如考勤记录表、学生信息表日志显示 “读取到数据I0”但 “输出记录数 O0”导致后续排序、关联、聚合组件的输入均为 0流程无法正常运行。原因分析组件输出配置缺失数据库读取组件未勾选 “输出查询结果字段”或未配置输出流字段数据仅在组件内部处理未传递到下游节点。SQL 查询隐含过滤条件SQL 语句中包含了逻辑错误的过滤条件如 WHERE 12、关联条件不匹配导致数据库返回空结果集。数据类型 / 格式不兼容数据库中的日期、字符串字段存在格式异常如非标准日期格式、含特殊字符导致平台无法解析数据自动丢弃无效记录。解决方法检查并修复组件输出配置打开数据库读取组件的设置进入「输出字段」配置页勾选 “输出所有字段”或手动选择需要传递到下游的字段。确认组件的「输出流」为开启状态未被设置为 “仅读取不输出”。验证 SQL 查询语句复制组件中的 SQL 语句直接在数据库客户端如 Navicat中执行确认能返回有效数据。简化 SQL 语句为 SELECT * FROM 表名 LIMIT 10逐步添加过滤条件排查是否存在逻辑错误。预处理异常数据格式提前对数据库中的日期、字符串字段进行清洗去除特殊字符、修正格式错误如将日期统一为 yyyy-MM-dd HH:mm:ss 格式。在读取组件后添加 “字段类型转换” 组件统一数据格式避免平台解析失败。六、实验总结通过本次实验我熟练掌握了零代码ETL平台的基础操作理解了数据接入、关联、清洗、衍生指标、聚合统计、数据落地的完整业务逻辑能够独立完成简单业务场景的数据加工流程搭建。同时也认识到真实业务数据中普遍存在空值、不规范、字段不匹配等问题数据清洗与规范化处理是保证数据统计准确、流程稳定运行的关键环节。总体而言本次实验顺利完成了学生多维度考勤统计的全部实验目标不仅提升了我的大数据可视化处理能力也培养了我排查数据异常、优化数据流程、规范统计口径的思维为后续开展更复杂的数据治理、指标体系构建、用户画像分析等实验打下了扎实的基础。希望这篇文章能够帮助到你我们下期再见~#助睿平台 #商业数据分析 #教育数据 #用户画像 #ETL平台