[零基础用户画像教程][附踩坑讲解]浏览器市场与用户画像分析 - 数据加工 (2)

一、实验基础信息

1. 实验名称:浏览器市场与用户画像分析-数据加工(2)

2. 实训平台:Uniplore助睿数智一站式数据分析平台,配套ETL数据集成模块、AI建模模块

3. 实验原始数据:样本覆盖1000名用户,原始行为日志总量超800万条,文件总大小约825MB

4. 前置依赖数据:复用上一次实验产出数据表daily_browser_detail、browser_coverage、browser_hourly,新增用户人口属性表demographic作为画像分析数据源

5. 存储位置:所有数据表统一存储在团队私有数据库内

二、实验目标

基于已清洗完成的用户浏览器小时级行为明细表,批量加工适配可视化大屏的聚合统计数据表。整体加工任务分为两大模块,第一模块完成浏览器市场维度指标统计,包含市场占有率、使用时长、每周活跃趋势、用户使用强度分层、多浏览器并行使用分布、工作日与周末使用行为差异;第二模块完成用户画像多维度聚合统计,围绕性别、年龄区间、学历、职业、收入水平、居住城市类型、所属省份完成分组计数。最终产出标准化汇总数据,支撑前端可视化大屏快速加载、多图表无重复计算。

三、实验环境与数据源说明

3.1 实训环境

本次实训全程依托Uniplore零代码数据处理平台完成全流程操作,平台集成数据导入、ETL清洗转换、数据聚合、AI建模、数据探查校验整套功能,适配高校数据分析实训场景与企业日常数据加工场景。分工上ETL组件负责全部数据清洗、字段衍生、多表关联、聚合统计操作,AI模块预留用于后续流失预测建模,全部数据表统一托管至团队私有数据库,实现数据隔离。

3.2 数据源清单

1. 核心行为明细表:daily_browser_detail,来自上轮实验输出,存储用户单日、单浏览器、单小时粒度的使用行为记录,是市场分析报表的核心输入源。

2. 历史统计中间表:browser_coverage、browser_hourly,提供基础市场、时段统计基准数据。

3. 用户属性维度表:demographic,存储用户基础个人信息,作为构建用户画像的唯一维度来源。

四、 整体分析框架

4.1 业务需求与问题拆解

4.1.1 原始明细数据无法直接用于大屏的核心原因

数据可视化大屏不能直接查询底层原始明细表behavior_events,存在三点硬性限制:

  1. 原始日志数据体量庞大,实时查询耗时久,会造成大屏页面加载卡顿;
  2. 大屏展示内容均为聚合汇总指标,原始单条明细无展示价值;
  3. 一张大屏内多张图表会重复读取同源数据,提前预聚合能够规避重复计算,降低平台算力消耗。

因此在数据表加工前,需要先明确数据分析需要解答的全部业务问题,反向推导统计维度与数据表结构。

4.1.2 业务问题与分析价值对应表

待解答业务问题

数据分析业务价值

哪一款浏览器覆盖用户总量最多?

定位行业头部产品,判断自有产品市场竞争地位

哪一款浏览器用户累计使用时长最长?

用户规模无法代表产品粘性,使用时长可直观体现用户真实依赖程度

平台整体用户活跃量处于上升还是下降状态?

预判产品生命周期,提前识别用户活跃度衰退、流失风险

用户浏览器使用活跃高峰集中在哪个时段?

优化运营推送、营销活动的投放时间,提升用户触达转化效果

用户属于重度高频使用还是偶尔轻度打开?

区分核心留存用户与边缘低频用户,设计分层运营策略

普通用户同时安装、使用几款浏览器?

评估用户产品忠诚度,预判竞品替换风险

用户除自有产品外还会使用哪些竞品浏览器?

锁定核心竞争对手,制定差异化产品运营、迭代策略

用户工作日、周末的浏览器使用习惯是否存在明显差异?

区分办公、娱乐两大使用场景,针对性优化产品功能模块

核心活跃用户具备怎样的性别、年龄、职业特征?

锁定目标客群,指导产品功能设计、市场推广投放方向

用户整体学历分布层级如何?

匹配产品功能操作复杂度,高学历群体可适配更复杂的专业功能

用户收入水平分层情况如何?

支撑平台商业化、付费增值功能的定价与运营策略设计

用户地域分布集中在哪些城市、省份?

规划区域市场拓展节奏,合理分配线上线下运营资源

4.2 数据分析维度划分

本次分析分为两大独立模块,分别对应两块可视化大屏,每个模块配套固定分析维度、核心统计指标。

4.2.1 模块一:浏览器市场行为分析维度

分析维度

对应业务问题

核心统计指标

市场格局

哪款浏览器用户最多、使用最久

覆盖用户总数、累计使用时长占比、单用户平均使用时长

周活跃趋势

用户活跃度变化趋势

每一周独立活跃用户数量

时段偏好

用户全天活跃高峰时段

24 小时全时段活跃用户分布数据

使用频率分层

用户使用强度高低区分

轻度、中度、重度用户各自占比

多浏览器使用数量

用户同时使用产品数量

使用 1 种 / 2 种 / 3 种及以上浏览器的用户占比

竞品用户重叠

用户交叉使用竞品情况

同时使用两款不同浏览器的独立用户总量

工作日 & 周末对比

工作、娱乐场景使用差异

工作日、周末单用户平均使用时长

4.2.2 模块二:浏览器用户画像分析维度

分析维度

对应业务问题

核心统计指标

性别分布

男女用户比例结构

男性、女性独立用户数量及占比

年龄分布

平台主力用户年龄段

各年龄区间独立用户数量及占比

学历分布

用户整体教育水平分层

各学历层级独立用户数量及占比

职业分布

平台主流用户职业类型

各职业分类独立用户数量及占比

收入分布

用户收入层级划分

各收入区间独立用户数量及占比

居住地类型

城乡用户分布差异

城市、城郊、乡村用户数量占比

地域分布

用户全国省份分布情况

各省份独立活跃用户总量

4.3 目标数据表规划

结合全部分析维度,反向确定本次实验需要创建、加工的所有聚合统计表,划分市场分析、用户画像两类数据表。

4.3.1 市场分析类目标数据表

数据表名称

匹配分析维度

原始数据来源

browser_overview

全局核心指标汇总

daily_browser_detail

browser_coverage

市场格局分析

daily_browser_detail

browser_weekly_active

周活跃趋势分析

daily_browser_detail

browser_hourly

24 小时时段偏好分析

daily_browser_detail

browser_frequency_stats

用户使用频率分层

daily_browser_detail

browser_multi_usage

多浏览器使用数量分布

daily_browser_detail

browser_cooccurrence

竞品用户重叠统计

daily_browser_detail

browser_weekday_weekend

工作日、周末使用对比

daily_browser_detail

4.3.2 用户画像类目标数据表

数据表名称

匹配分析维度

原始数据来源

user_profile_stats

性别、年龄、学历、职业、收入、居住地、省份全维度画像

demographic、daily_browser_detail

4.4 数据表与数据源关联逻辑

所有市场类统计表均以底层明细表daily_browser_detail作为唯一行为数据源,用户画像统计表需要同时关联行为明细表与用户属性表demographic,以user_id作为两张表的关联主键,实现行为数据与用户属性数据的匹配。

 

五、各目标表加工说明

5.1 市场类统计表加工规则

5.1.1 browser_coverage表

数据表用途:解答「哪款浏览器用户最多、哪款产品用户使用时长最长」业务问题。

加工逻辑:以browser_name作为分组字段,分别统计分组内独立用户总数、全部用户累计使用时长、单用户平均使用时长。

数据来源:上一实验已输出完成的daily_browser_detail明细表。

5.1.2 browser_hourly表

数据表用途:解答「用户全天使用活跃高峰时段」业务问题。

加工逻辑:同时按照browser_name、hour两个字段分组,统计每款浏览器每个小时对应的活跃用户数量。

数据来源:上一实验已输出完成的daily_browser_detail明细表。

5.1.3 browser_weekly_active表

数据表用途:解答「平台用户活跃度整体上升或下降趋势」业务问题。

加工逻辑:按照browser_name、周区间文本分组,统计每个统计周期内去重后的活跃用户数量。

数据来源:本次实验重新生成的daily_browser_detail明细表。

5.1.4 browser_frequency_stats表

数据表用途:解答「用户属于重度还是轻度浏览器使用者」业务问题。

加工逻辑:先统计单个用户、单款浏览器每周累计使用总秒数,换算为小时单位后设置分层阈值:周使用时长不足 3 小时标记为轻度用户,3~10 小时标记为中度用户,超过 10 小时标记为重度用户;最后按浏览器、使用等级分组统计用户数量。

数据来源:本次实验重新生成的daily_browser_detail明细表。

5.1.5 browser_multi_usage表

数据表用途:解答「普通用户同时使用几款浏览器」业务问题。

加工逻辑:以user_id分组,统计单名用户使用浏览器的不同种类数量,将数字计数转换为文字分类标签(1 种、2 种、3 种及以上),最后按分类标签汇总独立用户总量。

数据来源:本次实验重新生成的daily_browser_detail明细表。

5.1.6 browser_cooccurrence表

数据表用途:解答「用户除自有产品外还使用哪些竞品浏览器」业务问题。

加工逻辑:统计任意两款浏览器被同一个用户同时使用的独立用户数量,量化竞品用户重叠规模。

数据来源:本次实验重新生成的daily_browser_detail明细表。

5.1.7 browser_weekday_weekend表

数据表用途:解答「工作日与周末用户浏览器使用习惯差异」业务问题。

加工逻辑:根据每条记录的usage_date判定日期类型(工作日 / 周末),以browser_name、日期类型分组,分别计算分组内单用户平均使用秒数、全部用户累计使用总秒数、独立用户数量,再将总秒数换算为小时单位便于展示。

数据来源:本次实验重新生成的daily_browser_detail明细表。

5.2 用户画像统计表加工规则

数据表用途:完整解答全部用户画像相关业务问题,包含用户性别、年龄、学历、职业、收入、地域分布等多维度分析需求。

加工逻辑:将用户属性表demographic与行为明细表daily_browser_detail通过user_id左连接合并数据,计算并分段用户年龄,再按照browser_name、性别、年龄段、学历、职业、收入、居住地类型、省份多字段分组,统计每一分组下独立用户数量。

数据来源:demographic用户属性表、本次实验重新生成的daily_browser_detail明细表。

六、 实验步骤

6.1 底层明细表daily_browser_detail准备工作

6.1.1 执行 SQL 脚本创建明细表结构

打开上一实验创建的「互联网用户行为日志」项目。

新建转换流并命名为「创建用户_日_浏览器_小时明细表」;在画布中拖入「执行一个 SQL 脚本」组件。

双击「执行一个 SQL 脚本」组件,数据库连接选择团队私有数据库,输入以下建表 SQL 语句。

sql

CREATE TABLE IF NOT EXISTS `daily_browser_detail` (

    `user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',

    `usage_date` DATE NOT NULL COMMENT '使用日期',

    `browser_name` VARCHAR(50) NOT NULL COMMENT '浏览器名称',

    `hour` TINYINT NOT NULL COMMENT '小时',

    `total_duration_sec` INT NOT NULL COMMENT '总使用时长(秒)',

    `active_count` INT NOT NULL COMMENT '活跃次数'

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户_日_浏览器_小时明细表';

点击「运行」按钮,执行转换流完成数据表结构创建。

6.1.2 复制并调整历史清洗转换流

在项目文件列表中找到上一轮实验产出的「互联网用户行为日志数据清洗抽取」转换流,右键执行复制操作,在项目根目录粘贴文件,右键重命名为「输出用户日浏览器小时明细表」。

原转换流内「排序记录 1」组件仅以process_name为排序字段,而分组组件的分组关键字段为user_id、usage_date、process_name、hour,因此需要修改排序组件的排序字段,与分组字段保持完全一致,避免分组统计时出现重复数据。

6.1.3 配置进程名与浏览器名称值映射规则

在分组聚合组件的输出端添加「值映射」组件,分别连接原分支 A 的分组 1 组件、复制分支 B 的排序记录 2 组件。

配置进程名到业务浏览器名称的映射对应关系:

 

进程名

对应浏览器名称

iexplore.exe

IE 浏览器

360chrome.exe

360 极速

360se.exe

360se

chrome.exe

Google

sogouexplorer.exe

搜狗

QQBrowser.exe

QQ 浏览器

同步校验前置过滤组件筛选规则,过滤列表仅保留上述 6 类浏览器进程,删除 EXCEL.EXE、WINWORD.EXE、AlilM.exe 三类非浏览器进程。

6.1.4 修正分组、排序组件聚合参数

转换流内分组组件中,聚合字段的统计类型统一调整为「统计不同值的数量 (N)」;在分支 A 的分组 1 组件前端新增排序记录组件,设置排序关键字段为process_name升序。

6.1.5 配置表输出组件写入明细表

画布拖入「表输出」组件,将值映射组件输出端连线至表输入组件,双击打开配置面板:数据库连接选择团队私有数据库,目标数据表填写daily_browser_detail,勾选「裁剪表」清空历史数据,开启「指定数据库字段」选项,完成全部字段映射匹配。

6.1.6 运行转换流生成明细数据

完成全部组件连线与参数配置后,点击转换流运行按钮,执行流程生成完整的用户小时级行为明细表。

6.2 批量创建全部大屏分析目标数据表

6.2.1 新建专用建表转换流

在项目内新建独立转换流,命名为「创建浏览器大屏分析目标数据表」,画布中拖入「执行一个 SQL 脚本」组件。

6.2.2 编写带 DROP 前置语句的批量建表 SQL

数据库连接选择团队私有数据库,输入完整批量建表脚本,每条建表语句前增加 DROP TABLE IF EXISTS 语句,规避重复执行脚本时数据表已存在的报错问题。

sql

-- 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 '指标值'

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 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 '活跃用户数'

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 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 '用户数'

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 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 '用户数量'

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 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 '用户数'

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户画像统计表';

6.2.3 执行脚本完成表结构初始化

确认 SQL 无语法错误后,点击运行按钮执行转换流,一次性完成 6 张新增统计表的结构创建。

6.3 周活跃趋势表browser_weekly_active数据抽取加工

6.3.1 新建转换流并读取明细数据源

新建转换流命名为「各浏览器周活跃趋势表数据抽取」,画布拖入「表输入」组件,数据库连接选定团队私有数据库,点击获取 SQL 查询语句,数据源选择daily_browser_detail明细表。

6.3.2 标准化日期字段格式、映射周区间文本

表输入组件输出端连线至「字段选择」组件,在元数据面板规范usage_date字段格式为yyyy-MM-dd;再添加「值映射」组件,读取标准化后的日期字段,新建输出字段week_range,将单条日期匹配对应周区间文本。

6.3.3 排序、分组完成去重活跃用户统计

值映射组件后添加「排序记录」组件,排序关键字段设置为browser_name、week_range升序;排序完成后接入分组组件,分组字段与排序字段保持一致,聚合规则为对user_id执行去重计数,生成active_user_count活跃用户数字段。

6.3.4 配置表输出入库并执行流程

分组组件输出端接入「表输出」组件,目标数据表填写browser_weekly_active,勾选裁剪表清空历史数据,完成字段映射后运行转换流写入统计数据。

 

6.4 使用频率分布表browser_frequency_stats加工

6.4.1 读取明细数据,按用户、浏览器分组汇总总秒数

新建转换流「使用频率分布数据抽取」,通过表输入组件读取daily_browser_detail全量数据;添加排序记录组件,以user_id、browser_name升序排序,接入分组组件汇总单用户单浏览器累计总秒数total_seconds。

6.4.2 配置常量与计算器完成秒转小时换算

分组组件后添加「增加常量」组件,新增常量字段hour_m_s,数据类型为整型,固定数值 3600;常量组件输出接入计算器组件,计算公式设置为 A/B,A 字段选择total_seconds、B 字段选择hour_m_s,生成保留两位小数的小时字段total_hours。

6.4.3 JS 脚本划分轻 / 中 / 重度用户分层

计算器组件后添加 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 = '重度';

}

提前在常量组件中预定义usage_level空字段,用于接收脚本输出分层标签。

6.4.4 二次分组统计各分层用户数量,写入数据表

JS 组件输出后添加排序记录组件,按browser_name、usage_level排序;接入分组组件统计每组去重用户数量,最终连接表输出组件写入browser_frequency_stats数据表,运行转换流完成加工。

6.5 多浏览器使用数量分布表browser_multi_usage加工

6.5.1 按用户 ID 分组统计单用户浏览器使用种类数

新建转换流「浏览器使用数量分布数据抽取」,表输入读取明细数据,排序记录组件以user_id升序排序;分组组件以user_id分组,对browser_name去重计数得到browser_cnt字段。

 

6.5.2 JS 脚本将数字计数转换为文字分类标签

分组后接入 JavaScript 代码组件,执行分类转换代码。

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种及以上';

}

6.5.3 分组汇总各类用户数量并入库

添加排序记录组件以browser_count排序,分组统计各分类下用户总量,通过表输出组件写入browser_multi_usage数据表并执行流程。

6.6 工作日周末对比表browser_weekday_weekend加工

6.6.1 JS 脚本根据日期判定工作日 / 周末标签

新建转换流「浏览器工作日周末对比数据抽取」,表输入读取明细数据后接入 JavaScript 代码组件,通过日期对象判断星期,生成day_type字段。

var date = usage_date;

var dayOfWeek = date.getDay();

var day_type = "";

if (dayOfWeek >= 1 && dayOfWeek <= 5) {

    day_type = "工作日";

} else {

    day_type = "周末";

}

6.6.2 分组统计时长、用户数,换算总时长为小时

JS 组件输出后排序,关键字段为browser_name、day_type;分组组件聚合三项指标:单用户平均使用秒数avg_seconds、全部用户累计总秒数total_seconds、去重用户数user_count。复用常量 3600 与计算器组件,将总秒数换算为小时存储为total_duration_hour。

 

6.6.3 清理冗余中间字段后写入目标表

添加字段选择组件剔除换算过程中产生的临时常量、中间计算字段,连接表输出组件写入browser_weekday_weekend数据表,运行转换流。

6.7 全局核心指标表browser_overview加工

6.7.1 编写聚合 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_detail

6.7.2 通过行转列、值映射转换为中文键值对格式

表输入输出接入行转列组件,将单行四字段数据拆分为多行键值结构;再添加值映射组件,将英文指标标识转换为中文指标名称。

6.7.3 写入核心指标数据表

配置表输出组件,目标表指定browser_overview,运行转换流完成全局指标入库。

6.8 用户画像统计表user_profile_stats完整加工流程

6.8.1 从公共资源导出demographic.csv属性文件

在平台顶部点击公共空间入口,切换至数据资源标签页,找到demographic.csv文件。

点击文件右上角更多操作按钮,选择导出功能,存储路径选定项目根目录,确认导出后刷新项目文件库,查看文件是否正常加载。

6.8.2 CSV 文件输入组件读取用户属性原始数据

新建转换流命名为「用户画像表加工」,画布拖入「CSV 文件输入」组件,浏览选中根目录下的demographic.csv文件,编码格式设置为 UTF-8,点击获取字段自动识别文件全部列。

 

6.8.3 常量 + 计算器计算用户年龄,JS 脚本完成年龄分段

CSV 组件输出接入增加常量组件,新增整型常量字段year,固定数值 2012;接入计算器组件,计算公式为 2012 减去出生年份字段,生成年龄字段age。

计算器后添加 JavaScript 组件,完成年龄区间划分。

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';

}

6.8.4 表输入读取行为明细数据,双数据集分别排序

画布新增表输入组件,读取daily_browser_detail行为明细表;创建两组排序记录组件,一组连接 CSV 属性数据、一组连接行为明细数据,排序关键字段分别为USERID、user_id,保证关联前数据集有序。

6.8.5 记录集左连接合并用户属性与浏览器行为数据

拖入「记录集连接」组件,两组排序后的数据集分别接入组件输入口,连接类型选择左外连接,匹配关键字段为明细表user_id、属性表USERID,完成行为数据与用户属性的关联匹配。

6.8.6 多维度分组统计各属性下用户数量

连接完成后添加排序记录组件,排序字段包含browser_name、GENDER、EDU、JOB、INCOME、PROVINCE、ISCITY、age_group;接入分组组件,以上述全部字段作为分组关键字,聚合规则为对user_id去重计数,生成user_count字段。

6.8.7 配置表输出组件写入画像表并运行

分组组件输出连接表输出组件,目标数据表填写user_profile_stats,勾选裁剪表,完成全部字段映射匹配,点击运行执行完整转换流。

6.8.8 加载数据库元数据,通过数据探查校验结果

转换流执行完毕后,打开数据库元数据面板,右键团队私有数据库执行加载元数据操作;切换至数据探查功能页面,依次打开本次实验产出的全部统计表,核对字段类型、数值范围、分组计数结果是否符合业务统计标准。

 

 

七、实验结果

1. 底层明细表产出:成功生成完整daily_browser_detail小时级用户行为明细表,完整承载800万条原始日志的聚合明细,无数据丢失、重复、空值异常。

2. 全部目标统计数据表创建完成:browser_overview、browser_weekly_active、browser_frequency_stats、browser_multi_usage、browser_weekday_weekend、user_profile_stats六张新增统计表结构完整,字段注释、数据类型与设计要求完全匹配,无建表报错。

3. 市场维度统计数据全部生成:

- browser_weekly_active完整覆盖全部统计周期的每周活跃用户数据,可直接支撑折线图展示活跃度变化;

- browser_frequency_stats完成全部浏览器轻度/中度/重度用户分层计数,分层规则判定无逻辑错误;

- browser_multi_usage清晰体现用户单浏览器、多浏览器使用人群分布;

- browser_weekday_weekend区分工作日、周末两类场景的使用时长差异,数值换算准确。

4. 用户画像聚合数据正常输出:user_profile_stats完成浏览器与用户全属性维度关联,可分别按性别、年龄、地域、学历等维度单独筛选统计,无用户ID关联缺失问题。

5. 数据可用性验证:所有产出统计表均为聚合后轻量化数据,相比原始明细表数据量缩减90%以上,完全满足可视化大屏快速读取需求,各图表可直接读取对应数据表,无需二次实时聚合计算。

八、问题与解决

8.1 分组统计后出现重复计数、用户数量虚高

现象:未在分组组件前添加排序组件,分组统计时同一用户被多次计算,最终用户总数远超实际样本量。

解决:所有分组聚合操作前强制增加「排序记录」组件,排序字段与分组字段保持完全一致,平台分组组件仅能对有序数据完成精准去重统计。

8.2 日期周区间映射错乱,部分日期无法匹配周范围文本

现象:部分日期转换后week_range字段为空,周活跃统计数据缺失。

解决:统一前置执行日期字段格式化,将usage_date标准化为yyyy-MM-dd字符串格式,再执行值映射匹配规则,规避日期格式不统一造成的匹配失败。

8.3 用户画像表关联后大量用户属性字段为空

现象:demographic用户属性表与行为明细表左连接后,大量浏览器行为记录无匹配用户性别、年龄数据。

解决:核对两张表user_id字段数据类型,统一设置为字符串VARCHAR类型,去除ID前后隐藏空格,重新执行关联操作,空属性字段占比下降至合理范围。

8.4 批量建表脚本执行提示数据表已存在报错

现象:重复运行建表转换流时,SQL提示数据表名称冲突,流程中断。

解决:在每条CREATE TABLE语句前增加DROP TABLE IF EXISTS语句,运行时自动删除历史旧表,再新建表结构,实现流程可重复执行。

九、 实验总结

本次实训依托Uniplore平台ETL组件,完成从原始日志清洗、底层明细表构建、多维度聚合统计、用户属性关联全链路数据加工,最终产出9张适配可视化大屏的标准化数据表,覆盖浏览器市场分析与多维度用户画像两大业务分析场景。

实操过程中熟练掌握表输入输出、排序分组、值映射、JS自定义逻辑、多表左连接、行列转换等核心零代码数据处理组件,明确数据加工基础规范:分组前必须排序、统一字段数据类型、提前做单位换算与分层判定、批量建表需兼容重复运行场景。

业务层面掌握可视化大屏的数据前置聚合设计思路,理解明细数据直接用于可视化的性能缺陷,学会从业务分析需求反向推导数据表结构、统计口径与分层规则,将数据处理操作和实际业务运营分析场景结合。

实训过程中出现的计数重复、关联空值、格式匹配失败等问题,均通过调整组件执行顺序、统一字段格式、完善SQL脚本得到解决,后续加工流程可进一步精简冗余组件,优化转换流运行效率,缩短大批量数据处理耗时。

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值