很多小伙伴觉得数据大屏特别炫酷各种图表联动、数据实时跳动、高颜值页面拿来就能做成果展示但90%的人都不知道大屏光鲜亮丽的背后全是枯燥又关键的ETL数据加工工作。直接用800万条原始日志跑大屏卡死、报错、加载超时、数据混乱全套BUG直接奉上好看的大屏一定是干净、聚合、规整的数据撑起来的今天这篇超有趣保姆级实战带你从零通关助睿Uniplore ETL大数据加工我们手握1000名真实用户、800万条浏览器行为数据从杂乱原始日志一步步清洗、转换、聚合产出8张标准大屏专用数据表。全程零代码拖拽、少代码脚本新手也能无脑复刻这也是后续大屏布局、数据联动、页面发布的地基核心实验学完直接打通可视化全流程一、实验到底在干嘛1.1 实验背景把“乱数据”变成“能用的好数据”我们手上的原始数据是海量用户浏览器行为日志粒度细到用户日期浏览器小时足足800万条记录、800多MB。这种原始数据特点就是又杂又乱、体量巨大、毫无章法。里面全是机器进程名、秒级时间、零散行为记录普通人完全看不懂更不能直接用来做图表、做分析、做大屏。所以本次实验的核心任务超级简单好理解把海量脏数据加工成干净、规整、可直接可视化、可商业分析的指标表最终我们要搞定两大核心分析场景浏览器市场格局分析谁是浏览器顶流用户爱用哪个工作日周末使用差别大吗用户是专一党还是多浏览器混用党用户画像深度分析什么样的人爱用Chrome什么样的用户偏爱360、QQ浏览器年龄、性别、地域、收入有什么特征1.2 实验学习收获学完直接拿捏大数据基础不再是空洞的理论本次实操学完你直接掌握大学生必备大数据技能✅ 搞懂ETL完整逻辑数据抽取、清洗、转换、加载全流程✅ 熟练玩转助睿平台几十种核心数据组件告别看不懂、不会拖✅ 学会大数据分层思想原始数据→明细数据→聚合指标数据✅ 掌握用户分层、标签化、多表关联、维度聚合的实战技巧✅ 为后续高颜值数据大屏制作、数据联动、发布分享打下地基1.3 实验环境数据介绍实操工具助睿数智 Uniplore 一站式大数据平台操作模块ETL数据集成零代码拖拽开发️存储环境团队私有MySQL数据库数据体量1000名真实用户800万条行为日志核心数据源行为明细表记录用户每小时浏览器使用行为、时长、次数用户属性表demographic.csv记录用户性别、年龄、学历、收入、地域等画像信息1.4 整体数据加工逻辑通俗架构整个流程超级好理解原始杂乱日志 → 清洗结构化 → 标准明细表 → 多维度聚合统计 → 8张大屏专用指标表最终产出所有大屏需要的数据活跃度趋势、使用时长、用户分层、时段差异、人群画像、使用偏好全覆盖二、前置核心知识点新手必看少踩90%坑2.1 高频组件通俗讲解不用死记硬背一句话看懂每个组件是干嘛的执行SQL脚本建表、改表、批量执行SQL给数据安个“家”表输入/输出数据的“搬运工”读数据、存数据全靠它排序记录给数据排队分组、关联之前必须排序否则数据乱套分组聚合数据的“统计员”计数、求和、求平均一键搞定值映射翻译机器把看不懂的进程名翻译成中文浏览器名称JS脚本自定义规则实现用户分层、日期判断、标签分类记录集连接数据“联姻”实现行为数据用户属性数据合并字段选择数据“清洁工”删掉冗余无用字段2.2 新手四大禁忌避坑天花板很多人实验报错、数据错乱全是踩了这4个坑❌ 排序和分组字段不一致 → 数据疯狂重复、统计炸裂❌ 两表关联不排序 → 关联结果为空白做半天❌ 不做幂等建表 → 重复运行直接报错❌ 不做空值判断 → 脚本运行失败、流程中断三、超有趣分步实操全程手把手小白无脑跟3.1 清洗规整生成标准行为明细表原始日志全是乱的、机器化的字符串第一步我们先给数据“整容”核心目标产出干净标准表daily_browser_detail实操流程复制前置日志清洗转换流重命名为「输出用户日浏览器小时明细表」重点修复BUG原排序只排进程名改成四字段排序用户ID、日期、进程名、小时开启值映射翻译把机器代码换成正常人能看懂的浏览器名称原始机器进程名翻译后浏览器名称iexplore.exeIE浏览器360chrome.exe360极速chrome.exeGoogleQQBrowser.exeQQ浏览器sogouexplorer.exe搜狗新建SQL脚本组件创建标准化明细表配置表输出组件勾选裁剪表清空旧数据、写入新数据运行流程800万条杂乱数据成功变身规整明细表3.2 一键建表批量生成8张大屏核心表我们后续所有图表、指标、分析全部依托这8张表不用手动一张张建一条脚本批量搞定支持重复运行不报错。-- 1. 核心指标概览表 DROP TABLE IF EXISTS browser_overview; CREATE TABLE browser_overview ( metric_name VARCHAR(50) NOT NULL COMMENT 指标名称, metric_value DECIMAL(12,2) NOT NULL COMMENT 指标值 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT核心指标概览表; -- 2. 各浏览器周活跃趋势表 DROP TABLE IF EXISTS browser_weekly_active; CREATE TABLE browser_weekly_active ( browser_name VARCHAR(50) NOT NULL COMMENT 浏览器名称, week_range VARCHAR(20) NOT NULL COMMENT 周日期范围, active_user_count INT NOT NULL COMMENT 活跃用户数 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT各浏览器周活跃趋势表; -- 3. 浏览器使用频率分布表 DROP TABLE IF EXISTS browser_frequency_stats; CREATE TABLE browser_frequency_stats ( browser_name VARCHAR(50) NOT NULL COMMENT 浏览器名称, usage_level VARCHAR(10) NOT NULL COMMENT 使用等级, user_count INT NOT NULL COMMENT 用户数 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT浏览器使用频率分布表; -- 4. 用户使用浏览器数量分布表 DROP TABLE IF EXISTS browser_multi_usage; CREATE TABLE browser_multi_usage ( browser_count VARCHAR(10) NOT NULL COMMENT 使用浏览器数量, user_count DECIMAL(5,2) NOT NULL COMMENT 用户数量 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用户使用浏览器数量分布表; -- 5. 浏览器工作日周末对比表 DROP TABLE IF EXISTS browser_weekday_weekend; CREATE TABLE browser_weekday_weekend ( browser_name VARCHAR(50) NOT NULL COMMENT 浏览器名称, day_type VARCHAR(10) NOT NULL COMMENT 工作日/周末, avg_duration_sec INT NOT NULL COMMENT 人均使用时长(秒), total_duration_hour BIGINT NOT NULL COMMENT 总使用时长(小时), user_count INT NOT NULL COMMENT 用户数 ) COMMENT 浏览器工作日周末对比表; -- 6. 用户画像统计表 DROP TABLE IF EXISTS user_profile_stats; CREATE TABLE user_profile_stats ( browser_name VARCHAR(50) NOT NULL COMMENT 浏览器名称, gender VARCHAR(10) COMMENT 性别, age_group VARCHAR(10) COMMENT 年龄段, edu VARCHAR(50) COMMENT 学历, job VARCHAR(50) COMMENT 职业, income VARCHAR(50) COMMENT 收入, city_type VARCHAR(10) COMMENT 居住地类型, province VARCHAR(50) COMMENT 省份, user_count INT NOT NULL COMMENT 用户数 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用户画像统计表;涵盖趋势表、用户分层表、时段对比表、核心指标表、用户画像表全覆盖。3.3 周活跃趋势统计看看浏览器谁在涨、谁在跌业务场景超实用分析各浏览器每周活跃用户变化判断产品热度、用户留存情况实操逻辑读取明细→日期转周区间→排序分组→去重统计活跃用户→写入趋势表。1.读取明细2.日期转周区间3.排序分组并去重统计活跃用户4.输出最终产出browser_weekly_active周活跃趋势表完美适配大屏折线图。3.4 用户使用频率分层区分轻度摸鱼重度依赖用户超级有趣的用户分层环节我们把用户分为三类轻度用户周使用时长3小时中度用户周使用时长3-10小时重度用户周使用时长10小时计算总秒数【表输入】后按用户和浏览器【排序】再【分组】求和得到每个人用各个浏览器的总秒数。2. 秒转小时单位是秒太难看了我们要转小时。接【增加常量】组件增加一个值为 3600 的字段再接【计算器】组件用总秒数除以3600保留2位小数。3.打标签拖入【JavaScript代码】组件写一段简单的逻辑给用户打标签var total_hours total_hours; var usage_level ; if (total_hours 3) { usage_level 轻度; } else if (total_hours 3 total_hours 10) { usage_level 中度; } else { usage_level 重度; }4. 最终聚合按 usage_level 再次【排序】和【分组】统计人数输出到 browser_frequency_stats。通过JS脚本自动分层统计每款浏览器的轻中重度用户数量清晰看出哪款浏览器更让用户“上瘾”产出browser_frequency_stats使用频率表适配大屏堆叠柱状图。3.5 第五步浏览器使用数量统计用户是专一还是“花心”非常有意思的分析维度统计用户是只用一款浏览器还是多款混用我们将用户划分为单浏览器忠实用户、双浏览器用户、多浏览器混用用户。新建转换流与读取数据新建转换流“浏览器使用数量分布数据抽取”拖拽【表输入】组件数据库连接选择“团队私有数据库”读取 daily_browser_detail 表的所有数据。2. 按用户统计浏览器种类数先拖拽【排序记录】组件按 user_id 升序排序接着用【分组】组件对每个 user_id 使用的浏览器名称进行“去重计数”。3. JS打标签分类拖入【JavaScript代码】组件利用以下代码将使用的种类数量分为“1种”、“2种”、“3种及以上”var browser_cnt browser_cnt; var browser_count ; if (browser_cnt 1) { browser_count 1种; } else if (browser_cnt 2) { browser_count 2种; } else { browser_count 3种及以上; }4. 最终聚合输出拖入【排序记录】组件将数据按照 browser_count 升序排序再接【分组】组件统计各分类人数最后拖拽【表输出】组件写入 browser_multi_usage。通过分组统计用户使用浏览器种类数量再标签归类最终产出browser_multi_usage数据表适配大屏占比饼图直观展示用户使用习惯3.6 第六步工作日VS周末揭秘用户使用反差行为大家工作日和周末用浏览器的习惯一样吗是工作日摸鱼多还是周末冲浪多我们通过JS脚本自动判断日期类型区分工作日、周末分别统计各浏览器的使用时长、用户规模、平均使用时长。新建转换流与读取数据新建转换流“浏览器工作日周末对比数据抽取”拖拽【表输入】组件读取 daily_browser_detail 表。2. 判断工作日还是周末接入【JavaScript代码】组件利用 getDay() 函数判断日期类型// 获取日期 var date usage_date; // 获取星期几0周日, 1周一, ..., 6周六 var dayOfWeek date.getDay(); // 判断工作日还是周末 var day_type ; if (dayOfWeek 1 dayOfWeek 5) { day_type 工作日; } else { day_type 周末; }3. 排序与分组聚合先拖入【排序记录】组件按浏览器和 day_type 【升序排序】然后接入【分组】组件计算平均时长、总时长和人数。4. 单位转换与输出复用之前学过的技巧通过【增加常量】和【计算器】组件将总时长秒转换为小时最后用【字段选择】删掉多余的中间字段通过【表输出】写入 browser_weekday_weekend。完美挖掘用户场景差异产出browser_weekday_weekend对比表适配大屏分组柱状图对比效果拉满3.7 第七步全局核心指标一键算出大屏TOP核心KPI大屏顶部最亮眼的指标卡数据全部来自这一步我们一次性计算四大黄金指标总使用时长全站累计数据人均使用时长用户平均粘性活跃用户占比平台活跃度重度用户占比核心用户体量新建转换流与执行SQL新建转换流使用【表输入】执行包含聚合子查询的复杂SQL一次性算出所有指标SELECT ROUND(SUM(total_duration_sec) / 3600, 2) AS total_hours, ROUND(SUM(total_duration_sec) / 3600 / COUNT(DISTINCT user_id), 2) AS avg_hours, ROUND( (SELECT COUNT(DISTINCT user_id) FROM daily_browser_detail WHERE usage_date BETWEEN 2012-08-06 AND 2012-08-12 ) * 100.0 / COUNT(DISTINCT user_id), 2 ) AS active_ratio, ROUND( (SELECT COUNT(*) FROM ( SELECT user_id FROM daily_browser_detail WHERE usage_date BETWEEN 2012-05-07 AND 2012-07-08 GROUP BY user_id HAVING SUM(total_duration_sec) / 3600 30 ) t) * 100.0 / COUNT(DISTINCT user_id), 2 ) AS heavy_ratio FROM daily_browser_detail2. 行列转换与映射使用【列转行】组件把1行4列的数据变成4行指标名 - 指标值键值对。然后使用【值映射】将英文字段名转为中文。3. 表输出通过【表输出】组件写入 browser_overview 表。通过SQL聚合行转列把数据改成大屏专属键值对格式产出browser_overview指标总表直接对接大屏数据概览模块。3.8 第八步用户画像分析精准刻画浏览器用户是谁本次实验最硬核、最有趣的环节我们把用户行为数据 用户属性CSV数据进行关联深度刻画用户画像不同浏览器的用户在性别、年龄、学历、职业、收入、地域上有什么差别获取属性表从公共空间数据资源导出 demographic.csv存放到个人文件目录。2. 算年龄 (CSV 流)新建转换流“用户画像表加工”拖拽【CSV文件输入】组件读取数据通过【增加常量】(2012年)和【计算器】算出年龄再用【JS代码】划分年龄段var age_group ; if (age 18) { age_group 18; } else if (age 25) { age_group 18-25; } else if (age 35) { age_group 26-35; } else { age_group 35; }3. 读取明细数据 (SQL流)在同一个画布中拖入【表输入】组件读取用户明细表 daily_browser_detail。4. 双流各自排序连接前必须双双排序 左边的 SQL 流接【排序记录】组件按 user_id 升序排右边的 CSV 属性流接另一个【排序记录】组件按 USERID 升序排。5. 记录集连接拖入【记录集连接】组件将两股排序好的数据流接入连接类型选择 LEFT OUTER左外连接配置好两侧的关联字段。6. 多维分组输出关联完数据后先接一个【排序记录】组件按需要分组的所有维度字段排序再接入【分组】组件按浏览器、性别、学历、职业、收入、城市类型、年龄段进行终极大统计最后【表输出】写入 user_profile_stats。大功告成通过左外连接、多维分组统计最终产出user_profile_stats用户画像表实现精细化人群分析商业分析价值直接拉满四、数据验收如何判断实验做对了全部流程跑完后不要直接交作业简单3步自查杜绝低级错误进入数据探查页面查看8张数据表是否全部生成抽样查看数据确认分层、占比、趋势数据逻辑合理无空数据、无重复数据、无错乱分类即为实验圆满成功五、新手专属踩坑总结过来人血泪经验帮大家避开我实操中遇到的所有BUG数据重复炸裂排序字段和分组字段必须完全一致两表关联为空关联前两条数据流必须先排序重复运行报错建表语句一定要加删除判断保证幂等性脚本运行失败原始数据有空值代码做好容错判断小数数据不精准计算器组件手动设置保留小数位数六、实验趣味总结学习收获本次实验我们完成了从800万条杂乱原始数据 → 8张高质量可视化指标表的华丽蜕变真正体会到了大数据工作的核心逻辑原始数据只是素材加工后的数据才是价值我们不再是单纯点点按钮跑流程而是真正读懂了业务谁是浏览器市场顶流用户是专一还是混用工作日周末习惯有何不同什么样的用户偏爱哪款浏览器所有问题全部靠数据说话同时熟练掌握了零代码ETL开发、数据分层、用户画像、多维聚合等核心技能为后续高颜值大屏静态搭建、动态数据接入、大屏发布打下最核心的数据地基七、趣味拓展思考学有余力的小伙伴可以自主拓展拔高自己的实操能力1. 新增浏览器共存统计表分析两款浏览器的用户重叠度挖掘竞品竞争关系2. 优化筛选逻辑单独统计周末重度用户数据做精细化对比分析3. 给流程配置定时任务实现数据自动更新模拟企业实时数据场景4. 细化用户地域分层区分一线/二线/下沉城市丰富画像维度原创声明本文为个人实操原创教程语言通俗、步骤完整、可直接复刻适合大学生大数据实训、数据可视化入门学习转载请注明出处
零基础玩转大数据!800万条浏览器行为数据ETL实战,从零搞定可视化大屏底层数据
很多小伙伴觉得数据大屏特别炫酷各种图表联动、数据实时跳动、高颜值页面拿来就能做成果展示但90%的人都不知道大屏光鲜亮丽的背后全是枯燥又关键的ETL数据加工工作。直接用800万条原始日志跑大屏卡死、报错、加载超时、数据混乱全套BUG直接奉上好看的大屏一定是干净、聚合、规整的数据撑起来的今天这篇超有趣保姆级实战带你从零通关助睿Uniplore ETL大数据加工我们手握1000名真实用户、800万条浏览器行为数据从杂乱原始日志一步步清洗、转换、聚合产出8张标准大屏专用数据表。全程零代码拖拽、少代码脚本新手也能无脑复刻这也是后续大屏布局、数据联动、页面发布的地基核心实验学完直接打通可视化全流程一、实验到底在干嘛1.1 实验背景把“乱数据”变成“能用的好数据”我们手上的原始数据是海量用户浏览器行为日志粒度细到用户日期浏览器小时足足800万条记录、800多MB。这种原始数据特点就是又杂又乱、体量巨大、毫无章法。里面全是机器进程名、秒级时间、零散行为记录普通人完全看不懂更不能直接用来做图表、做分析、做大屏。所以本次实验的核心任务超级简单好理解把海量脏数据加工成干净、规整、可直接可视化、可商业分析的指标表最终我们要搞定两大核心分析场景浏览器市场格局分析谁是浏览器顶流用户爱用哪个工作日周末使用差别大吗用户是专一党还是多浏览器混用党用户画像深度分析什么样的人爱用Chrome什么样的用户偏爱360、QQ浏览器年龄、性别、地域、收入有什么特征1.2 实验学习收获学完直接拿捏大数据基础不再是空洞的理论本次实操学完你直接掌握大学生必备大数据技能✅ 搞懂ETL完整逻辑数据抽取、清洗、转换、加载全流程✅ 熟练玩转助睿平台几十种核心数据组件告别看不懂、不会拖✅ 学会大数据分层思想原始数据→明细数据→聚合指标数据✅ 掌握用户分层、标签化、多表关联、维度聚合的实战技巧✅ 为后续高颜值数据大屏制作、数据联动、发布分享打下地基1.3 实验环境数据介绍实操工具助睿数智 Uniplore 一站式大数据平台操作模块ETL数据集成零代码拖拽开发️存储环境团队私有MySQL数据库数据体量1000名真实用户800万条行为日志核心数据源行为明细表记录用户每小时浏览器使用行为、时长、次数用户属性表demographic.csv记录用户性别、年龄、学历、收入、地域等画像信息1.4 整体数据加工逻辑通俗架构整个流程超级好理解原始杂乱日志 → 清洗结构化 → 标准明细表 → 多维度聚合统计 → 8张大屏专用指标表最终产出所有大屏需要的数据活跃度趋势、使用时长、用户分层、时段差异、人群画像、使用偏好全覆盖二、前置核心知识点新手必看少踩90%坑2.1 高频组件通俗讲解不用死记硬背一句话看懂每个组件是干嘛的执行SQL脚本建表、改表、批量执行SQL给数据安个“家”表输入/输出数据的“搬运工”读数据、存数据全靠它排序记录给数据排队分组、关联之前必须排序否则数据乱套分组聚合数据的“统计员”计数、求和、求平均一键搞定值映射翻译机器把看不懂的进程名翻译成中文浏览器名称JS脚本自定义规则实现用户分层、日期判断、标签分类记录集连接数据“联姻”实现行为数据用户属性数据合并字段选择数据“清洁工”删掉冗余无用字段2.2 新手四大禁忌避坑天花板很多人实验报错、数据错乱全是踩了这4个坑❌ 排序和分组字段不一致 → 数据疯狂重复、统计炸裂❌ 两表关联不排序 → 关联结果为空白做半天❌ 不做幂等建表 → 重复运行直接报错❌ 不做空值判断 → 脚本运行失败、流程中断三、超有趣分步实操全程手把手小白无脑跟3.1 清洗规整生成标准行为明细表原始日志全是乱的、机器化的字符串第一步我们先给数据“整容”核心目标产出干净标准表daily_browser_detail实操流程复制前置日志清洗转换流重命名为「输出用户日浏览器小时明细表」重点修复BUG原排序只排进程名改成四字段排序用户ID、日期、进程名、小时开启值映射翻译把机器代码换成正常人能看懂的浏览器名称原始机器进程名翻译后浏览器名称iexplore.exeIE浏览器360chrome.exe360极速chrome.exeGoogleQQBrowser.exeQQ浏览器sogouexplorer.exe搜狗新建SQL脚本组件创建标准化明细表配置表输出组件勾选裁剪表清空旧数据、写入新数据运行流程800万条杂乱数据成功变身规整明细表3.2 一键建表批量生成8张大屏核心表我们后续所有图表、指标、分析全部依托这8张表不用手动一张张建一条脚本批量搞定支持重复运行不报错。-- 1. 核心指标概览表 DROP TABLE IF EXISTS browser_overview; CREATE TABLE browser_overview ( metric_name VARCHAR(50) NOT NULL COMMENT 指标名称, metric_value DECIMAL(12,2) NOT NULL COMMENT 指标值 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT核心指标概览表; -- 2. 各浏览器周活跃趋势表 DROP TABLE IF EXISTS browser_weekly_active; CREATE TABLE browser_weekly_active ( browser_name VARCHAR(50) NOT NULL COMMENT 浏览器名称, week_range VARCHAR(20) NOT NULL COMMENT 周日期范围, active_user_count INT NOT NULL COMMENT 活跃用户数 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT各浏览器周活跃趋势表; -- 3. 浏览器使用频率分布表 DROP TABLE IF EXISTS browser_frequency_stats; CREATE TABLE browser_frequency_stats ( browser_name VARCHAR(50) NOT NULL COMMENT 浏览器名称, usage_level VARCHAR(10) NOT NULL COMMENT 使用等级, user_count INT NOT NULL COMMENT 用户数 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT浏览器使用频率分布表; -- 4. 用户使用浏览器数量分布表 DROP TABLE IF EXISTS browser_multi_usage; CREATE TABLE browser_multi_usage ( browser_count VARCHAR(10) NOT NULL COMMENT 使用浏览器数量, user_count DECIMAL(5,2) NOT NULL COMMENT 用户数量 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用户使用浏览器数量分布表; -- 5. 浏览器工作日周末对比表 DROP TABLE IF EXISTS browser_weekday_weekend; CREATE TABLE browser_weekday_weekend ( browser_name VARCHAR(50) NOT NULL COMMENT 浏览器名称, day_type VARCHAR(10) NOT NULL COMMENT 工作日/周末, avg_duration_sec INT NOT NULL COMMENT 人均使用时长(秒), total_duration_hour BIGINT NOT NULL COMMENT 总使用时长(小时), user_count INT NOT NULL COMMENT 用户数 ) COMMENT 浏览器工作日周末对比表; -- 6. 用户画像统计表 DROP TABLE IF EXISTS user_profile_stats; CREATE TABLE user_profile_stats ( browser_name VARCHAR(50) NOT NULL COMMENT 浏览器名称, gender VARCHAR(10) COMMENT 性别, age_group VARCHAR(10) COMMENT 年龄段, edu VARCHAR(50) COMMENT 学历, job VARCHAR(50) COMMENT 职业, income VARCHAR(50) COMMENT 收入, city_type VARCHAR(10) COMMENT 居住地类型, province VARCHAR(50) COMMENT 省份, user_count INT NOT NULL COMMENT 用户数 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用户画像统计表;涵盖趋势表、用户分层表、时段对比表、核心指标表、用户画像表全覆盖。3.3 周活跃趋势统计看看浏览器谁在涨、谁在跌业务场景超实用分析各浏览器每周活跃用户变化判断产品热度、用户留存情况实操逻辑读取明细→日期转周区间→排序分组→去重统计活跃用户→写入趋势表。1.读取明细2.日期转周区间3.排序分组并去重统计活跃用户4.输出最终产出browser_weekly_active周活跃趋势表完美适配大屏折线图。3.4 用户使用频率分层区分轻度摸鱼重度依赖用户超级有趣的用户分层环节我们把用户分为三类轻度用户周使用时长3小时中度用户周使用时长3-10小时重度用户周使用时长10小时计算总秒数【表输入】后按用户和浏览器【排序】再【分组】求和得到每个人用各个浏览器的总秒数。2. 秒转小时单位是秒太难看了我们要转小时。接【增加常量】组件增加一个值为 3600 的字段再接【计算器】组件用总秒数除以3600保留2位小数。3.打标签拖入【JavaScript代码】组件写一段简单的逻辑给用户打标签var total_hours total_hours; var usage_level ; if (total_hours 3) { usage_level 轻度; } else if (total_hours 3 total_hours 10) { usage_level 中度; } else { usage_level 重度; }4. 最终聚合按 usage_level 再次【排序】和【分组】统计人数输出到 browser_frequency_stats。通过JS脚本自动分层统计每款浏览器的轻中重度用户数量清晰看出哪款浏览器更让用户“上瘾”产出browser_frequency_stats使用频率表适配大屏堆叠柱状图。3.5 第五步浏览器使用数量统计用户是专一还是“花心”非常有意思的分析维度统计用户是只用一款浏览器还是多款混用我们将用户划分为单浏览器忠实用户、双浏览器用户、多浏览器混用用户。新建转换流与读取数据新建转换流“浏览器使用数量分布数据抽取”拖拽【表输入】组件数据库连接选择“团队私有数据库”读取 daily_browser_detail 表的所有数据。2. 按用户统计浏览器种类数先拖拽【排序记录】组件按 user_id 升序排序接着用【分组】组件对每个 user_id 使用的浏览器名称进行“去重计数”。3. JS打标签分类拖入【JavaScript代码】组件利用以下代码将使用的种类数量分为“1种”、“2种”、“3种及以上”var browser_cnt browser_cnt; var browser_count ; if (browser_cnt 1) { browser_count 1种; } else if (browser_cnt 2) { browser_count 2种; } else { browser_count 3种及以上; }4. 最终聚合输出拖入【排序记录】组件将数据按照 browser_count 升序排序再接【分组】组件统计各分类人数最后拖拽【表输出】组件写入 browser_multi_usage。通过分组统计用户使用浏览器种类数量再标签归类最终产出browser_multi_usage数据表适配大屏占比饼图直观展示用户使用习惯3.6 第六步工作日VS周末揭秘用户使用反差行为大家工作日和周末用浏览器的习惯一样吗是工作日摸鱼多还是周末冲浪多我们通过JS脚本自动判断日期类型区分工作日、周末分别统计各浏览器的使用时长、用户规模、平均使用时长。新建转换流与读取数据新建转换流“浏览器工作日周末对比数据抽取”拖拽【表输入】组件读取 daily_browser_detail 表。2. 判断工作日还是周末接入【JavaScript代码】组件利用 getDay() 函数判断日期类型// 获取日期 var date usage_date; // 获取星期几0周日, 1周一, ..., 6周六 var dayOfWeek date.getDay(); // 判断工作日还是周末 var day_type ; if (dayOfWeek 1 dayOfWeek 5) { day_type 工作日; } else { day_type 周末; }3. 排序与分组聚合先拖入【排序记录】组件按浏览器和 day_type 【升序排序】然后接入【分组】组件计算平均时长、总时长和人数。4. 单位转换与输出复用之前学过的技巧通过【增加常量】和【计算器】组件将总时长秒转换为小时最后用【字段选择】删掉多余的中间字段通过【表输出】写入 browser_weekday_weekend。完美挖掘用户场景差异产出browser_weekday_weekend对比表适配大屏分组柱状图对比效果拉满3.7 第七步全局核心指标一键算出大屏TOP核心KPI大屏顶部最亮眼的指标卡数据全部来自这一步我们一次性计算四大黄金指标总使用时长全站累计数据人均使用时长用户平均粘性活跃用户占比平台活跃度重度用户占比核心用户体量新建转换流与执行SQL新建转换流使用【表输入】执行包含聚合子查询的复杂SQL一次性算出所有指标SELECT ROUND(SUM(total_duration_sec) / 3600, 2) AS total_hours, ROUND(SUM(total_duration_sec) / 3600 / COUNT(DISTINCT user_id), 2) AS avg_hours, ROUND( (SELECT COUNT(DISTINCT user_id) FROM daily_browser_detail WHERE usage_date BETWEEN 2012-08-06 AND 2012-08-12 ) * 100.0 / COUNT(DISTINCT user_id), 2 ) AS active_ratio, ROUND( (SELECT COUNT(*) FROM ( SELECT user_id FROM daily_browser_detail WHERE usage_date BETWEEN 2012-05-07 AND 2012-07-08 GROUP BY user_id HAVING SUM(total_duration_sec) / 3600 30 ) t) * 100.0 / COUNT(DISTINCT user_id), 2 ) AS heavy_ratio FROM daily_browser_detail2. 行列转换与映射使用【列转行】组件把1行4列的数据变成4行指标名 - 指标值键值对。然后使用【值映射】将英文字段名转为中文。3. 表输出通过【表输出】组件写入 browser_overview 表。通过SQL聚合行转列把数据改成大屏专属键值对格式产出browser_overview指标总表直接对接大屏数据概览模块。3.8 第八步用户画像分析精准刻画浏览器用户是谁本次实验最硬核、最有趣的环节我们把用户行为数据 用户属性CSV数据进行关联深度刻画用户画像不同浏览器的用户在性别、年龄、学历、职业、收入、地域上有什么差别获取属性表从公共空间数据资源导出 demographic.csv存放到个人文件目录。2. 算年龄 (CSV 流)新建转换流“用户画像表加工”拖拽【CSV文件输入】组件读取数据通过【增加常量】(2012年)和【计算器】算出年龄再用【JS代码】划分年龄段var age_group ; if (age 18) { age_group 18; } else if (age 25) { age_group 18-25; } else if (age 35) { age_group 26-35; } else { age_group 35; }3. 读取明细数据 (SQL流)在同一个画布中拖入【表输入】组件读取用户明细表 daily_browser_detail。4. 双流各自排序连接前必须双双排序 左边的 SQL 流接【排序记录】组件按 user_id 升序排右边的 CSV 属性流接另一个【排序记录】组件按 USERID 升序排。5. 记录集连接拖入【记录集连接】组件将两股排序好的数据流接入连接类型选择 LEFT OUTER左外连接配置好两侧的关联字段。6. 多维分组输出关联完数据后先接一个【排序记录】组件按需要分组的所有维度字段排序再接入【分组】组件按浏览器、性别、学历、职业、收入、城市类型、年龄段进行终极大统计最后【表输出】写入 user_profile_stats。大功告成通过左外连接、多维分组统计最终产出user_profile_stats用户画像表实现精细化人群分析商业分析价值直接拉满四、数据验收如何判断实验做对了全部流程跑完后不要直接交作业简单3步自查杜绝低级错误进入数据探查页面查看8张数据表是否全部生成抽样查看数据确认分层、占比、趋势数据逻辑合理无空数据、无重复数据、无错乱分类即为实验圆满成功五、新手专属踩坑总结过来人血泪经验帮大家避开我实操中遇到的所有BUG数据重复炸裂排序字段和分组字段必须完全一致两表关联为空关联前两条数据流必须先排序重复运行报错建表语句一定要加删除判断保证幂等性脚本运行失败原始数据有空值代码做好容错判断小数数据不精准计算器组件手动设置保留小数位数六、实验趣味总结学习收获本次实验我们完成了从800万条杂乱原始数据 → 8张高质量可视化指标表的华丽蜕变真正体会到了大数据工作的核心逻辑原始数据只是素材加工后的数据才是价值我们不再是单纯点点按钮跑流程而是真正读懂了业务谁是浏览器市场顶流用户是专一还是混用工作日周末习惯有何不同什么样的用户偏爱哪款浏览器所有问题全部靠数据说话同时熟练掌握了零代码ETL开发、数据分层、用户画像、多维聚合等核心技能为后续高颜值大屏静态搭建、动态数据接入、大屏发布打下最核心的数据地基七、趣味拓展思考学有余力的小伙伴可以自主拓展拔高自己的实操能力1. 新增浏览器共存统计表分析两款浏览器的用户重叠度挖掘竞品竞争关系2. 优化筛选逻辑单独统计周末重度用户数据做精细化对比分析3. 给流程配置定时任务实现数据自动更新模拟企业实时数据场景4. 细化用户地域分层区分一线/二线/下沉城市丰富画像维度原创声明本文为个人实操原创教程语言通俗、步骤完整、可直接复刻适合大学生大数据实训、数据可视化入门学习转载请注明出处