自媒体运营分析:用助睿ETL完成数据清洗与预处理

发布时间:2026/6/29 23:25:57

自媒体运营分析:用助睿ETL完成数据清洗与预处理 #自媒体运营 #数据分析 #数据可视化 #数据清洗 #自媒体 #ETL操作从原始作品数据到可分析数据表本实验完成自媒体运营分析的第一步数据清洗、平台筛选、缺失值处理与目标表输出。一、实验背景在自媒体运营分析中我们采集到的原始数据往往不能直接用于后续分析。例如本次实验使用的“自媒体作品数据明细.csv”中包含了 B站、CSDN、微信、知乎、小红书等多个平台的数据但不同平台的数据完整程度并不一致。有些平台虽然存在作品记录但浏览量大量为 0有些作品点赞、收藏、分享等互动字段可能为空还有一些采集辅助字段只用于记录来源并不适合放入后续分析表中。因此在正式进行作品特征构建和可视化探索之前需要先通过ETL完成数据清洗与预处理。本次实验的核心目标是将一份原始 CSV 数据通过 ETL 转换流程加工成两张规范数据表为实验7-2和实验7-3继续使用。二、实验目标本实验完成后需要输出两张目标表目标表作用summary_all_platforms保存所有平台的每日汇总数据用于后续仪表盘顶部概况指标展示content_analysis保存 B站 和 CSDN 的有效作品明细作为实验7-2作品特征构建的输入表这两张表的设计思路并不一样。summary_all_platforms面向的是全平台概况统计所以它不做平台过滤要保留所有平台的数据用来统计全班总共发布了多少作品、覆盖了多少平台、产生了多少浏览和互动。content_analysis面向的是重点平台深度分析所以它只保留 B站 和 CSDN 中浏览量大于 0 的有效记录方便后续计算互动率、标题关键词特征等内容。一份CSV原始数据分成“全平台汇总”和“重点平台明细清洗”两条处理分支三、实验环境本实验使用在线实验平台完成。数据源文件自媒体作品数据明细.csv输出数据库表summary_all_platformscontent_analysisETL采用可视化拖拽式操作方式不需要编写复杂程序只需要通过组件拖拽、连线和参数配置就可以完成数据读取、清洗、转换和写入。四、核心设计思路4.1 为什么要进行数据清洗原始数据中主要存在以下几个问题。第一平台数据质量不一致。原始数据包含 B站、CSDN、微信、知乎、小红书等平台但部分平台浏览量字段大量为 0无法支撑有效的互动分析。第二存在无效作品记录。有些作品的浏览量、点赞数、收藏数、分享数全部为 0这类数据对后续运营分析帮助不大。第三存在字段缺失。作者名称、作品标题等字段可能为空。如果不处理后续可视化展示时容易出现空白甚至影响计算逻辑。第四存在分析阶段不需要的字段。例如source_file这类字段主要用于记录采集批次对后续分析没有直接价值可以在清洗阶段删除。因此本实验通过 ETL 对原始数据进行过滤、填充、分组聚合和字段选择使数据变成后续分析可以直接使用的规范结构。4.2 为什么要分成两条处理分支本实验不是简单地把 CSV 导入数据库而是要同时满足两类分析需求。第一类需求是全平台概况展示。比如后续仪表盘顶部需要展示“总作品数”“覆盖平台数”“总浏览量”“总互动量”等指标。这类指标需要从所有平台数据中统计不能只看 B站 和 CSDN。第二类需求是重点平台深度分析。比如后续要分析 B站 和 CSDN 的作品表现、标题特征、互动表现等这类分析需要依赖浏览量有效的数据。如果保留大量浏览量为 0 的平台数据会干扰分析结果。所以本实验采用“一份输入两条分支”的处理方式自媒体作品数据明细.csv │ ├── 分支一全平台聚合统计 │ └── 输出 summary_all_platforms │ └── 分支二重点平台明细清洗 └── 输出 content_analysis图2 实验7-1最终ETL转换流上方为全平台汇总分支下方为重点平台清洗分支五、实验准备5.1 进入助睿ETL项目空间首先登录在线实验平台进入“数据集成”或“ETL”模块。进入后可以新建一个实验项目也可以继续使用前面实验已经创建好的项目。为了方便管理建议项目名称设置为实验7_自媒体运营分析或者自媒体运营分析_姓名图3 进入ETL项目空间准备创建实验7-1转换流5.2 复制实验数据文件本实验使用的数据文件是自媒体作品数据明细.csv该文件一般位于助睿ETL公共空间中。正式操作时需要先把它复制到自己的项目文件库中。操作步骤如下在项目资源区找到“公共空间”或“公共资源”。找到自媒体作品数据明细.csv。点击文件右侧的更多操作按钮。选择“复制到项目空间”或“导出到项目空间”。返回自己的项目文件库确认该 CSV 文件已经存在。这里建议不要直接使用公共空间中的文件路径。 把文件复制到自己的项目空间后后续 CSV 输入组件读取文件会更加稳定也方便实验提交和检查。图4 将公共空间中的“自媒体作品数据明细.csv”复制到自己的项目文件库5.3 检查数据库连接本实验需要将清洗结果写入数据库表因此需要提前确认项目中已经配置好数据库连接。如果前面实验已经配置过团体私有数据库可以直接使用原有连接。 如果没有需要新建数据库连接并填写主机、端口、数据库名、用户名和密码。配置完成后一定要点击“测试连接”。只有测试连接成功后续 SQL 建表和表输出组件才能正常运行。图5 检查或新建团体私有数据库连接并测试连接是否成功六、步骤一创建目标表在正式清洗数据之前需要先创建两张目标表。 原因很简单后续“表输出”组件需要把数据写入数据库如果数据库中还没有对应表运行时就会报错。本实验需要创建summary_all_platforms content_analysis可以通过“执行一个SQL脚本”组件来完成建表操作。6.1 创建全平台概况表 summary_all_platformssummary_all_platforms用于保存所有平台的每日汇总结果。建表 SQL 如下DROP TABLE IF EXISTS summary_all_platforms; CREATE TABLE summary_all_platforms ( 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 总赞同数仅知乎 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT全平台每日作品汇总表;这张表的特点是 它保留所有平台不做过滤。B站的投币数、微信的推荐数、知乎的喜欢数和赞同数分别单独保留字段不强行合并成一个指标。这样可以避免不同平台互动含义混淆。图6 使用“执行一个SQL脚本”组件创建summary_all_platforms目标表6.2 创建内容分析表 content_analysiscontent_analysis用于保存清洗后的 B站 和 CSDN 有效作品明细。 这张表是实验7-2的输入表所以除了基础字段外还提前预留了互动总数和标题关键词特征字段。建表 SQL 如下DROP TABLE IF EXISTS content_analysis; CREATE TABLE content_analysis ( date DATE COMMENT 采集日期, author_name VARCHAR(100) COMMENT 作者昵称, title VARCHAR(500) COMMENT 作品标题, platform VARCHAR(20) COMMENT 平台名称, likes INT DEFAULT 0 COMMENT 点赞数, favorites INT DEFAULT 0 COMMENT 收藏数, shares INT DEFAULT 0 COMMENT 分享数, coins INT DEFAULT 0 COMMENT 投币数仅B站, views INT DEFAULT 0 COMMENT 播放量/阅读量, url VARCHAR(500) COMMENT 作品链接, total_interaction INT DEFAULT NULL COMMENT 互动总数实验7-2计算, has_best TINYINT(1) DEFAULT NULL COMMENT 是否含“保姆级”实验7-2计算, has_lowcode TINYINT(1) DEFAULT NULL COMMENT 是否含“零代码”实验7-2计算, has_practice TINYINT(1) DEFAULT NULL COMMENT 是否含“实战”实验7-2计算, has_tutorial TINYINT(1) DEFAULT NULL COMMENT 是否含“教程/指南”实验7-2计算, has_pit TINYINT(1) DEFAULT NULL COMMENT 是否含“踩坑”实验7-2计算 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT清洗后作品明细表;这里需要注意date是数据库中的常见关键字因此建表时建议使用反引号date这样可以避免字段名和数据库关键字冲突。图7 使用“执行一个SQL脚本”组件创建content_analysis目标表6.3 运行SQL脚本SQL 粘贴完成后点击运行按钮执行转换流。如果运行成功组件上会出现绿色对勾日志中不会出现ERROR。 如果出现报错优先检查数据库连接是否选择正确以及 SQL 中字段名、英文逗号、括号是否完整。七、步骤二配置CSV文件输入目标表创建完成后开始搭建正式的数据清洗转换流。在左侧组件栏中找到“CSV文件输入”组件将其拖入画布。双击组件配置 CSV 文件路径。选择刚刚复制到自己项目空间中的自媒体作品数据明细.csv常用配置如下配置项设置内容文件路径选择项目文件库中的自媒体作品数据明细.csv分隔符英文逗号,是否包含列头是文本限定符双引号编码优先选择 UTF-8预览点击预览确认字段正常显示如果预览时中文出现乱码可以尝试将编码改为 GBK。 如果字段名没有正常识别要检查是否勾选了“包含列头行”。图9 配置CSV文件输入组件选择“自媒体作品数据明细.csv”图10 预览CSV数据确认字段名、中文内容和数值字段显示正常八、步骤三搭建全平台聚合统计分支第一条分支用于生成summary_all_platforms表。这一分支的处理流程是CSV文件输入 → 排序记录 → 分组 → 表输出这条分支不进行平台过滤因为它的目标是统计所有平台的整体概况。8.1 配置排序记录组件从左侧组件栏拖入“排序记录”组件并将“CSV文件输入”连接到“排序记录”。双击“排序记录”添加排序字段排序字段排序方式crawl_date升序platform升序之所以先排序是因为后面的分组组件通常需要输入数据按照分组字段排序这样才能稳定完成聚合统计。图11 配置排序记录组件按照采集日期和平台进行升序排序8.2 配置分组组件拖入“分组”组件将“排序记录”连接到“分组”。双击“分组”组件先设置分组字段分组字段crawl_dateplatform然后设置聚合字段。输出字段名源字段聚合方式含义content_counttitle或crawl_date计数统计作品数量total_viewsview_count求和总浏览数total_likeslike_count求和总点赞数total_favoritesfavorite_count求和总收藏数total_sharesshare_count求和总分享数total_coinscoin_count求和总投币数total_recommendrecommend_count求和总推荐数total_likes_zhihulove_count求和知乎喜欢数total_approvalsagree_count求和知乎赞同数这里最重要的是输出字段名必须和summary_all_platforms表中的字段名一致。如果分组组件输出字段叫sum_view_count但目标表字段叫total_views后面表输出时就可能映射失败。因此建议直接在分组组件中把输出字段名写成目标表字段名。图12 在分组组件中选择crawl_date和platform作为分组字段图13 配置作品数量、浏览量、点赞数、收藏数等字段的计数与求和8.3 输出到 summary_all_platforms拖入“表输出”组件将“分组”连接到“表输出”。双击“表输出”配置如下配置项内容数据库连接选择前面测试成功的连接目标表summary_all_platforms是否清空表建议调试时勾选字段映射确认分组输出字段与目标表字段一一对应如果多次运行实验建议勾选清空目标表避免重复插入相同数据。图14 配置表输出组件将全平台汇总结果写入summary_all_platforms九、步骤四搭建重点平台明细清洗分支第二条分支用于生成content_analysis表。这一分支的处理流程是CSV文件输入 → 过滤记录 → 替换NULL值 → 字段选择 → 表输出1同时过滤失败的数据连接到“空操作”表示直接丢弃。过滤记录 ├── 匹配成功 → 替换NULL值 └── 匹配失败 → 空操作图15 从CSV输入拉出第二条分支搭建重点平台明细清洗流程9.1 配置过滤记录组件拖入“过滤记录”组件并从“CSV文件输入”连接到“过滤记录”。本步骤的目标是只保留B站 且 浏览量 0 或者 CSDN 且 浏览量 0逻辑表达式如下(platform B站 AND view_count 0) OR (platform CSDN AND view_count 0)在助睿ETL中过滤条件可以按照下面的方式配置逻辑关系字段判断符值第一组platformB站ANDview_count0OR 第二组platformCSDNANDview_count0配置完成后需要设置两个输出方向输出方向连接组件含义匹配成功替换NULL值保留符合条件的数据匹配失败空操作丢弃不符合条件的数据这里要特别注意括号逻辑。 正确逻辑是(B站 且 浏览量大于0) 或者 (CSDN 且 浏览量大于0)不能写成平台 B站 或者 平台 CSDN 且 浏览量大于0否则可能导致部分浏览量为 0 的数据被错误保留。图16 配置过滤记录组件只保留 B站 和 CSDN 中浏览量大于0的有效作品图17 匹配成功的数据进入替换NULL值匹配失败的数据进入空操作丢弃9.2 配置替换NULL值组件过滤后的数据进入“替换NULL值”组件。根据实验指导书数值字段基本没有空值但作者名称和作品标题可能存在空值。因此这里主要填充文本字段。建议配置如下字段替换值author_name未知作者title未知标题如果老师要求和实验指导书保持完全一致也可以统一填成未知如果后续检查发现数值字段也有 NULL可以额外把这些字段填充为 0like_count favorite_count share_count coin_count view_count图18 配置替换NULL值组件将作者名称和作品标题中的空值填充为默认文本9.3 配置字段选择组件字段选择组件的作用有两个。第一删除后续分析不需要的字段。 例如source_file是采集批次标记不需要进入分析表。第二把原始CSV字段名整理成目标表字段名。 例如 CSV 中可能叫like_count但目标表中叫likes这里就需要进行重命名。建议字段保留与重命名如下CSV原始字段目标字段处理方式crawl_datedate保留并重命名author_nameauthor_name保留titletitle保留platformplatform保留like_countlikes保留并重命名favorite_countfavorites保留并重命名share_countshares保留并重命名coin_countcoins保留并重命名view_countviews保留并重命名urlurl保留source_file—删除recommend_count—删除love_count—删除agree_count—删除这里一定要保证字段选择后的输出字段能够对应content_analysis表结构。content_analysis中的以下字段本实验暂时不用填total_interaction has_best has_lowcode has_practice has_tutorial has_pit这些字段会在实验7-2中继续加工。图19 配置字段选择组件删除无关字段并统一字段名称9.4 输出到 content_analysis拖入第二个“表输出”组件可以命名为表输出1_content_analysis将“字段选择”连接到这个表输出组件。配置如下配置项内容数据库连接选择同一个数据库连接目标表content_analysis是否清空表调试时建议勾选字段映射确认字段选择后的字段与目标表字段对应需要映射的字段主要包括date author_name title platform likes favorites shares coins views url不需要映射的字段包括total_interaction has_best has_lowcode has_practice has_tutorial has_pit这些字段可以保持默认 NULL等待实验7-2继续计算。图20 配置表输出1将清洗后的重点平台明细数据写入content_analysis十、步骤五运行完整转换流所有组件配置完成后先保存转换流再点击运行。运行时建议选择配置项建议设置运行方式local日志级别基本日志是否清空日志建议勾选点击启动后等待所有组件执行完成。如果执行成功关键组件上会出现绿色对勾日志中不会出现ERROR。图21 运行完整转换流等待所有组件执行完成图22 所有关键节点显示绿色对勾表示转换流运行成功十一、步骤六检查输出结果运行成功后需要分别检查两张表。11.1 检查 summary_all_platformssummary_all_platforms应该满足以下条件包含所有平台按日期和平台汇总有作品数量字段content_count有浏览、点赞、收藏、分享等汇总字段B站、微信、知乎等平台特色指标分别保留可以通过数据探查、表预览或数据库查询进行检查。示例检查 SQLSELECT * FROM summary_all_platforms LIMIT 20;图23 预览summary_all_platforms检查所有平台汇总结果是否正常11.2 检查 content_analysiscontent_analysis应该满足以下条件只包含 B站 和 CSDN浏览量字段views大于 0作者名称和标题没有空值不包含source_file字段名与目标表结构一致示例检查 SQLSELECT platform, COUNT(*) AS content_count FROM content_analysis GROUP BY platform;也可以检查是否还存在浏览量为 0 的数据SELECT * FROM content_analysis WHERE views 0;如果查询结果为空说明过滤条件生效。图24 预览content_analysis检查是否只保留 B站 和 CSDN 的有效作品十二、实验结果说明完成实验7-1后原始自媒体作品数据已经被加工成两类结果。第一类是全平台汇总数据。 它保留所有平台信息适合用于后续仪表盘顶部概览例如总作品数、总浏览量、总互动量、平台覆盖情况等。第二类是重点平台明细数据。 它只保留 B站 和 CSDN 的有效作品记录适合继续做作品互动分析、标题特征分析和内容表现对比。这一步虽然看起来只是清洗数据但它决定了后面所有分析是否可靠。如果数据源没有清理干净后续的图表、指标和结论都会受到影响。十三、常见问题与解决办法13.1 表输出时报错目标表不存在原因通常是还没有执行建表 SQL或者 SQL 脚本使用的数据库连接和表输出组件使用的连接不是同一个。解决办法先运行 SQL 脚本创建目标表。确认 SQL 脚本组件和表输出组件使用同一个数据库连接。重新选择目标表并刷新字段。13.2 字段映射失败原因通常是 ETL 输出字段名和数据库表字段名不一致。例如分组组件输出的是sum_view_count但数据库表字段是total_views这时表输出就无法自动匹配。解决办法是在分组组件或字段选择组件中统一输出字段名使其和目标表字段完全一致。13.3 content_analysis 表没有数据可能原因包括过滤条件写错。平台字段值和CSV实际值不一致。浏览量字段名写错。匹配成功分支没有连接到后续组件。解决办法先在CSV预览中确认平台字段是否确实是B站 CSDN再确认浏览量字段到底叫view_count还是views最后检查过滤成功的数据是否连接到了“替换NULL值”组件。13.4 数据重复如果多次运行转换流但没有清空目标表就可能出现重复数据。解决办法在表输出组件中勾选“清空目标表”或“截断表”。或者运行前手动执行TRUNCATE TABLE summary_all_platforms; TRUNCATE TABLE content_analysis;13.5 中文乱码如果CSV预览时中文显示乱码通常是编码不匹配。解决办法优先使用 UTF-8。如果仍然乱码尝试 GBK。修改编码后重新预览确认中文正常显示再继续。十四、实验小结本次实验完成了自媒体运营分析的第一步数据清洗与预处理。整个实验的核心不是简单导入数据而是通过 ETL 流程把原始数据拆分成两个不同用途的数据结果summary_all_platforms服务于全平台概况展示 content_analysis服务于重点平台深度分析在操作过程中我们使用了 CSV 文件输入、排序记录、分组、过滤记录、替换NULL值、字段选择、表输出等多个助睿ETL组件完成了从原始文件到数据库目标表的完整数据加工流程。本实验完成后后续实验7-2就可以基于content_analysis继续计算互动总数、互动率和标题关键词特征实验7-3则可以基于清洗后的数据进行可视化探索和仪表盘制作。十五、实验流程回顾最后用一张流程图回顾本实验的完整操作准备阶段 ├── 登录助睿ETL ├── 进入实验项目 ├── 复制自媒体作品数据明细.csv └── 检查数据库连接 建表阶段 ├── 创建 summary_all_platforms └── 创建 content_analysis 数据处理阶段 ├── CSV文件输入 │ ├── 分支一全平台聚合统计 │ ├── 排序记录 │ ├── 分组 │ └── 表输出 summary_all_platforms │ └── 分支二重点平台明细清洗 ├── 过滤记录 ├── 替换NULL值 ├── 字段选择 └── 表输出 content_analysis 检查阶段 ├── 检查 summary_all_platforms ├── 检查 content_analysis └── 查看运行日志是否无ERROR图25 实验7-1最终成果两张目标表成功生成转换流运行完成数据分析的第一步往往不是画图也不是直接计算指标而是把原始数据整理成“可信、干净、可复用”的分析数据。实验7-1正是这个过程 先保留全平台概况再筛选重点平台有效数据既不丢失整体统计视角也为后续深度分析准备了高质量明细表。完成这一步后整个自媒体运营分析项目就有了稳定的数据基础

相关新闻