1 实验目的

本实验基于全班同学在多平台发布的作品互动数据,使用助睿ETL完成数据清洗与预处理,输出两张核心数据表,为后续特征工程与可视化分析奠定基础。

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

理解数据清洗在数据分析流程中的基础性与必要性

使用助睿ETL完成多源数据的过滤、填充、聚合等预处理操作

掌握“分支处理”的设计思路:全平台概况统计与重点平台深度分析分流

输出两张规范数据表,支撑仪表盘不同模块的数据需求

2 实验环境

实验平台:助睿在线实验平台 https://lab.guilian.cn/

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

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

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

助睿ETL核心优势:

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

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

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

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

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

3 核心设计思路

3.1 为什么需要数据清洗?

采集到的原始数据往往不能直接用于分析,需要先做清洗。

观察 自媒体作品数据明细.csv 这份数据,可以发现几个问题:

平台冗余:数据包含了B站、CSDN、微信、知乎、小红书等多个平台,但微信、知乎等平台的浏览数量几乎全是0。这些平台虽然有作品记录,但缺乏核心的浏览数据,无法支撑有意义的分析。

无效记录:部分作品的浏览数量、点赞数量、收藏数量全部为0。这些记录可能是采集失败,也可能是作品确实无人问津,但无论如何,它们对分析没有贡献。

字段缺失:点赞、收藏、分享等字段中存在空值,如果不处理,后续计算会报错。

数据清洗要做的,就是把这些问题逐一解决。

3.2 数据处理流程

本次实验有一个特殊之处:后续可视化仪表盘需要同时展示两类信息。

第一类是“全平台概况”——全班总共发了多少内容?覆盖了几个平台?总浏览和总互动是多少?这些数字需要基于所有平台的原始数据来统计,哪怕浏览数为0也要计入作品数。

第二类是“重点平台深度分析”——B站和CSDN的具体表现如何?播放量、阅读量、互动率是多少?这些分析只需要B站和CSDN的有效数据(浏览数大于0的记录)。

两类信息对数据的要求不同,所以在ETL中需要做分支处理:

IMG_256两张表各司其职:summary_all_platforms 只用于仪表盘顶部的全平台概况指标卡;cleaned_details 作为中间结果,交给下一实验继续加工。

4 实验步骤

步骤1:创建目标表

在助睿ETL中创建两张目标表。

第一张是全平台概况表(summary_all_platforms),用于存放所有平台的汇总数据。字段设计如下:

字段 类型 说明

crawl_date DATE 采集日期

platform VARCHAR(20) 平台名称

content_count INT 作品数量

total_views INT 总浏览数

total_likes INT 总点赞数

total_favorites INT 总收藏数

total_shares INT 总分享数

total_coins INT 总投币数(仅B站)

total_recommend INT 总推荐数(仅微信)

total_likes_zhihu INT 总喜欢数(仅知乎)

total_approvals INT 总赞同数(仅知乎)

这张表不做任何过滤,保留所有平台的原始数据。各平台特色指标(B站的投币、微信的推荐、知乎的喜欢/赞同)单独保留列,不合并到通用指标中。因为B站的投币和知乎的赞同含义不同,加在一起反而说不清楚,让它们各自独立,读者能清晰地看到每个平台有哪些互动行为。SQL语句如下:

DROP TABLE IF EXISTS `summary_all_platforms`;

CREATE TABLE summary_all_platforms (

`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键ID',

crawl_date DATE COMMENT '采集日期',

platform VARCHAR(20) COMMENT '平台名称',

content_count INT COMMENT '作品数量',

total_views INT COMMENT '总浏览数',

total_likes INT COMMENT '总点赞数',

total_favorites INT COMMENT '总收藏数',

total_shares INT COMMENT '总分享数',

total_coins INT COMMENT '总投币数(仅B站)',

total_recommend INT COMMENT '总推荐数(仅微信)',

total_likes_zhihu INT COMMENT '总喜欢数(仅知乎)',

total_approvals INT COMMENT '总赞同数(仅知乎)'

) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '全平台概况汇总表,存储各平台原始采集数据';

第二张是内容分析表(content_analysis),作为实验二的输入。字段与原始数据基本一致,但只包含B站和CSDN的有效记录:

字段 类型 说明

date DATE 采集日期

author_name VARCHAR(100) 作者昵称

title VARCHAR(500) 作品标题

platform VARCHAR(20) B站 / CSDN

likes INT 点赞数

favorites INT 收藏数

shares INT 分享数

coins INT 投币数(仅B站)

views INT 播放量/阅读量

url VARCHAR(500) 作品链接

total_interaction INT 互动总数

has_best TINYINT(1) 是否含“保姆级”

has_lowcode TINYINT(1) 是否含“零代码”

has_practice TINYINT(1) 是否含“实战”

has_tutorial TINYINT(1) 是否含“教程/指南”

has_pit TINYINT(1) 是否含“踩坑”

其中 interaction_rate, has_best, has_lowcode, has_practice, has_tutorial, has_pit 字段的数据加工将在下一个实验中完成。SQL语句如下:

DROP TABLE IF EXISTS `content_analysis`;

CREATE TABLE content_analysis (

`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键ID',

`date` DATE COMMENT '采集日期',

author_name VARCHAR(100) COMMENT '作者昵称',

title VARCHAR(500) COMMENT '作品标题',

platform VARCHAR(20) COMMENT '平台:B站 / CSDN',

likes INT COMMENT '点赞数',

favorites INT COMMENT '收藏数',

shares INT COMMENT '分享数',

coins INT COMMENT '投币数(仅B站)',

views INT COMMENT '播放量/阅读量',

url VARCHAR(500) COMMENT '作品链接',

total_interaction INT COMMENT '互动总数',

has_best TINYINT(1) COMMENT '是否含“保姆级”:1是,0否',

has_lowcode TINYINT(1) COMMENT '是否含“零代码”:1是,0否',

has_practice TINYINT(1) COMMENT '是否含“实战”:1是,0否',

has_tutorial TINYINT(1) COMMENT '是否含“教程/指南”:1是,0否',

has_pit TINYINT(1) COMMENT '是否含“踩坑”:1是,0否'

) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '内容分析表(实验二输入表,仅保留B站、CSDN有效数据)';

步骤2:导入原始数据

将已提供在助睿ETL公共空间的 自媒体作品数据明细.csv 导入到自己的文件库中,作为数据源输入。助睿ETL支持多种数据源接入,CSV文件可直接导入。

本次分析使用的数据来源于助睿ETL公共空间的 自媒体作品数据明细.csv,已采集了同学们在6月8日-6月15日前提交的作品互动数据。需要说明的是,该数据集仅覆盖采集时间节点前已发布且未被删除的作品,之后新提交或已删除的作品不在此次分析范围内。导入前请先将该文件从公共空间复制到自己的文件库中。

步骤3:全平台聚合统计

首先创建“数据清洗与预处理”转化流,将“CSV文件输入”组件拖入画布

在数据清洗之前,先做一个分支。拖入“排序记录”、“分组”组件,按 日期 和 平台 排序、分组,其余数值字段全部取求和,这里需要加一个对url进行个数统计的字段,聚合为content_count字段。输出 summary_all_platforms

步骤4:过滤记录

在另一个分支中,使用“过滤记录”组件筛选B站和CSDN的有效记录:

只保留 B站 和 CSDN 两个平台,原始数据包含B站、CSDN、微信、知乎、小红书等多个平台。由于微信、知乎等平台的浏览数量大量缺失(值为0),无法支撑有意义的分析,因此只保留 B站 和 CSDN 的记录。

(2)删除两个平台中浏览量为0的记录,聚焦于真正产生用户互动的作品。

使用助睿ETL的“过滤记录”组件,通过 AND 与 OR 组合条件:

(平台 = 'B站' AND 浏览数量 > 0 )

OR

(平台 = 'CSDN' AND 浏览数量 > 0)

在“过滤记录”组件中对应的配置如图:

逻辑说明:括号内的条件组合确保“平台”与“有效记录判定”同时满足,一个组件完成双重过滤。助睿ETL的过滤记录组件支持编写复杂条件表达式,可通过 AND、OR 灵活组合多条件,一步到位完成精细化数据筛选。

步骤5:填充缺失值

由于数值字段没有空值,但作者名称和作品标题可能存在空值,我们统一填充为位置,避免后续使用时出现异常。

步骤6:字段选择

原始数据中的 source_file是采集批次标记,分析阶段用不到,剔除掉。投币数量(coins)保留,作为B站特有的互动指标。用“字段选择”组件,只保留以下字段,其他字段全部剔除:

date, author_name, title, platform, likes, favorites, shares, coins, views, url

步骤7:输出目标表

将处理后的数据输出为 content_analysis,这张表是实验7-2的输入。

步骤8:执行转换流

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

数据探查结果:

5 核心知识点总结

多条件过滤:使用 AND/OR 组合平台过滤与有效记录判定,一个组件完成双重过滤

缺失值处理:统一填充默认值,避免计算异常

多日期保留:保留时间维度用于趋势分析,暂不做去重

助睿ETL Pipeline:通过多个Transform步骤组合完成完整的数据加工流程

宽表设计:一次清洗、多次使用,一张表支撑全部后续分析

6 实验总结

本次实验依托助睿数智 Uniplore 平台与助睿 ETL 工具,以全班自媒体作品多平台原始互动数据为处理对象,围绕数据清洗与多分支预处理完成完整零代码数据加工流程,首先明确原始数据集存在平台数据冗余、无效零互动记录、字段空值缺失等问题,由此设计双分支分流处理的核心思路,分别适配全平台概况统计与重点平台深度分析两类可视化需求;实验先通过执行 SQL 脚本创建 summary_all_platforms 全平台概况汇总表与 content_analysis 内容分析表两张规范数据表,再导入 CSV 原始数据搭建转换流,一条分支对全部原始数据按采集日期、平台分组聚合,统计作品总量、各维度互动总量及各平台专属特色指标,完整保留所有平台原始数据用于仪表盘整体指标展示,另一条分支通过多条件过滤组件筛选出 B 站、CSDN 浏览量大于 0 的有效分析数据,再对文本空值统一填充 “未知”、剔除无关冗余字段,完成数据标准化清洗后输出内容分析表作为后续实验的数据源;整个流程完整实践了 ETL 抽取、转换、加载全链路操作,掌握了分支处理、多条件复合过滤、缺失值填充、分组聚合等常用数据预处理手段,同时理解了数据清洗在数据分析前置环节的基础价值,也体会到分表宽表设计思路能够实现一次数据加工、多场景复用,为后续特征提取、数据可视化与深度内容分析搭建了干净规范的数据底层支撑,清晰认识到零代码拖拽式 ETL 工具依托元数据驱动架构,可灵活高效解决多源杂乱原始数据的标准化处理需求。

Logo

一站式 AI 云服务平台

更多推荐