当前位置: 首页 > news >正文

ETL 实验复盘:从 CSV 到学生画像标签表的完整转换流

  1. 项目创建与数据准备

    • 新建项目“学生用户画像标签构建”。

    • 文件库中新建目录“数智教育数据集”,将公共空间中的3_kaoqin.csv4_kaoqintype.csv2_student_info.csv导出至该目录。

    • 元数据中新建 MySQL 数据源,连接名“团队私有数据库”,填写助教提供的主机地址、端口、数据库名、用户名密码,驱动选MySQL 8+,测试通过后添加。

  2. 原始数据表创建与导入

    • 分别执行以下建表 SQL(通过“执行一个SQL脚本”组件,选择“团队私有数据库”):

      • raw_attendance(原始考勤记录表)

      • raw_attendance_type(原始考勤类型表)

      • raw_student_info(原始学生信息表)

    • 导入数据:

      • 考勤记录CSV文件输入表输出。文件选3_kaoqin.csv,UTF-8,逗号分隔,输出至raw_attendance

      • 考勤类型CSV文件输入表输出。文件选4_kaoqintype.csv列分隔符为制表符(TAB),编码 GB2312,输出至raw_attendance_type

      • 学生信息CSV文件输入字段选择表输出。CSV 文件选2_student_info.csv,获取字段后将bf_leaveSchool类型改为String;在字段选择组件中将bf_zhusubf_qinshihao的元数据类型设置为Integer,输出至raw_student_info

  3. 目标标签表创建

    • 新建转换流,执行 SQL 创建student_attendance_stats表(包含学生基本信息、迟到/早退/请假/未穿校服次数等字段)。

  4. 核心标签计算转换流(新建转换流“学生考勤主题标签”)

    • 数据接入:三个表输入组件,分别读取raw_attendanceraw_attendance_typeraw_student_info全部字段。

    • 考勤记录与类型关联

      1. 考勤记录后接“排序记录”,按attendance_type_idattendance_task_order_id排序。

      2. 排序结果与“考勤类型”表输入通过“记录集连接”(LEFT OUTER)关联,连接字段同为上述两个字段。

    • 异常行为标记:添加 JavaScript 组件,编写脚本判断迟到、早退、请假、未穿校服,输出isLateisEarlyisLeaveisNoUniform(0/1)。

    • 按学生聚合:添加“分组”组件,分组字段stu_id, stu_name, cla_id, cla_name;聚合函数 SUM 分别计算迟到次数、早退次数、请假次数、未穿校服次数。

    • 关联学生信息

      1. 学生信息表输入后接“排序记录”(按stu_id)。

      2. 上一步聚合结果后接“排序记录”(按stu_id)。

      3. 二者通过“记录集连接”(LEFT OUTER)关联,连接字段stu_id

    • 字段筛选:用“字段选择”组件移除冗余字段,保留:stu_id, stu_name, cla_id, cla_name, late_count, early_count, leave_count, no_uniform_count, stu_sex, born_date, policy, live_on_campus

    • 空值处理:用“替换NULL值”组件将stu_sex, born_date, policy, live_on_campus的空值替换为“未知”。

    • 属性标准化

      • 值映射组件:将live_on_campus0映射为“否”,1映射为“是”,默认值“否”。

      • JavaScript 组件“从班级提取年级”:根据cla_name判断高一/高二/高三,输出字段gra_name

      • JavaScript 组件“校区类型判定”:班级名以“白-”或“东-”开头则为“新校区”,其他非空为“老校区”,输出字段class_campus_type

    • 结果入库:连接“表输出”组件,选择“团队私有数据库”,目标表student_attendance_stats,勾选“裁剪表”和“指定数据库字段”,建立字段映射。

  5. 执行与验证

    • 运行主转换流,观察日志直至成功。

    • 在元数据中刷新“团队私有数据库”,查询student_attendance_stats表,确认数据符合预期。

http://www.jsqmd.com/news/818819/

相关文章:

  • Sumibi:开源文档AI处理工具,高效解析多语言PDF与复杂表格
  • Topit:终极macOS窗口置顶工具,三步解决多窗口遮挡难题
  • STM32智能门禁系统进阶:RC522读卡距离优化与低功耗设计实战
  • 保姆级教程:从显微镜下的芯片照片到完整版图,手把手教你图像拼接与对准
  • 【AAAI2026】GuideGen:用文本引导生成全躯干 CT 图像与解剖掩码的前沿方法解析
  • 仅剩47份|Midjourney Soot印相私藏工作流(含自研NoiseMap注入器+硫化钡色偏补偿LUT),内附Adobe暗房对照校验协议
  • 使用Taotoken多模型能力为智能客服场景提供稳定后端支持
  • CircuitPython库管理与REPL调试:嵌入式开发的核心技能
  • 云架构师成长指南:从核心概念到实战项目全解析
  • AUTOSAR模型驱动开发与IBM Rational工具链实战
  • 短剧还能做吗?海外和国内差别真的很大吗?
  • 如何配置浏览器PT插件实现高效种子下载:从入门到精通
  • GBase 8a之替换字符串中中文的方法
  • Adafruit IO与WipperSnapper:无代码物联网开发实战指南
  • 量子纠错码中的串扰噪声分析与抗干扰方案
  • 如何完整破解Cursor Pro限制:5步快速激活的终极指南
  • PyTorch 广播机制详解:从原理到实践
  • 串口数据监控软件开发总结
  • Verilog时序逻辑设计实战:从状态机到I2C总线控制器
  • CLI集成axe-core:自动化网页无障碍测试与DevOps实践
  • GBase 8s 之 dbschema 导出数据库对象定义介绍
  • 标注数据集保姆级教程:从入门到排名第一,看这一篇就够了
  • 基于DNS的TEE认证革新:原理、实现与性能优化
  • 开源无人机远程识别技术突破:ArduRemoteID如何重塑行业合规格局
  • 告别环境配置噩梦:手把手教你用Conda搞定AutoDock-Vina全家桶(含ADFR/Meeko)
  • 高性能鼠标跟随动画实现:从基础原理到mouse-follower库实战
  • 对比直接使用原厂API体验Taotoken在批量任务中的稳定性与成本优势
  • CodeUpdaterBot/ClickUi:多语言依赖自动化更新与可视化管理的工程实践
  • DeepSeek LeetCode 2376.统计特殊整数 C实现
  • LinkSwift:高效解锁八大网盘直链下载的完整实用指南