大家好,本篇分享 Uniplore 助睿零代码平台下学生考勤主题标签构建完整实验过程,涵盖数据入库、多表关联、标签衍生、分组聚合、结果落地全链路。全程零代码操作,适合数据分析入门、ETL 学习、教育大数据实战参考,附详细步骤、SQL 脚本、组件配置及避坑经验,直接上手就能做。

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

一、实验目的

借助零代码数据分析平台,导入学生考勤、考勤类型、学生基础信息三类原始数据集,完成数据入库、多表关联、字段加工、分组统计等操作,搭建学生考勤主题标签体系,统计每位学生迟到、早退、请假、校服违规等行为次数,形成标准化学生考勤标签统计表,掌握零代码数据处理、多表关联分析与用户行为标签构建的完整流程。

二、实验环境

  1. 浏览器端访问 Uniplore 助睿零代码数据分析平台,登录个人实验账号;
  2. 实验数据集:学生考勤主表、考勤类型码表、学生信息基础表;
  3. 数据库:MySQL 关系型数据库,用于存储原始数据与最终标签统计结果。

三、实验步骤

步骤一:平台登录与实验准备

打开浏览器进入助睿零代码平台官网,输入个人账号密码完成登录。进入数智教育大赛专属数据集页面,提前确认并备好三张核心原始数据表,分别为考勤主表、考勤类型码表、学生信息表,为后续数据导入做好准备。

步骤二:新建专属实验项目

  1. 平台首页找到新建项目入口,点击创建新项目;
  2. 项目名称命名为学生用户画像标签构建,确认创建进入项目详情界面。

步骤三:文件库创建与数据集导出

  1. 进入项目左侧文件库板块,在根目录下右键新建文件夹,命名为数智教育数据集;

  1. 跳转至公共空间数据资源专区,依次选中三张实验所需 CSV 数据表;

  1. 将每张数据表通过导出功能,保存至刚创建的数智教育数据集文件夹中,返回文件库核对文件是否完整。

步骤四:配置 MySQL 数据库数据源

  1. 点击左侧元数据板块,选择关系数据库,右键新建数据源;

  1. 数据源类型选择 MySQL,依次填写主机地址、端口、数据库名称、账号密码等连接信息,驱动选择 MySQL8 及以上版本,自定义连接名称;

  1. 点击测试连接,提示连接成功后,完成数据源添加配置。

步骤五:原始数据表结构创建与数据入库

1. 考勤主表创建与数据导入

  1. 新建转换流,命名为创建原始学生考勤表,添加执行 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='原始_学生考勤表';

  1. 再新建转换流用于导入考勤数据,添加 CSV 文件输入组件,选中已保存的考勤主表文件,设置编码格式与分隔符,自动获取匹配字段;

  1. 新增表输出组件,关联 CSV 输入组件,绑定至已创建的考勤数据表,完成字段映射后运行转换流,实现数据入库。

2. 考勤类型表创建与数据导入

  1. 新建转换流,执行考勤类型表建表 SQL 语句,运行生成数据表结构;

其中的建表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='原始_考勤类型表';

  1. 配置 CSV 文件输入,选择考勤类型码表,设置对应编码与制表符分隔格式,确认字段无误后;

  1. 通过表输出组件将数据写入考勤类型原始表,运行流程完成数据导入。

3. 学生信息表创建与数据导入

  1. 新建转换流执行学生信息表建表语句,生成数据表结构;

其中的建表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='原始_学生信息表';

  1. 导入学生信息 CSV 文件,配置编码格式,添加字段选择组件,对特殊数值字段进行类型校准,规避小数格式异常问题;

  1. 配置表输出组件,映射字段后运行转换流,完成学生基础信息数据入库。

步骤六:创建考勤主题标签结果表

新建转换流,添加执行 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)

)  ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生考勤主题标签表';

步骤七:构建考勤标签数据处理主流程

  1. 新建主转换流并命名为学生考勤主题标签,进入流程编辑界面。

2.添加三个表输入组件,分别读取已入库的考勤记录表、考勤类型表、学生信息表,自动获取全表业务字段。

三个“表输入组件分别读取raw_attendence,raw_attendence_type,raw_student_info表的内容

  1. 多表关联配置:在考勤记录表后添加排序记录组件,按关联字段完成排序;再添加记录集连接组件,将考勤记录表与考勤类型表通过关联字段进行左外连接,匹配考勤类型与考勤事件信息。

考勤记录表和考勤类型表连接:

连接参数设置:

  1. 异常考勤标签生成:添加 JavaScript 代码组件,编写脚本逻辑,自动识别并标记迟到、早退、请假、未按要求穿戴校服等异常考勤行为,生成 0-1 标识变量,测试脚本确保标识逻辑正常生效。

Java Scripts组件设置:

Java脚本内容:

// 初始化变量

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;

    }

}

  1. 分组聚合统计:添加分组组件,以学生 ID、姓名、班级、住校情况等维度进行分组,对各类异常考勤标识进行求和聚合,统计出每位学生各类考勤行为总次数。

分组组件设置:

  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

添加“替换NULL”组件:

设置NULL组件:插入live_on_campus,policy两个字段

添加“值映射组件:

设置值映射组件内容,并添加两个字段,在源值中输入“0”,目标值输入,代表将原数据中的“0”统一映射为

因为原始数据无独立年级字段,无法按年级做考勤统计与画像分群,通过从班级名称中提取年级信息,补齐年级维度,支撑年级层面的考勤分析。

同样的,原始数据无校区类型字段,不同校区管理口径与考勤规则存在差异,通过班级名称规则判定老校区/新校区,增加校区分析维度,使考勤标签更贴合校园实际管理场景。

添加两个”javaScript”组件,分别命名为从班级获取年级校区类型判断

“从班级获取年级”组件的js脚本:

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='未知'

}

“从班级获取年级”组件设置:

“校区类型判断”脚本:

      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='未知'

}

“校区类型判断”插入“class_campus_type”字段

  1. 结果数据输出:添加表输出组件,将处理完成的标签数据与最终统计表进行字段一一映射,运行整条转换流,将统计结果写入目标数据表。

“表输出组件“设置

数据库字段设置:双击表字段中的字段名称,在下拉框中选择正确的对应字段

运行整条转换流,查看是否正确执行:

步骤八:实验结果核查验证

进入数据库查看学生考勤主题标签统计表,核对表内学生基础信息、迟到次数、早退次数、请假次数、校服违规次数等字段完整性。随机抽取多名学生数据,与原始考勤记录逐一比对,验证统计数据准确无误,标签构建流程完成。

四、问题与解决

问题一

问题现象:导入考勤类型表(4_kaoqintype.csv)时,CSV文件输入组件获取字段失败,提示编码错误,无法读取文件内容。

问题原因:CSV文件的编码格式为GB2312,而组件默认编码为UTF-8,编码不匹配导致文件解析失败,无法识别字段内容。

解决方法:双击CSV文件输入组件,在编码选项中选择“GB2312”,同时确认列分隔符为插入制表符(TAB,重新点击获取字段,成功读取文件字段,顺利完成数据导入配置。

问题二

问题现象:记录集连接组件关联考勤记录表与考勤类型表后,出现部分考勤记录匹配失败、字段为空的情况。

问题原因:考勤记录表未进行排序,记录集连接组件是按接收数据的顺序进行关联,无序数据会导致关联匹配错乱,出现字段空值。

解决方法:在考勤记录表与记录集连接组件之间添加“排序记录”组件,选择attendance_type_idattendance_task_order_id两个关联字段进行升序排序,排序完成后再进行多表连接,匹配失败、字段为空的问题得到解决。

五、实验总结

本次实验依托零代码数据分析平台,完成了从数据集准备、数据库配置、原始数据入库,到多表关联、逻辑标签生成、分组聚合统计、数据清洗落地的全流程操作。成功构建了学生考勤主题标签体系,实现了对学生各类考勤行为的量化统计,熟练掌握了零代码平台组件使用、多表关联分析、行为标签建模的方法,也加深了对教育类用户画像数据处理逻辑的理解。

Logo

一站式 AI 云服务平台

更多推荐