当前位置: 首页 > news >正文

浏览器用户画像分析 - 大屏数据接入

1 实验目标

基于上一实验搭建完成的浏览器用户画像大屏静态页面,借助助睿 Max 蓝图编辑器,把经过 ETL 加工后的用户画像统计表对接至大屏各类图表组件,搭配下拉筛选器实现不同浏览器画像数据联动切换。

完成实验后你可以掌握:

  1. 吃透蓝图编辑器基础定义:数据源、触发器、执行动作、并行多流处理

  2. 使用并行处理节点接收筛选器选中值,分发给多条 SQL 查询语句

  3. 针对不同图表编写可接收筛选参数的条件查询 SQL

  4. 配置筛选控件与全量图表的实时交互联动

2 实验运行环境

  • 实训平台:助睿在线实验平台

  • 数据底座:Uniplore 助睿数智零代码平台,覆盖数据接入、ETL 加工、建模、可视化全流程,适配教学与企业数据分析场景

  • 可视化工具:助睿 Max 数据大屏

    平台优势:组件种类齐全、图层分层管理、拖拽低代码搭建、高并发海量数据渲染、支持 3D 数字孪生与 GIS 地图展示

  • 存储数据源:团队私有 MySQL 数据库

    本次实操核心依托蓝图编辑器完成数据流对接与交互逻辑配置

3 实验数据源

复用上一轮 ETL 产出的user_profile_stats用户画像统计表,完整结构如下:

字段名数据类型业务说明
browser_nameVARCHAR(50)浏览器名称
genderVARCHAR(10)用户性别
ageINT精确年龄
age_groupVARCHAR(10)年龄段区间
eduVARCHAR(50)学历层级
jobVARCHAR(50)职业类型
incomeVARCHAR(50)收入档位
city_typeVARCHAR(10)城乡居住地类型
provinceVARCHAR(50)所属省份
user_countINT对应分组下用户总量

4 蓝图整体逻辑讲解

4.1 蓝图编辑器是什么

蓝图编辑器是助睿 Max 内置的可视化逻辑编排工具,依靠「节点连线」的形式自定义大屏内全部组件交互、数据流转规则。

核心优势:

  1. 保证交互动作、数据刷新同步实时

  2. 支持多条查询合并请求、一份数据源拆分分发

  3. 业务逻辑模块化拆分,只需聚焦业务需求,不用手写大量底层代码

4.2 基础专业名词释义

名词详细解释
数据源提前配置好的数据库连接信息,定义数据读取来源
查询语句自定义 SQL 脚本,规定需要拉取哪些统计数据
触发器触发数据加载刷新的事件,例如页面初始化、下拉框选中、定时刷新
执行动作触发器触发后执行的操作,比如执行 SQL、推送数据到图表
全局变量用于节点之间传递数值,典型场景:存储筛选器选中的浏览器名称

4.3 完整业务流转逻辑

  1. 大屏初始化加载 / 用户切换下拉浏览器选项 → 同步触发两类 SQL 查询

    • 维度汇总 SQL:一次性查询性别、年龄、学历、职业、收入、居住地、省份 7 类分布数据

    • 核心指标 SQL:单独计算总用户量、平均年龄、高学历占比、中高收入占比 4 项数值

  2. 浏览器下拉筛选器把选中的浏览器名称,同步传递给两条 SQL 查询作为过滤条件

  3. 维度数据拆分分发:并行处理节点按照维度标识拆分数据,分别推送给 7 个分布图表

  4. 指标数值拆分分发:并行处理节点把单行多列指标拆成 4 个独立数值,分别送入 4 个数字指标卡片

  5. 所有图表接收推送数据,自动渲染展示

4.3 各节点承担任务

节点名称负责工作内容
页面加载节点大屏打开瞬间,自动执行一次全量数据初始化加载
浏览器下拉筛选器用户手动切换浏览器选项,触发全局数据刷新,输出选中浏览器名称
浏览器参数接收(并行处理节点)接收筛选器传出的浏览器值,存入全局变量供下游 SQL 读取
多维度数据 SQL 请求一次性查询 7 个维度分布数据,统一输出维度标识、分类名称、统计数值格式
核心指标 SQL 请求查询四项核心统计指标,输出单行多列 / 多行单值指标数据
维度数据分发(并行处理)依据维度标识过滤拆分数据,分发给 7 个分布图表
核心指标分发(并行处理)拆分四项独立指标数值,分发给 4 个指标卡片
各图表画布组件接收分发后的数据,渲染展示图表内容

4.5 本次实验边界范围

仅完成全国范围画像数据可视化:

  1. 全国省份地图:展示各省用户数量分布

  2. 全局核心指标:总用户数、平均年龄、本科及以上学历占比、中高收入人群占比

  3. 七大维度分布图表:性别、年龄段、学历、职业、收入、城乡居住地、省份排行

    点击省份查看单省指标的交互功能,留至下一次实验完成

4.6 节点连线规则说明

起始节点目标节点连线代表含义
页面加载(初始化完成事件)浏览器参数接收(输入端口)大屏打开初始化参数环境
浏览器筛选器(选中变更事件)浏览器参数接收(输入端口)切换浏览器后更新全局筛选值
浏览器参数接收(数据输出)多维度 SQL 请求(执行 SQL)把选中浏览器传给查询做过滤
浏览器参数接收(数据输出)核心指标 SQL 请求(执行 SQL)把选中浏览器传给查询做过滤
多维度 SQL 请求(执行成功事件)维度数据分发(输入端口)把全维度统计数据送入拆分节点
核心指标 SQL 请求(执行成功事件)核心指标分发(输入端口)把四项指标数据送入拆分节点
维度数据分发(7 个分支输出)7 个维度图表(数据导入接口)拆分后的分类数据推送至对应图表
核心指标分发(4 个分支输出)4 个指标卡片(数据导入接口)拆分后的独立指标推送至对应数值卡片

5 分步实操步骤(顺序完全原样保留)

5.1 前置准备:给统计表补充 age 精确年龄字段

大屏平均年龄指标需要精确年龄计算,仅靠年龄段区间估算误差较大,因此先补全表结构与 ETL 加工流:

在团队私有 MySQL 数据库执行重建表 SQL:

DROP TABLE IF EXISTS `user_profile_stats`; CREATE TABLE `user_profile_stats` ( `browser_name` VARCHAR(50) NOT NULL COMMENT '浏览器名称', `gender` VARCHAR(10) COMMENT '性别', `age` INT NOT NULL 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='用户画像统计表';

打开 Hop「用户画像表加工」转换流,三处修改:

① 排序记录组件:新增 age 字段,设置升序排序

② 分组聚合组件:把 age 加入分组字段列表,同步保留原有分组维度

③ 保存转换流,完整运行一次 ETL,重新回填数据表

5.2 将大屏组件导出至蓝图编辑器

上一实验已完成数据源基础配置,这里只做组件导出操作:

打开之前搭建好的用户画像大屏画布,在左侧图层栏 / 画布内右键点击目标组件,选择导出到蓝图编辑器,依次导出以下全部组件:

  1. 浏览器下拉筛选框(单选下拉)

  2. 性别分布饼图

  3. 年龄段分布柱状图

  4. 学历分布横向条形图

  5. 职业分布柱状图

  6. 收入分布柱状图

  7. 居住地类型饼图

  8. 省份分布地图

  9. 省份用户 TOP5 轮播列表

  10. 四个核心指标数值卡片(总用户、平均年龄、本科占比、中高收入占比)

    导出完成后点击页面蓝图编辑器图标,即可在节点列表查看全部导入画布组件。

5.3 新建浏览器参数接收并行处理节点

下拉筛选器仅能输出选中值,无法直接驱动 SQL 刷新,需要并行处理节点中转存储全局变量:

  1. 在蓝图画布拖拽「并行数据处理」节点,重命名为浏览器参数接收

  2. 双击节点配置两段执行脚本方法:

    方法 1(页面初始化加载执行)

    const BASE_URL = 'https://lab.guilian.cn'; window.GLOBAL_BASE_URL = BASE_URL; return data;

    作用:预留外部接口基础地址,本次实验无外部调用需求,保留模板结构即可。

    方法 2(筛选器切换时实时执行)

    const SELECTED_BROWSER = data.value; window.GLOBAL_SELECTED_BROWSER = SELECTED_BROWSER; return { value: SELECTED_BROWSER };

    作用:抓取下拉框选中的浏览器名称,存入全局变量,下游 SQL 直接读取变量做筛选。

  3. 完成节点连线绑定:页面加载、筛选器选中变更两个事件,全部接入该节点输入端口。

    流转逻辑:大屏打开初始化 → 变量初始化;切换浏览器选项 → 更新全局变量 → 下游 SQL 重新执行 → 全图表刷新。

这个方法把用户选中的浏览器存到window.GLOBAL_SELECTED_BROWSER这个全局变量里。后面的SQL请求节点只要读取这个变量,就知道该查哪个浏览器的数据了。

连好线之后,整个流程是这样的:

  • 大屏打开 → 页面加载触发 → 节点初始化

  • 用户切换浏览器 → 筛选器输出新值 → 节点更新全局变量 → SQL重新执行 → 所有图表刷新

其中,浏览器的选项我们可以直接使用静态数据(因为个数不多):title为前端显示内容,value为实际查询内容,即数据库中存储的对应 browser_name,如:

{ "title": "IE浏览器", "value": "IE浏览器" }

我们需要填写6个浏览器的对应内容,并刷新数据,同时,输入框中默认选中设置为“IE浏览器”

这样,一个筛选器就同时控制了所有图表。

5.4 创建多维度汇总 SQL 请求节点

该节点一次性查询 7 类分布数据,用 UNION ALL 合并输出统一格式,减少重复请求次数:

  1. 拖拽「SQL 请求」节点,重命名为维度数据 SQL 请求

  2. 填写节点执行脚本(自动读取全局浏览器变量拼接查询条件)

// 读取全局存储的选中浏览器 const selectedBrowser = window.GLOBAL_SELECTED_BROWSER; // 拼接合并查询SQL let sql = ` -- 性别分布统计 select 'gender' as dimension_type, gender as name, sum(user_count) as value from labs.user_profile_stats where browser_name = '${selectedBrowser}' group by gender ​ union all ​ -- 年龄段分布统计 select 'age' as dimension_type, age_group as name, sum(user_count) as value from labs.user_profile_stats where browser_name = '${selectedBrowser}' group by age_group ​ union all ​ -- 学历分布统计 select 'edu' as dimension_type, edu as name, sum(user_count) as value from labs.user_profile_stats where browser_name = '${selectedBrowser}' group by edu ​ union all ​ -- 职业分布统计 select 'job' as dimension_type, job as name, sum(user_count) as value from labs.user_profile_stats where browser_name = '${selectedBrowser}' group by job ​ union all ​ -- 收入档位分布统计 select 'income' as dimension_type, income as name, sum(user_count) as value from labs.user_profile_stats where browser_name = '${selectedBrowser}' group by income ​ union all ​ -- 城乡居住地分布统计 select 'city_type' as dimension_type, city_type as name, sum(user_count) as value from labs.user_profile_stats where browser_name = '${selectedBrowser}' group by city_type ​ union all ​ -- 省份用户分布统计 select 'province' as dimension_type, province as name, sum(user_count) as value from labs.user_profile_stats where browser_name = '${selectedBrowser}' group by province `; return sql

3.节点输入连线绑定浏览器参数接收节点的输出数据,实现筛选参数自动带入 SQL 条件。

5.5 创建四项核心指标 SQL 请求节点

单独查询总用户、平均年龄、高学历占比、中高收入占比四个数值指标:

  1. 新增「SQL 请求」节点,命名核心指标 SQL 请求

  2. 填写节点执行脚本:

const selectedBrowser = window.GLOBAL_SELECTED_BROWSER; let sql = ` -- 1. 总用户数量 select 'total_users' as name, sum(user_count) as value from labs.user_profile_stats where browser_name = '${selectedBrowser}' ​ union all ​ -- 2. 加权平均年龄(保留1位小数) select 'avg_age' as name, round(sum(age * user_count) / sum(user_count), 1) as value from labs.user_profile_stats where browser_name = '${selectedBrowser}' ​ union all ​ -- 3. 本科及以上学历占比(百分比) select 'high_edu_ratio' as name, round(sum(case when edu in ('本科', '硕士及以上') then user_count else 0 end) * 100.0 / sum(user_count), 1) as value from labs.user_profile_stats where browser_name = '${selectedBrowser}' ​ union all ​ -- 4. 中高收入人群占比(百分比) select 'high_income_ratio' as name, round(sum(case when income in ('5001~8000元', '8001~12000元','12000元以上') then user_count else 0 end) * 100.0 / sum(user_count), 1) as value from labs.user_profile_stats where browser_name = '${selectedBrowser}' `; return sql

5.6 搭建维度数据并行分发节点

SQL 一次性返回全维度混合数据,需要按dimension_type拆分,分发给对应图表:

  1. 拖拽「并行数据处理」节点,命名维度数据分发,输入端口连接维度 SQL 请求的执行成功事件

  2. 双击节点,依次创建 7 条分支处理脚本:

    分支 1:性别饼图数据格式化 var filtered = data.filter(item => item.dimension_type === 'gender'); return filtered.map(item => ({ name: item.name, value: item.value })); 分支 2:年龄段柱状图(固定顺序排序) var filtered = data.filter(item => item.dimension_type === 'age'); var order = ['<18', '18-25', '26-35', '36-45', '>45']; filtered.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name)); return filtered.map(item => ({ x: item.name, y: item.value, s: '用户数' })); 分支 3:学历横向条形图(固定学历升序) var filtered = data.filter(item => item.dimension_type === 'edu'); var order = ['小学及以下', '初中', '高中/中专/技校', '大专', '大学本科', '硕士及以上']; filtered.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name)); return filtered.map(item => ({ x: item.name, y: item.value, s: '学历' })); 分支 4:职业柱状图 var filtered = data.filter(item => item.dimension_type === 'job'); return filtered.map(item => ({ x: item.name, y: item.value, s: '职业' })); 分支 5:收入柱状图(按收入档位数值从小到大排序) var filtered = data.filter(item => item.dimension_type === 'income'); var getMinIncome = (incomeStr) => { if (incomeStr === '无收入') return -1; if (incomeStr === '500元及以下') return 0; var match = incomeStr.match(/(\d+)/); return match ? parseInt(match[1]) : 999999; }; filtered.sort((a, b) => getMinIncome(a.name) - getMinIncome(b.name)); return filtered.map(item => ({ x: item.name, y: item.value, s: '收入' })); 分支 6:居住地类型饼图(未知值替换中文) var filtered = data.filter(item => item.dimension_type === 'city_type'); return filtered.map(item => ({ name: item.name === 'unknown' ? '未知' : item.name, value: item.value })); 分支 7:省份 TOP5 轮播列表(取用户数前五) var filtered = data.filter(item => item.dimension_type === 'province'); filtered.sort((a, b) => b.value - a.value); var top5 = filtered.slice(0, 5); return top5.map(item => ({ province: item.name, user_count: item.value }));

    调试提示:数据格式异常时,可在脚本首行添加

    console.log("返回的数据",data)

    打印日志排查

5.7 搭建核心指标并行分发节点

把 SQL 返回的 4 行单指标数据,拆分成 4 个独立数值供给指标卡片:

  1. 新建「并行数据处理」节点,命名核心指标分发,输入绑定核心指标 SQL 请求执行成功事件

  2. 依次创建 4 条分支脚本,示例(总用户数):

    var item = data.find(item => item.name === 'total_users'); return [{ value: item ? item.value : 0 }];

    剩余三条仅修改匹配名称:

    avg_age、high_edu_ratio、high_income_ratio

    即可,无数据时兜底返回 0 避免报错。

5.8 完整节点连线绑定

严格对照 4.6 的连线关系完成全部线路对接:

  1. 页面加载节点输出 → 浏览器参数接收输入

  2. 浏览器筛选器选中事件 → 浏览器参数接收输入

  3. 浏览器参数接收输出 → 维度 SQL 请求执行触发

  4. 浏览器参数接收输出 → 核心指标 SQL 请求执行触发

  5. 维度 SQL 请求执行成功 → 维度分发节点输入

  6. 核心指标 SQL 请求执行成功 → 指标分发节点输入

  7. 维度分发 7 个分支输出 → 一一对应 7 个图表的导入数据接口

  8. 指标分发 4 个分支输出 → 一一对应 4 个指标卡片导入数据接口

5.9 保存蓝图并预览校验

点击蓝图编辑器右上角保存按钮,固化全部连线与脚本配置

返回大屏画布,点击预览按钮进入测试页面

功能校验项:

① 页面打开自动加载默认浏览器的全套画像数据

② 切换下拉框内其他浏览器,所有图表、指标数值同步刷新

③ 饼图、柱状图、地图、轮播列表数据和筛选浏览器匹配无误

6 实验总结

6.1 实验收获

本次实验基于已完成的大屏静态布局,借助助睿Max蓝图编辑器,完成用户画像数据动态接入与多组件联动配置,顺利达成实验目标,掌握了低代码可视化大屏数据流配置与交互设计的核心技能。

理论层面,我明晰了蓝图编辑器的运行机制,掌握了数据源、触发器、全局变量、并行数据处理等核心概念,理解了节点连线、参数传递、数据分发的闭环数据流逻辑,区分了静态大屏与动态交互大屏的核心差异,建立了可视化数据联动的基础认知。

实操层面,我熟练掌握了完整的大屏联动配置流程。通过新增精确年龄字段、优化数据聚合规则,解决了原有数据估算误差问题,提升指标计算精度。同时掌握了组件导出、参数接收、动态参数SQL编写、批量数据查询、并行数据分发等关键操作,利用UNION ALL语句实现多维度数据一次性查询,通过并行节点完成单一数据源向多图表、指标卡的精准分发,最终实现浏览器筛选器与全量大屏组件的实时联动,成功搭建交互式用户画像可视化大屏。

业务层面,我熟练掌握用户性别、年龄、学历、地域等多维度数据分析逻辑,能够精准计算用户总量、平均年龄、高学历及中高收入占比等核心指标,深刻认识到大数据可视化在用户洞察和业务决策中的应用价值。

6.2 实验问题与解决方法

实验过程中出现两类典型问题:一是初期图表数据错乱、指标卡数据为空,根源是未规范过滤维度数据、缺少排序规则,且筛选器参数传递失效。通过优化并行数据处理代码,对各维度数据精准过滤、自定义排序,核对并修正节点连线逻辑,保障参数正常传递,解决了数据展示异常问题。二是省份排行榜展示不规范,通过添加数据降序逻辑并截取TOP5数据,实现排行榜标准化展示。同时通过控制台数据校验,快速排查数据异常,大幅提升调试效率。

6.3 实验不足与改进方向

本次实验仅完成全国基础数据筛选展示,缺少省份下钻、数据弹窗等进阶交互功能,且未运用定时刷新、多条件筛选等平台高阶能力。后续将深入学习平台高阶功能,完善大屏交互体系,优化SQL查询逻辑,提升数据查询效率与稳定性,进一步增强大屏的专业性和实用性。

7 对实验平台的评价

1.零代码全链路教学适配:平台覆盖数据接入、ETL加工、SQL查询、可视化搭建、交互配置全流程能力,无需复杂编程,依托拖拽操作即可完成项目落地,大幅降低大数据可视化学习门槛,适配零基础学生入门学习,贴合高校课程教学需求。

2.可视化交互逻辑清晰:蓝图编辑器采用节点连线式可视化编程,将抽象的数据流转、交互逻辑具象化,通过标准化节点实现参数传递、数据分发,便于学生理解联动原理,兼顾教学实用性与项目专业性。

3.组件丰富且性能稳定:助睿Max内置各类图表、地图、指标卡等可视化组件,覆盖主流数据分析场景,支持图层管理、联动筛选等功能。具备工业级数据处理能力,可实现海量数据秒级渲染,展示效果流畅稳定。

整体而言,助睿在线实验平台是优质的大数据教学实训工具。其零代码、全链路、可视化的核心特性,能够有效帮助我们将理论知识转化为实操能力,适配高校大数据可视化、数据分析相关课程教学。虽存在少量细节短板,但不影响核心实验体验,能够很好地满足日常教学实训需求。

http://www.rkmt.cn/news/1491681.html

相关文章:

  • 剪辑问题不知道问谁怎么办?5款工具实测对比
  • 2025-2026年上海屋宁遮阳设备有限公司电话查询:选购户外遮阳产品前需了解的事项 - 品牌推荐
  • PHP写的电视直播系统,网页和手机都能推流看直播
  • 2026夏季工作服衬衫,清凉透气怎么选?
  • 晋中市黄金回收本地靠谱店铺指南+白银回收+铂金回收+彩金回推荐收门店 及地联系方式址推荐 - 盛世金银回收
  • 什么是4F级机场?现代化机场的控制台需求有哪些?
  • 如何免费解锁Wand高级功能:终极Wand-Enhancer使用指南
  • 单层VQ-VAE如何通过码本优化逆袭分层架构?
  • 2026石油化工用玻璃钢运输罐优质厂家推荐指南:玻璃钢搅拌罐、玻璃钢水渠、玻璃钢灌溉排水渠、玻璃钢田埂、玻璃钢电力盖板选择指南 - 优质品牌商家
  • 手把手封装UniApp蓝牙打印JS-SDK:以LPAPI插件为例打造可复用业务组件
  • 微信桌面端登录没有自动登录该设备选项
  • 2026北京优质搬家公司推荐榜:北京搬家公司、北京收纳整理公司、北京日式搬家公司、北京本地搬家、北京长途搬家公司选择指南 - 优质品牌商家
  • 别再让网卡拖慢你的服务器!手把手教你用RPS/RFS优化单队列网卡性能(附一键脚本)
  • 立创EDA手动拼板实战:当自带功能不够用时,如何精准复制并重建铺铜?
  • 大厂笔试除了算法还考啥?性格测试、情商题、技术问答全解析(附准备清单)
  • 主动学习实战指南:NLP数据冷启动的高效构建方法
  • 效用即真理:面向工程决策的可验证Truth=Utility框架
  • 考公资料整理合集:系统性备考资源与高效学习路径
  • FusionCompute CNA 8.0.0在VMware Workstation上的完整配置清单与避坑指南(含IP规划)
  • 从DeepSeek-R1-Distill中学习蒸馏技术
  • NCMconverter终极指南:如何快速批量解锁网易云音乐加密格式
  • 文章标题:肇庆端州区黄金回收 卖黄金如何避开各类回收陷阱 - 润富黄金回收
  • Agent 学习前的准备 —— Python 语法篇
  • 低温车间防静电桌垫:低温环境真的会影响电阻测试仪测量吗?
  • 科技股完了?
  • 白银市黄金回收本地靠谱店铺指南+白银回收+铂金回收+彩金回推荐收门店 及地联系方式址推荐 - 盛世金银回收
  • MATLAB版核极限学习机(KELM)完整实现:含训练、预测函数与即用示例
  • 不露脸口播视频工作流,5款工具实测对比
  • 别再死记硬背RC公式了!用STM32和51单片机实测,讲透高低电平复位电路里电容怎么选
  • 微信小程序计算机毕设之django大数据基于微信小程序的直播带货商品数据分析系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)