零代码完成浏览器用户行为分析与流失预测
一、实验目的
- 熟悉浏览器用户行为半结构化日志数据的构成与特点,掌握文本日志解析、字段拆分的实操方法。
- 完成数据规整,将零散原始 TXT 日志转化为标准结构化数据表,解决半结构化数据无法直接分析的问题。
- 实现多维度数据聚合、字段衍生与跨表关联,搭建适配浏览器用户行为分析场景的指标体系。
- 完成基础数据清洗与聚合加工,产出浏览器覆盖率、时段活跃度等核心分析数据集,为后续流失预测建模奠定数据基础。
- 掌握 Uniplore(助睿数智)ETL 平台零代码数据处理全流程,提升半结构化数据处理、数据调试与数据分析实践能力。
二、实验环境
- 实验平台:助睿在线实验平台、Uniplore 一站式数据科学平台
- 工具组件:Uniplore ETL 数据集成组件、SQL 执行组件、BI 可视化组件
- 实验数据:互联网用户行为日志 TXT 文件、用户信息表demographic.csv
- 访问地址:https://community.uniplore.com/t/topic/80
三、实验步骤
(一)实验前期准备与项目创建
- 打开浏览器,输入实验地址并登录 Uniplore 平台,进入平台首页工作台。

- 在工作台页面,点击新建项目按钮,在弹窗中填写项目名称:互联网用户行为日志数据加工,选择项目分类,点击确定完成项目创建。

- 进入刚创建的项目主页,点击左侧导航栏文件库,在根目录位置右键,选择新建文件夹,命名为互联网用户行为日志数据集,点击确认。

- 进入平台公共空间 - 数据资源目录,找到本次实验配套的 20 份日志 TXT 文件,全选文件后,批量导出 / 移动至上一步新建的文件夹内,等待文件上传完成。

- 回到项目文件库,检查文件夹内文件完整性,确认所有日志文件均已成功导入,准备开始数据处理流程。
(二)创建原始行为日志数据表
- 在项目主页左侧,找到数据转换模块,点击新建转换工作流,将工作流命名为创建原始行为日志数据表,进入画布编辑页面。

- 在左侧组件库搜索执行一个 SQL 脚本组件,鼠标拖拽该组件至画布中央区域。

- 双击画布中的 SQL 脚本组件,打开配置面板:
- 数据库连接:选择团队私有数据库;
- 脚本编辑区:输入建表 SQL 语句,创建behavior_events行为事件明细表,定义会话 ID、用户 ID、进程名称、访问 URL、操作时间等字段及字段类型;
- 点击预览校验,确认 SQL 语法无错误。

CREATE TABLE behavior_events (
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
session_id VARCHAR(255) COMMENT '会话唯一ID',
user_id VARCHAR(100) COMMENT '用户ID',
session_start_time VARCHAR(50) COMMENT '会话开始时间',
event_seconds INT COMMENT '事件发生秒数',
process_name VARCHAR(255) COMMENT '进程名称',
process_id VARCHAR(100) COMMENT '进程ID',
url TEXT COMMENT '访问网址',
addr_handle VARCHAR(255) COMMENT '地址栏句柄',
tab_handle VARCHAR(255) COMMENT '标签页句柄',
browser_version VARCHAR(100) COMMENT '浏览器版本',
window_handle VARCHAR(255) COMMENT '窗口句柄',
app_name VARCHAR(255) COMMENT '程序名称',
company_name VARCHAR(255) COMMENT '开发公司',
source_file VARCHAR(255) COMMENT '原始日志文件名',
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间',
INDEX idx_session_id (session_id),
INDEX idx_user_id (user_id)
) COMMENT '用户行为事件明细表';
- 配置完成后,点击画布上方运行按钮,执行当前工作流。查看运行日志,提示 “执行成功” 即代表数据表创建完成。
进入数据库元数据管理页面,检索behavior_events表,核对表结构、字段名称与字段类型,确认建表结果无误。
(三)半结构化 TXT 日志转为结构化数据
- 再次新建转换工作流,命名为行为日志数据结构化转换,进入编辑画布。
- 左侧组件库搜索获取文件名组件,拖拽至画布,双击打开配置:
- 文件路径:选择此前创建的互联网用户行为日志数据集文件夹;
- 读取规则:设置读取目录下所有.txt格式文件;
- 勾选递归读取,保存配置。


- 拖拽Java 代码组件至画布,使用连线将「获取文件名」组件输出端与「Java 代码」组件输入端相连。

- 双击 Java 代码组件,进入配置页面:
- 代码编辑区:粘贴日志解析代码,实现功能:跳过日志头部两行无效内容、按照<=>和[=]分隔符拆分日志内容、提取用户 ID、会话 ID、进程名、URL、时间等核心数据;
- 输出字段设置:依次添加session_id、user_id、process_name、access_url、operate_time等字段,统一设置字段类型为字符串,逐个核对字段名称。
从组件库拖拽字段选择组件,连接在 Java 代码组件后方。双击组件,剔除解析过程产生的临时字段、冗余字段,仅保留业务所需有效字段,保存配置。
- 拖拽表输出组件,连接至字段选择组件末端。双击表输出组件进行配置:
- 数据库连接:选择团队私有数据库;
- 目标表:选择第一步创建的behavior_events表;
- 写入方式:勾选裁剪表,避免重复数据;
- 点击获取表字段,手动完成流字段与数据库表字段的一一映射。
- 整体检查工作流组件连线、参数配置无误后,点击运行按钮,执行整条数据转换流程。

- 流程运行结束后,查看执行日志,确认无报错。进入数据表behavior_events,抽样查看多条数据,验证日志解析、字段提取效果。


(四)进程使用用户规模统计分析
- 新建转换工作流创建进程统计表,再次拖拽执行一个 SQL 脚本组件,编写 SQL 语句创建统计表program_stats,包含process_name(进程名称)、user_count(使用用户数)两个字段,运行工作流完成建表。

新建转换工作流统计进程用户规模,开始数据聚合统计:
-
- 第一步:拖拽表输入组件,配置读取behavior_events全表数据;

-
- 第二步:串联字段选择组件,仅保留user_id、process_name两个统计关键字段;

- 拖拽替换 NULL 值组件,连接上一组件,配置规则:将process_name字段的空值统一替换为未知,避免空值影响分组统计。

- 依次添加排序字段组件、分组组件:
- 排序组件:按照process_name进行升序排序;

-
- 分组组件:以process_name为分组依据,对user_id进行去重计数,统计每个进程对应的独立用户数量,别名设置为user_count。

- 拖拽表输出组件,将分组统计结果写入program_stats表,完成数据落地,运行整条工作流。


- 进入平台 BI 可视化模块,新建数据集并关联program_stats表,选择水平条形图,以进程名称为维度、用户数为指标生成可视化图表,筛选出浏览器类进程作为后续核心分析对象。

(五)创建浏览器专项分析数据表
- 新建转换工作流创建浏览器使用时长统计表,使用执行一个 SQL 脚本组件,创建browser_coverage表,用于存储各浏览器总使用时长、覆盖用户数等数据,执行工作流完成建表。

SQL语句:
CREATE TABLE `browser_coverage` (
`browser_name` VARCHAR(50) NOT NULL COMMENT '浏览器进程名',
`user_count` INT NOT NULL COMMENT '使用用户数(去重)',
`total_duration_sec` BIGINT NOT NULL COMMENT '总使用时长(秒)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='浏览器用户覆盖率与总时长';
- 再新建转换工作流创建时段活跃度统计表,同样使用 SQL 脚本组件,创建browser_hourly表,字段包含浏览器名称、小时时段、活跃用户数,运行脚本完成数据表创建。

SQL语句:
CREATE TABLE `browser_hourly` (
`browser_name` VARCHAR(50) NOT NULL COMMENT '浏览器进程名',
`hour` TINYINT NOT NULL COMMENT '小时(0-23)',
`active_user_count` INT NOT NULL COMMENT '活跃用户数',
PRIMARY KEY (`browser_name`, `hour`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='浏览器按小时活跃用户数';
(六)浏览器行为数据清洗与抽取
- 新建转换工作流互联网用户行为日志数据清洗抽取,拖拽表输入组件,读取behavior_events全量结构化数据。

- 配置字段选择组件,剔除和浏览器分析无关的冗余字段,保留浏览器名称、用户 ID、访问时间、使用时长等核心字段。

先将后续的步骤的组件拖进来,拖拽“排序记录”组件到画布中,创建“过滤记录”组件到“排序记录”组件的连线,连接线类型选择“True输出”

再拖一个“空操作 (什么也不做)”组件到画布中,创建“过滤记录”组件到“空操作 (什么也不做)”组件的连线,连接线类型选择“False输出”
配置以下过滤记录组件:
配置以下“排序记录”

双击“分析查询”组件,分组字段为“session_id”,新增加的字段“next_event_seconds”,要取值的字段为“event_seconds”,类型“前第N行”,N为“1”,获取同一会话内下一行的 event_seconds 值,存入新字段 next_event_seconds

双击“计算器”组件,插入新字段行,新字段输入“duration_sec”,计算公式选择“A - B”,字段A选择“next_event_seconds”,字段B选择“event_seconds”,值类型为“Integer”

使用“字段选择”,只保留 user_id, process_name, session_start_time, url, duration_sec
使用“过滤记录”组件,过滤掉 duration_sec <= 0 的记录(最后一条记录没有下一条,时长无效,忽略)
后续很多分析需要按天、按时段聚合(比如每日使用时长、时段热力图)。提前提取好日期和小时,后续分组时直接使用,避免重复解析。
session_start_time 的格式为:yyyy-MM-dd HH:mm:ss,通过剪切字符串组件可以直接获取yyyy-MM-dd

拖拽字段选择组件到画布中,创建剪切字符串组件到字符选择组件的连线,连接线类型选择“主输出步骤”,字段选择2组件的配置如下:

- 预览清洗后的数据,检查数据格式、内容完整性,完成前期数据预处理,为后续多维度聚合、跨表关联分析做好准备。



四、遇到的问题与解决方法
(一)Java 代码组件字段配置错误
- 问题:输出字段名称拼写错误、字段类型选择不匹配,工作流运行直接报错,日志解析中断。
- 解决:对照原始日志字段说明文档,逐字核对字段名;统一业务字段为字符串类型;配置完成后先使用预览功能检测字段,确认无误后再运行流程。
(二)日志解析后关键字段出现大量空值
- 问题:分隔符代码编写不当、未跳过日志头部无效行,导致process_name、access_url等字段解析为空,统计结果失真。
- 解决:调试 Java 解析代码,修正分隔符匹配逻辑,增加跳过前两行数据的代码;在流程中新增替换 NULL 值组件,将空字段统一填充为未知,保障数据完整性。
(三)表输出组件字段映射失败,数据无法入库
- 问题:流内字段和数据库表字段名称不一致,未手动建立映射关系,数据写入失败。
- 解决:在表输出组件中点击获取数据库字段,同步目标表结构;按照业务含义,手动一对一匹配上下游字段,再次执行写入操作。
(四)数据量较大,工作流运行超时、执行缓慢
- 问题:单次批量处理 20 个日志文件,数据体量偏大,流程运行时间过长,出现超时终止情况。
- 解决:分步测试流程,先单独读取 1 个日志文件调试解析逻辑,流程通跑无误后再批量处理全部文件;开启平台读写性能优化选项,降低大数据量带来的运行压力。
(五)BI 模块无法加载统计表数据
- 问题:BI 数据集关联数据表后,页面无数据展示,无法生成可视化图表。
- 解决:先核查数据库表是否有正常数据;检查 BI 数据源连接状态,重新加载元数据;刷新数据集配置,重新绑定数据表后再次制作图表。
五、实验总结
本次实验依托 Uniplore 平台完成了半结构化用户行为日志从原始文件、结构化解析、数据清洗、聚合统计到可视化分析的全流程操作。按照实验步骤,依次完成项目搭建、数据表创建、日志解析、多维度数据统计与专项分析表构建,顺利将杂乱的 TXT 日志转化为规范的结构化数据,并筛选出浏览器作为核心分析维度,圆满完成本次实验任务。
实操过程中,我熟练掌握了 ETL 平台各类组件的使用方法,理解了半结构化数据解析、数据清洗、分组聚合、数据入库的核心逻辑,也深刻认识到字段校验、空值处理、字段映射在数据工程中的重要作用。面对代码报错、数据异常、流程超时、可视化加载失败等问题,我逐步学会了查看运行日志、分步排查故障、优化流程配置的问题解决思路,动手能力与排错能力得到有效提升。
本次实验仅完成了基础的数据加工工作,后续可结合用户基础信息表做跨表关联,深挖用户画像、使用时段、行为偏好等内容,进一步完善指标体系,为用户流失预测模型提供高质量的数据支撑。
更多推荐



所有评论(0)