从原始脏数据到可视化仪表盘:少量 SQL + 零代码 ETL,自媒体运营分析一步到位
一、实验目标
在实验7-1完成数据清洗的基础上,继续利用助睿ETL平台实施两类关键特征的提取计算与持久化存储:
(一)标题文本特征与互动总量(回填明细表)
- 计算每篇作品的互动总数(total_interaction),公式为:likes + favorites + shares + coins
- 从标题文本中提取五个关键词特征标识字段:has_best(保姆级)、has_lowcode(零代码)、has_practice(实战)、has_tutorial(教程/指南)、has_pit(踩坑)
- 将上述计算结果更新回content_analysis明细表中
(二)关键词粒度的汇总统计(新建汇总表)
- 分别统计包含各关键词的作品的平均互动总量
- 将汇总计算结果输出至title_feature_analysis表中
完成本实验后,学生应具备以下能力:
- 深入理解特征工程在数据分析全流程中的核心价值与作用机理
- 熟练使用助睿ETL"计算器"组件完成衍生指标的公式计算
- 掌握借助"JavaScript代码"组件实现对文本字段中关键词的自动化识别与标注
- 理解"插入/更新"组件的数据回填机制:在不创建新表、不覆盖已有基础数据的前提下更新指定字段
- 灵活运用"过滤记录 + 分组聚合"组件组合完成分组条件下的统计指标计算
二、实验环境
实验平台:助睿在线实验平台(https://lab.guilan.cn)
本实验继续基于助睿数智(Uniplore)一站式数据科学平台开展。该平台提供从数据接入、ETL加工处理、机器学习建模到可视化展示的完整工具链,以零代码操作模式降低了数据分析的技术门槛,广泛适用于高校数据分析教学与企业数据加工场景。
数据处理工具:助睿ETL
本实验涉及的核心功能组件及其用途如下表所示:
|
组件名称 |
功能用途说明 |
|
表输入 |
读取content_analysis表中待处理的源数据 |
|
计算器 |
计算互动总量(likes + favorites + shares + coins) |
|
JavaScript代码 |
对标题字段执行关键词匹配,生成5个0/1特征标记 |
|
插入/更新 |
依据id字段进行匹配,将特征计算结果回写至content_analysis表 |
|
过滤记录 + 分组聚合 |
分别统计整体均值以及各关键词对应的平均互动量 |
|
增加常量 |
为各个关键词分支附加名称标签字段 |
|
合并记录 |
把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代码"组件中,通过编写JavaScript脚本对title字段执行关键词匹配检测,生成五个标题特征标志字段。
核心JavaScript代码如下:
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 |
标题文本中含"保姆级"关键词时为1,否则为0 |
|
has_lowcode |
1或0 |
标题文本中含"零代码"关键词时为1,否则为0 |
|
has_practice |
1或0 |
标题文本中含"实战"关键词时为1,否则为0 |
|
has_tutorial |
1或0 |
标题文本中含"教程"或"指南"任一关键词时为1,否则为0 |
|
has_pit |
1或0 |
标题文本中含"踩坑"关键词时为1,否则为0 |
设计考量:上述五个关键词在本次数据集中出现频率较高,且均与内容的"教学指导价值"和"实操属性"存在强关联,因此成为探究标题文本对互动数据影响力大小的理想分析切入点。每个特征独立提取,便于在后续BI可视化环节中按关键词分组进行横向对比分析。
步骤3:计算互动总量
接入"计算器"组件,新建interactions字段,计算公式设置为:interactions = likes + favorites + shares + coins

步骤4:数据更新回填
使用"插入/更新"组件,将上一步计算得到的特征数据按记录ID进行匹配,回填至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 |
补充说明:"插入/更新"组件与"表输出"组件存在本质区别。若采用"表输出"方式,每次运行都会在目标表中追加新的数据行,容易造成数据重复冗余。"插入/更新"组件则按照id字段进行智能匹配——若id已存在则仅更新指定的字段值,若id不存在才执行新增操作。由于本实验中所有id均已存在于content_analysis表中,因此实际效果为纯更新操作,不会产生重复行。这一机制确保了本实验流程具备可重复执行性,多次运行也不会引入数据重复问题。
步骤5:运行转换流
完整转换流配置如下图所示,确认无误后点击运行按钮执行。数据处理结果展示:

4.2 构建关键词粒度汇总数据表
步骤1:创建目标数据表
在助睿ETL中按以下结构创建title_feature_analysis目标表,用于存储关键词粒度的汇总统计结果:
|
字段名称 |
数据类型 |
字段含义说明 |
|
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字段并赋值为"保姆级",为这一行数据打上名称标签。
为何需要设置常量字段?原因在于:聚合运算得到的数据仅包含数值,缺少关键词名称这一关键信息维度。若不加常量标识,五个关键词分支的数据合并后将无法区分各自对应的关键词归属。常量字段的作用就是为每行统计结果附加一个"身份标签",向数据下游明确标识"这一行是保姆级关键词的统计结果"。







下面的分支:





步骤4:合并整体均值与关键词均值
采用"记录集连接"组件将上述两个分支的结果进行合并,以feature_name字段作为连接匹配键。由于两个分支各自仅输出一条记录,因此无需预先进行排序操作。

步骤5:数据写入目标表
通过"表输出"组件将合并后的数据写入title_feature_analysis表。此处需要特别注意:务必取消勾选"裁剪表"选项,因为后续还有其他关键词的统计数据需要追加写入,不能删除表中已有的数据。


步骤6:运行当前分支转换流
一个关键词("保姆级")完整的互动汇总数据加工转换流如下。

后续关键词数据处理方法:
将上述构建好的完整分支进行复制粘贴,然后仅需修改两处配置:一是过滤条件(例如改为has_lowcode = 1),二是常量字段的值(例如改为"零代码")。其余组件的配置参数保持不变。
全部关键词数据处理完毕后的最终数据视图如下:




五、实验产出成果

|
输出表名 |
数据粒度 |
应用场景 |
|
content_analysis(更新后) |
单篇作品级别 |
用于排名分析、趋势变化、概况统计等明细层面的分析 |
|
title_feature_analysis(新建) |
关键词级别 |
用于标题特征与互动表现之间的关联关系分析 |
六、核心知识点归纳
- 衍生特征构建方法:借助"计算器"组件完成多字段之间的数学运算,生成新的分析维度指标(如互动总量)
- 文本特征自动化标注:利用JavaScript脚本的字符串匹配能力,实现对标题文本字段中特定关键词的批量自动识别与0/1标志化编码
- 数据更新策略:采用"插入/更新"组件依据主键字段进行增量更新,避免"表输出"方式可能造成的数据重复问题,确保实验流程的可重复执行性
- 分支并行处理模式:通过复制现有分支模板并仅修改过滤条件和常量值两处参数,即可高效完成多个相似维度统计任务,大幅提升数据处理效率
- 常量标签字段的应用价值:在聚合统计的分支合并场景中,常量字段承担着数据"身份标识"的关键角色,是确保下游数据处理环节能够正确区分各分支来源的基础保障
七、实验总结
本实验在数据清洗成果的基础上,进一步完成了作品特征维度的系统性构建。一方面,通过计算互动总量指标,将原本分散的点赞、收藏、分享、投币等单项互动数据整合为一个综合性的作品受欢迎程度度量标准。另一方面,通过JavaScript脚本对标题文本进行自动化解析,将五个高频关键词的存在性编码为结构化的0/1特征向量,使得后续的量化分析成为可能。此外,本实验所采用的数据更新策略(插入/更新)与分支模板复用方法,体现了高效、规范的数据加工实践理念。最终产出的两张数据表——content_analysis(更新版)与title_feature_analysis——为下一阶段的BI可视化探索与运营洞察提炼做好了充分的数据准备。
更多推荐




所有评论(0)