1 实验目的
本实验基于实验7-1输出的清洗后自媒体作品明细数据,依托助睿ETL工具完成特征工程加工与结果落库,核心实现两类数据处理目标:
(1)明细数据表的特征字段扩充
- 计算单篇作品总互动量:通过点赞、收藏、分享、投币四类互动指标求和,生成total_interaction衍生字段
- 提取标题文本特征:对作品标题进行关键词识别,生成5个0-1型标识字段(has_best、has_lowcode、has_practice、has_tutorial、has_pit)
- 以增量更新的方式将计算结果回填至content_analysis表,不覆盖原有基础数据
(2)标题关键词维度的效果统计
- 分别计算包含每个关键词的作品的平均总互动量,量化不同标题话术的传播效果
- 将聚合统计结果输出至title_feature_analysis汇总表,支撑后续标题效果分析
通过本实验,学生应达成以下能力目标:
- 理解特征工程对数据价值的提升作用,掌握从原始字段衍生业务分析指标的思路
- 熟练使用助睿ETL计算器组件,完成多字段组合的数值型衍生指标计算
- 掌握脚本组件的应用方法,通过JavaScript代码实现非结构化文本的关键词自动打标
- 掌握插入/更新组件的配置逻辑,实现基于主键的数据增量回填,保障原有数据完整性
- 掌握“过滤拆分+分组聚合+结果合并”的多维度统计方法,完成分场景的指标汇总计算
2 实验环境
- 实训平台:贵兰×助睿实践教学平台 https://lab.guilan.cn/ 平台版本为Uniplore v6.6.5,是面向高校数据相关专业的在线实训环境,提供数据科学全流程实操能力。
本次实验基于助睿数智(Uniplore)iDIS大数据智能服务平台开展。该平台是AI驱动的一站式零代码大数据基础软件,融合DataOps数据运营理念,覆盖数据接入集成、治理管控、AI建模到可视化展示的全链路能力,既适用于高校数据分析实践教学,也可支撑企业级数据加工业务场景。 助睿数智官方网站:https://www.uniplore.com/
- 核心工具:助睿ETL数据集成模块
助睿ETL是平台内置的流批一体数据处理工具,核心特性如下:
- 全元数据驱动架构:数据读取、转换、加载全环节均通过元数据标准化定义,保障处理流程可追溯、可管控
- 零代码可视化操作:通过拖拽组件的方式完成数据抽取、转换、加载全流程,无需编写代码即可实现复杂加工逻辑
- 丰富的预置组件:内置200余种ETL处理组件,覆盖筛选、填充、聚合、连接、字段处理等各类转换场景,可灵活适配不同数据处理需求
- Pipeline流水线机制:以转换流水线作为核心处理单元,通过多个功能组件串联编排,完成面向业务的完整数据加工
- 高可用扩展引擎:基于开源内核构建高可用引擎架构,支持通过标准化插件扩展处理能力,适配各类数据源与业务场景
本次实验用到的核心组件如下:
| 表输入 | 读取content_analysis表中的基础明细数据,作为本次加工的数据源 |
| 计算器 | 执行多字段求和运算,计算单篇作品的总互动量 |
| JavaScript代码 | 编写文本匹配逻辑,识别标题关键词并生成5个特征标识字段 |
| 插入/更新 | 以主键id为匹配依据,回填更新content_analysis表中的特征字段 |
| 过滤记录+分组聚合 | 组合实现分维度统计,分别计算每个关键词对应的平均互动量 |
| 增加常量 | 为各关键词统计分支补充关键词名称的维度标识字段 |
| 合并记录 | 将5个关键词分支的统计结果整合为统一数据集 |
| 表输出 | 将整合后的关键词统计结果写入title_feature_analysis汇总表 |
3 核心设计思路
本次实验围绕明细层、汇总层两个数据层级开展特征加工,所有结果均基于实验7-1生成的content_analysis表落地,保障数据口径一致性:
- 总互动量指标:整合点赞、收藏、分享、投币四类用户互动行为,通过求和得到总互动量,从绝对值维度反映作品的用户参与度
- 标题特征标签:将非结构化的标题文本转化为可量化的二值特征字段,把“是否包含关键词”转化为可统计、可对比的分析维度,为后续标题效果分析提供数据支撑
整体数据处理流程:

4 实验步骤
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_interaction,COUNT(id) 得到 sample_count。
聚合完成后,接入“增加常量”组件,新增字段 feature_name = '保姆级',为这一行数据贴上名称标签。
为什么要加这个常量?因为聚合后的数据只有数值,没有关键词名称。如果不加,5个分支的数据合并后无法区分谁是谁。常量就是给每一行贴上一个“标签”,告诉下游“这一行是保姆级的数据”。
步骤4:合并整体平均值和关键词平均值
接下来将整体平均值和关键词平均值进行合并,使用“记录集连接”组件,匹配字段为feature_name,由于2个分支都只有1行数据,所以无需排序。
步骤5:数据入库
用”表输出”组件将合并后的数据入库,这里需要注意:不勾选“裁剪表”,因为还有其他关键词数据也要入库,不用删除已有数据。
步骤6:执行转换流
一个关键词的互动汇总数据加工转换流如下,点击运行:

查看数据:

接下来加工其他关键词的数据:
复制粘贴整个分支,然后只修改两处:过滤条件(如 has_lowcode = 1)和常量值(如 零代码)。其他组件配置完全相同。
最后的完整数据情况如下:

5 实验输出
| content_analysis(更新) | 作品级 | 排名、趋势、概况等明细分析 |
| title_feature_analysis(新建) | 关键词级 | 标题特征互动分析 |
6 实验总结
6.1 实验收获
(1)衍生指标计算与特征工程的实操能力 本次实验系统掌握了助睿ETL中特征工程的落地方法,理解了从原始基础字段衍生业务分析指标的核心逻辑。通过计算器组件完成了点赞、收藏、分享、投币多字段求和运算,生成总互动量指标,能够独立完成数值型衍生字段的配置计算,明确了特征加工对提升数据价值、支撑深度分析的作用。
(2)非结构化文本的特征提取能力 熟练掌握了JavaScript代码组件的配置与使用方法,能够通过脚本语言实现文本关键词匹配,将非结构化的标题文本转化为可量化的二值特征字段。理解了文本打标的核心逻辑,能够根据业务分析需求自定义关键词规则,完成多维度的文本特征提取,打通了非结构化数据到结构化分析的加工链路。
(3)增量式数据更新的落地能力 深入理解了“插入/更新”组件与“表输出”组件的核心差异,掌握了基于主键匹配的数据增量更新方法。能够以id字段为查询关键字,精准回填更新指定字段,在不覆盖原有基础数据、不产生重复记录的前提下完成表字段扩充,实现了ETL流水线的可重复运行,建立了数据更新的完整性与一致性意识。
(4)多分支分维度聚合统计的设计能力 熟练运用“过滤拆分+分组聚合+增加常量+合并记录”的组合方案,实现了分关键词维度的互动效果统计。掌握了通过过滤组件拆分数据子集、通过常量字段补充维度标签、通过合并组件统一结果集的完整流程,能够独立设计多维度并行统计的ETL流水线,满足不同维度的汇总分析需求。
(5)分层数据加工的架构设计思维 理解了明细层与汇总层分层加工的设计思路,基于同一份明细数据源同步完成字段扩充与维度汇总,保障了数据口径的一致性。掌握了“一源多用”的ETL架构设计方法,能够兼顾明细分析与汇总统计两类业务需求,提升数据加工的整体效率。
6.2 实验故障与解决方案
故障1:JavaScript代码组件执行报错,提示字段未定义 故障现象:运行转换流时JavaScript脚本步骤报错,日志提示变量不存在,无法正常生成标题特征字段。 故障原因:一是脚本中使用的变量名与输入流的字段名称不一致,无法读取对应字段内容;二是新增的输出字段未在组件的字段定义中提前声明,脚本赋值结果无法传递到下游节点。 处理方案:核对脚本内的字段变量名与输入流的字段名称,确保二者完全匹配;在JavaScript组件的输出字段配置中,提前添加5个特征字段并指定对应数据类型,保存配置后重新运行即可正常生成特征标签。

