实验目的

在实验7-1 清洗后的数据的基础上,使用助睿ETL完成以下两类特征的计算与存储:

(1)标题特征与互动总数(更新明细表)

  • 计算互动总数(total_interaction = likes + favorites + shares + coins

  • 提取5个标题特征标志字段(has_besthas_lowcodehas_practicehas_tutorialhas_pit

  • 将计算结果更新到 content_analysis 表

(2)关键词级别的汇总数据

  • 分别计算含每个关键词的作品的平均互动总数

  • 将互动汇总结果输出到 title_feature_analysis 表

通过本实验,学生应掌握:

  • 理解特征工程在数据分析中的核心作用

  • 使用助睿ETL的“计算器”组件计算衍生指标

  • 使用“JavaScript代码”组件完成文本关键词的自动标注

  • 使用“插入/更新”组件回填数据,不新建表、不覆盖已有基础数据

  • 使用“过滤+聚合”组件组合完成分组统计计算

实验环境

本次实验使用助睿数智(Uniplore) 作为一站式数据科学平台。该平台覆盖从数据接入、ETL处理、机器学习建模到可视化展示的全链路零代码功能,适用于数据分析教学与企业数据加工场景。

助睿数智官网为 https://www.uniplore.com//

  • 数据处理工具:助睿ETL(数据集成平台)

助睿ETL核心优势:

  • 全元数据驱动架构:平台内所有对象类型均通过元数据标准化定义,覆盖数据读取、处理、写入的全流程

  • 零代码拖拽式操作:通过可视化方式完成数据的抽取(Extract)、转换(Transform)、加载(Load),无需编写复杂代码

  • 丰富的预处理组件:内置筛选、填充、聚合、连接、字段选择等多种转换节点,灵活应对各类数据清洗场景

  • Pipeline(转换)机制:面向数据流通处理的核心功能单元,由多个不同功能的Transform步骤组合构成,聚焦数据本身的加工转换操作

  • 开源内核高可用引擎:基于开源内核的高可用引擎架构,通过标准化插件体系可灵活扩展引擎能力

本次实验使用的核心组件:

组件 用途
表输入 读取 content_analysis 表中待处理的数据
计算器 计算互动总数(likes + favorites + shares + coins
JavaScript代码 提取标题中的5个关键词特征标志
插入/更新 按 id 匹配,更新 content_analysis 表中的特征字段
过滤记录 + 聚合 分别统计整体平均值和每个关键词的平均值
增加常量 为每个关键词分支添加名称标识
合并记录 将5个关键词的统计结果合并为5行
表输出 将互动数据汇总写入 title_feature_analysis 表

核心设计思路

本次实验构建两类特征,并将数据更新到实验7-1 的content_analysis 表中:

  • 互动总数:likes + favorites + shares + coins,反映作品的用户互动规模(绝对值)

  • 标题特征:把标题中是否包含特定关键词提取为0/1标志字段,后续量化对比这些词的实际效果

数据处理流程:

实验步骤

4.1 更新 content_analysis 表(标题特征+互动总数)

步骤1:导入数据

将实验7-1输出的 content_analysis表作为输入,拖入助睿ETL工作区。助睿ETL支持跨项目引用数据集,可直接选择实验一输出的结果表。

步骤2:提取标题特征(核心分析维度)

在"JavaScript代码"组件中,可以直接使用JJavaScript代码对 title 字段进行关键词匹配,生成5个标题特征标志字段。

var title = title;  // 字段名直接作为变量使用

// 判断关键词
var has_best = title.indexOf("保姆级") !== -1 ? 1 : 0;
var has_lowcode = title.indexOf("零代码") !== -1 ? 1 : 0;
var has_practice = title.indexOf("实战") !== -1 ? 1 : 0;
var has_tutorial = (title.indexOf("教程") !== -1 || title.indexOf("指南") !== -1) ? 1 : 0;
var has_pit = title.indexOf("踩坑") !== -1 ? 1 : 0;

// 将结果赋值给新字段(输出字段需在字段表中提前定义)
has_best = has_best;
has_lowcode = has_lowcode;
has_practice = has_practice;
has_tutorial = has_tutorial;
has_pit = has_pit;

返回值说明:

字段 返回值 条件
has_best 1 / 0 title中含"保姆级"为1,否则为0
has_lowcode 1 / 0 title中含"零代码"为1,否则为0
has_practice 1 / 0 title中含"实战"为1,否则为0
has_tutorial 1 / 0 title中含"教程"或"指南"为1,否则为0
has_pit 1 / 0 title中含"踩坑"为1,否则为0

设计思路:这五个关键词在数据中高频出现,且与“教学价值”“实操性”强相关,是分析标题影响力的理想切入点。每个特征独立提取,便于在BI中做分组对比。

步骤3:计算互动总数

接入“计算器”组件,新增 interactions 字段:interactions = likes + favorites + shares + coins

步骤4:数据更新

使用“插入/更新”组件,将计算好的特征数据回填到 content_analysis 表

关键配置:

配置项 设置
目标表 content_analysis
查询关键字 id(匹配依据)
更新字段 total_interaction, has_best, has_lowcode, has_practice, has_tutorial, has_pit

字段映射::

流字段 表字段
id id
interactions total_interaction
has_best has_best
has_lowcode has_lowcode
has_practice has_practice
has_tutorial has_tutorial
has_pit has_pit

“插入/更新” vs “表输出”的区别:如果使用“表输出”,每次运行都会新增行,导致数据重复。“插入/更新”按 id 匹配,如果 id 已存在则更新指定字段,如果不存在才插入新行(本例中 id 一定存在,所以只做更新,不新增行)。这样本实验可以反复运行,不会产生重复数据。

步骤5:执行转换流

完整转换流如下,点击运行

数据结果:

4.2 输出关键词级别的汇总

步骤1:创建目标表

在助睿ETL中创建以下目标表用来存储本节最后输出的数据:

字段 类型 说明
id INT 自增主键
platform VARCHAR(20) 平台(B站/CSDN)
feature_name VARCHAR(50) 关键词名称
avg_interaction DECIMAL(10,2) 含该关键词的平均互动总数
overall_avg DECIMAL(10,2) 该平台整体平均互动总数
sample_count INT 含该关键词的作品数
步骤2:计算整体平均互动数

接入“排序记录”、“分组”组件,按id升序排序,不设分组条件,直接计算 AVG(total_interaction),得到 overall_avg

聚合完成后,接入“增加常量”组件,新增字段 feature_name = '保姆级',为这一行数据贴上名称标签,以便用于后续与关键词数据连接。

步骤3:计算关键词的平均互动数

以“保姆级”为例,表输入组件复制分发另一条分支,先接“过滤记录”组件,设置 has_best = 1,只保留含“保姆级”的作品。

然后接入“排序记录”、“分组”组件,按id升序排序,计算 AVG(total_interaction) 得到 avg_interactionCOUNT(id) 得到 sample_count

聚合完成后,接入“增加常量”组件,新增字段 feature_name = '保姆级',为这一行数据贴上名称标签。

为什么要加这个常量?因为聚合后的数据只有数值,没有关键词名称。如果不加,5个分支的数据合并后无法区分谁是谁。常量就是给每一行贴上一个“标签”,告诉下游“这一行是保姆级的数据”。

步骤4:合并整体平均值和关键词平均值

接下来将整体平均值和关键词平均值进行合并,使用“记录集连接”组件,匹配字段为feature_name,由于2个分支都只有1行数据,所以无需排序。

步骤5:数据入库

用”表输出”组件将合并后的数据入库,这里需要注意:不勾选“裁剪表”,因为还有其他关键词数据也要入库,不用删除已有数据。

步骤6:执行转换流

一个关键词的互动汇总数据加工转换流如下,点击运行:

查看数据:

接下来加工其他关键词的数据:

复制粘贴整个分支,然后只修改两处:过滤条件(如 has_lowcode = 1)和常量值(如 零代码)。其他组件配置完全相同。

最后的完整数据情况如下:

实验输出

输出表 数据粒度 用途
content_analysis(更新) 作品级 排名、趋势、概况等明细分析
title_feature_analysis(新建) 关键词级 标题特征互动分析

遇到的问题与解决方案

在实验过程中,我遇到的主要问题是理解并正确使用“插入/更新”组件来更新已有数据表,以及如何高效地复用计算逻辑来生成多个关键词的汇总数据。最初,我习惯性地使用了“表输出”组件,这会导致数据重复插入。通过仔细阅读指导书,我理解了“插入/更新”组件按 `id` 匹配的特性,它能在不新增重复行的情况下精确更新 `content_analysis` 表中新增的六个字段,从而保证了实验的可重复运行。在计算关键词级别汇总数据时,面对五个相似的关键词分支,我采纳了指导书“复制粘贴整个分支,然后只修改两处”的策略,通过复制已配置好的“保姆级”分支,仅调整每个分支内的“过滤记录”条件(如 `has_lowcode = 1`)和“增加常量”中的 `feature_name` 值,高效且准确地完成了所有关键词的独立统计,避免了重复搭建流程的繁琐和可能引入的错误。

实验总结

本实验在实验7-1清洗数据的基础上,成功完成了从“明细数据”到“分析就绪特征”的转换,核心任务是构建作品级和关键词级两类特征。我熟练运用“计算器”组件计算了互动总数,并首次使用“JavaScript代码”组件,通过编写简单的 `indexOf` 逻辑,自动从标题中提取了五个关键词标志字段,深刻体会到零代码平台中嵌入代码片段带来的灵活性。随后,我使用“插入/更新”组件将计算结果安全地回填至原表,并通过“过滤记录”、“分组”和“增加常量”组件的组合,分别为每个关键词计算了其平均互动数与整体平均值,最终通过“记录集连接”合并输出到新的汇总表。整个流程强化了我对特征工程在连接数据清洗与可视化分析中桥梁作用的认识,并掌握了助睿ETL中更新数据与构建统计汇总的标准范式。

主要收获

通过本次实验,我最大的收获是建立了特征工程的核心思维,即如何从原始数据中提取有预测能力和业务含义的新变量。我掌握了使用“计算器”进行字段间算术运算,以及通过“JavaScript代码”组件执行条件判断来自动化标注文本特征的具体方法,这为我处理非结构化数据提供了有力工具。同时,我也深入理解了“插入/更新”组件在维护数据一致性中的关键作用,以及“增加常量”组件在区分多路并行计算结果时的实用价值。更重要的是,我学会了如何通过复制和微调子流程的方式,高效、规范地处理多个相似的分析任务,这种“一次配置,多次复用”的模式极大地提升了我的数据处理效率,为后续在BI工具中进行深度的分组对比与效果分析奠定了坚实基础。

Logo

一站式 AI 云服务平台

更多推荐