新手友好!基于零代码平台浏览器市场与用户画像分析-数据加工(2)与数据大屏制作全流程演示
一、实验背景
1.1 实验目的
本实验以 “用户 - 日 - 浏览器 - 小时” 明细表为原始数据,完成大屏所需多维度统计报表加工,涵盖浏览器市场格局(覆盖率、使用时长)、周活跃趋势、使用频率分布、用户浏览器保有量分布、工作日与周末使用对比及性别、年龄、学历、职业、收入、居住地、省份维度的用户画像统计;依托加工完成的汇总数据表,使用助睿 Max 完成大屏布局规划、图表选型与静态页面搭建;基于已落地的大屏静态布局,借助平台蓝图编辑器接入预处理数据表,实现全图表真实数据动态渲染。通过本实验,学生应掌握:
- 结合业务需求设计大屏布局、选配对应图表类型
- 把聚合统计表接入可视化平台,搭建可交互数据大屏并输出业务分析结论
- 理解蓝图编辑器数据源、触发器、动作的基础定义
- 完成数据库数据源的连接配置
- 依据图表需求编写对应 SQL 查询语句
- 实现查询数据与大屏图表组件的绑定映射
1.2 实验环境
- 零代码在线实验平台:本次实验基于助睿数智(Uniplore)一站式数据科学平台完成。本次实验用到以下功能:
- 数据集成平台(助睿 ETL)
-
可视化工具:助睿Max(数据大屏)
- MySQL
1.3 实验数据
本实验将继续基于首届中国互联网数据挖掘竞赛公开数据集开展,使用上一实验加工完成的browser_coverage、browser_hourly表,以及原始数据 demographic 用户属性表,将产生以下共6张表以及对应可视化图表:
| 表名 | 用途 | 关联图表 |
|---|---|---|
| browser_coverage | 浏览器市场覆盖率统计 | 指标卡、柱状图、饼图 |
| browser_hourly | 浏览器时段活跃统计 | 24小时活跃分布折线图 |
| browser_weekly_active | 各浏览器周活跃趋势 | 周活跃趋势折线图 |
| browser_frequency_stats | 浏览器使用频率分布 | 使用频率堆叠柱状图 |
| browser_multi_usage | 用户浏览器使用数量分布 | 浏览器使用数量饼图 |
| browser_weekday_weekend | 浏览器工作日周末对比 |
工作日vs周末分组柱状图 |
各目标表加工说明
| 目标表 | 用途 | 加工逻辑 | 数据来源 |
|---|---|---|---|
| browser_coverage | 回答“哪个浏览器用户最多?哪个用得最久?” | 按 browser_name 分组,统计用户数、总时长、人均时长 | daily_browser_detail(已在上个实验输出) |
| browser_hourly | 回答“用户什么时候最活跃?” | 按 browser_name、hour 分组,统计活跃用户数 | daily_browser_detail(已在上个实验输出) |
| browser_weekly_active | 回答“用户活跃度在增长还是下降?” | 按 browser_name 和周编号分组,统计每周活跃用户数 | daily_browser_detail |
| browser_frequency_stats | 回答“用户是重度还是轻度使用?” | 计算每个用户的周使用时长,按阈值(轻度<3h、中度3-10h、重度>10h)划分等级,再按浏览器分组统计 | daily_browser_detail |
| browser_multi_usage | 回答“用户同时用几个浏览器?” | 统计每个用户使用多少种不同的浏览器,按1种、2种、3种及以上分组 | daily_browser_detail |
| browser_weekday_weekend | 回答“工作日和周末使用习惯有何不同?” | 按浏览器和日期类型(工作日/周末)分组,统计人均使用时长 | daily_browser_detail |
| user_profile_stats | 回答“核心用户是谁?用户教育/收入水平如何?”… | 按性别、年龄、学历、职业、收入、省份、居住地类型分组统计 | demographic、daily_browser_detail |
二、实验步骤
2.1 准备 用户-日-浏览器-小时 明细表
首先,我们打开上个实验创建的项目“互联网用户行为日志”,新建转换流“创建用户_日_浏览器_小时明细表”,拖入“执行一个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='用户_日_浏览器_小时明细表';

找到“互联网用户行为日志数据清洗抽取”转换流,右键选择“复制”

右键根目录,点击“粘贴”

粘贴后右键重命名为“输出用户日浏览器小时明细表”


上个实验中“排序记录 1”组件仅按照 process_name 升序排序,而分组组件的分组字段是:user_id、usage_date、process_name、hour,所以,需要更正“排序记录 1”组件的排序字段与分组组件的分组字段一致,否则会出现多条重复数据

在分组组件后添加“值映射”组件,“值映射”组件连接到原分支A的分组 1组件、复制发送到原分支B的排序记录 2组件

值映射组件按照以下添加映射
| 进程名 | 说明 |
|---|---|
| iexplore.exe | IE浏览器 |
| 360chrome.exe | 360极速 |
| 360se.exe | 360se |
| chrome.exe | |
| sogouexplorer.exe | 搜狗 |
| QQBrowser.exe | QQ浏览器 |

转换流中的分组组件中聚合字段的聚合类型是“个数”的,需要改成“统计不同值的数量(N)”

在第一个过滤记录中如果匹配条件是 process_name IN LIST “iexplore.exe;360chrome.exe;360se.exe;chrome.exe;sogouexplorer.exe;QQBrowser.exe”,则继续下一步骤;如果匹配条件与以上不同,则删除匹配值中的EXCEL.EXE、WINWORD.EXE、AlilM.exe,因为这3个不是浏览器

在分支A的“分组 1”组件前添加排序记录组件,按 process_name 升序排序


拖拽“表输出”组件到画布中,值映射组件连接到“表输出”组件

双击“表输出”组件,配置如下:
-
数据库连接:选择“团队私有数据库”
-
目标表:
daily_browser_detail -
勾选“裁剪表”,清空原有数据
-
勾选“指定数据库字段”,建立字段映射


最终转换流如下:

运行转换流并加载元数据查看结果

2.2 准备浏览器大屏各数据表
首先新建转换流“创建浏览器大屏分析目标数据表”,拖拽“执行一个SQL脚本”组件

双击“执行一个SQL脚本”组件,数据库连接选择“团队私有数据库”,并输入以下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='用户画像统计表';

2.2.1 各浏览器周活跃趋势表
目标:统计每个浏览器在第1-4周的每周活跃用户数
新建转换流“各浏览器周活跃趋势表数据抽取”,拖拽“表输入”组件画布中,数据库连接选择“团队私有数据库”,点击“获取SQL查询语句”,选择 daily_browser_detail 获取所有查询语句

使用字段选择组件对usage_date进行格式转换:拖拽字段选择组件到画布中,创建表输入组件到字段选择组件的连线,双击字段选择组件,点击“元数据”,右键插入,输入字段名称usage_date,类型为Date,格式为“yyyy-MM-dd”

再拖拽值映射组件,字段选择组件连接值映射组件,这里我们需要将每个浏览器的使用日期转为周:5/7-5/13、6/4-6/10、7/2-7/8、8/6-8/12:双击值映射组件,使用的字段名选择“usage_date”,目标字段名(空=覆盖)输入“week_range”,接下来就插入行,将每个日期映射为对应的周区间,一共四周28行

接下来我们按各浏览器、周分组统计用户数,分组之前需要对数据进行排序:拖拽排序记录组件到画布中,创建值映射组件到排序记录组件的连线,排序记录组件设置为按照browser_name、week_range 升序排序

拖拽分组组件,排序记录组件连接到分组组件,分组字段为browser_name、week_range,聚合时对user_id进行去重计数,得到active_user_count,因此,聚合配置中输入字段“active_user_count”,subject 为“user_id”,类型为“统计不同值的数量(N)”

最后拖入表输出组件并运行转换流,将分组聚合结果入库,表输出组件配置为:
-
数据库连接:选择“团队私有数据库”
-
目标表:
browser_weekly_active -
勾选“裁剪表”,清空原有数据
-
勾选“指定数据库字段”,建立字段映射


2.2.2 各浏览器使用频率分布表
目标:按轻/中/重度划分用户使用频率
新建转换流“使用频率分布数据抽取”,拖拽“表输入”组件画布中,数据库连接选择“团队私有数据库”,点击“获取SQL查询语句”,选择 daily_browser_detail 获取所有查询语句

接下来,我们统计每个用户使用各浏览器的使用时长:拖拽排序记录组件到画布中,创建表输入组件到排序记录组件的连线,排序记录组件设置为按照 user_id、browser_name 升序排序

排序后拖拽分组组件,排序记录组件连接到分组组件,分组组件配置如下:

这样计算的总时长单位是秒,我们将其转换为小时更直观,小时 = 秒 ÷ 3600,由于我们的数据中没有3600这个字段,所以需要先增加这个常量字段。拖拽增加常量组件到画布中,分组组件连接到增加常量组件,增加常量组件中增加新字段“hour_m_s”,将其类型设置为 Integer ,并且值固定为 3600,如下:

(usage_level这个字段我们之后也会用到,这里可以先在增加常量组件中添加,后面返回再来添加也可以)
接下来,拖入计算器组件计算小时,新增使用时长单位为小时的字段“total_hours”,计算公式为“A / B”,字段A为“total_seconds”,字段B为“hour_m_s”,保留2位小数

接下来,我们为使用频率划分等级:拖入JavaScript代码组件,计算器组件连接到JavaScript代码组件,双击JavaScript代码组件,输入以下代码,点击”获取变量”,自动获取代码中的变量(usage_level这个字段我们需要在之前的增加常量组件中新增)
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 = '重度';
}

接下来,我们统计每个浏览器的各使用等级的用户数:同样的,先拖入排序记录组件,将数据按照 browser_name、usage_level 升序排序

再拖入分组组件,按 browser_name、usage_level 分组,统计 user_count(user_id去重计数)

最后配置表输出组件并运行转换流,将分组聚合结果入库,表输出组件配置为:
-
数据库连接:选择“团队私有数据库”
-
目标表:
browser_frequency_stats -
勾选“裁剪表”,清空原有数据
-
勾选“指定数据库字段”,建立字段映射


2.2.3 各浏览器使用数量分布表
目标:统计用户使用1种、2种、3种及以上浏览器的用户数
新建转换流“浏览器使用数量分布数据抽取”,拖拽“表输入”组件画布中,数据库连接选择“团队私有数据库”,点击“获取SQL查询语句”,选择 daily_browser_detail 获取所有查询语句

接下来,我们统计每个用户使用各浏览器的种类数量,拖拽排序记录组件到画布中,创建表输入组件到排序记录组件的连线,排序记录组件设置为按照 user_id 升序排序

排序后拖拽分组组件,排序记录组件连接到分组组件,分组组件配置如下:

接下来,我们划分浏览器数量等级:拖入JavaScript代码组件,计算器组件连接到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种及以上';
}

接下来,我们统计使用1种、2种、3种浏览器的用户数:先拖入排序记录组件,将数据按照 browser_count 升序排序

再拖入分组组件,按 browser_count 分组,统计 user_count(user_id去重计数)

最后配置表输出组件并运行,将分组聚合结果入库,表输出组件配置为:
-
数据库连接:选择“团队私有数据库”
-
目标表:browser_multi_usage
-
勾选“裁剪表”,清空原有数据
-
勾选“指定数据库字段”,建立字段映射


2.2.4 各浏览器工作日周末对比表
目标:统计各浏览器工作日周末使用时长对比
新建转换流“浏览器工作日周末对比数据抽取”,拖拽“表输入”组件画布中,数据库连接选择“团队私有数据库”,点击“获取SQL查询语句”,选择 daily_browser_detail 获取所有查询语句

接下来,根据使用日期获取星期几,拖拽JavaScript代码组件到画布中,表输入组件连接JavaScript代码组件,输入以下代码,点击”获取变量”,自动获取代码中的变量
// 获取日期
var date = usage_date;
// 获取星期几(0=周日, 1=周一, ..., 6=周六)
var dayOfWeek = date.getDay();
// 判断工作日还是周末
var day_type = "";
if (dayOfWeek >= 1 && dayOfWeek <= 5) {
day_type = "工作日";
} else {
day_type = "周末";
}

接下来,我们统计工作日和周末的使用时长和用户数:先拖入排序记录组件将数据按照 browser_name、 day_type升序排序

再拖入分组组件,配置如下:

平均使用时长单位是秒的数值不会太大,是比较好观察,但是总使用时长的单位是秒的话数值很大,不够直观,所以将其转为小时,使用增加常量组件和计算器组件来实现


在计算过程中出现了一些中间字段,我们使用字段选择组件来删除冗余字段

最后配置表输出组件并运行,将分组聚合结果入库,表输出组件配置为:
-
数据库连接:选择“团队私有数据库”
-
目标表:browser_weekday_weekend
-
勾选“裁剪表”,清空原有数据
-
勾选“指定数据库字段”,建立字段映射


2.2.5 核心指标数据抽取
目标:将大屏顶部四个指标卡的数据存入一张通用的键值对表中
在以上数据抽取中,我们已经获取了各浏览器的用户数、使用时长、活跃用户数、重度用户数,但我们设计的核心指标是全局数据,除了使用时长,其他用户数相关的数据在不同浏览器之间是存在重叠的,所以需要重新计算。
用一个表输入组件,直接SQL一次性算出所有指标,然后通过列转行将一行转为四行
新建转换流“”,拖入表输入组件,数据库连接团队私有数据库,在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

接下来使用行转列组件将字段名称转为指标名称,字段值转为指标值:
| 字段名称 | key值 | value字段 |
|---|---|---|
| total_hours | total_hours | metric_value |
| avg_hours | avg_hours | metric_value |
| active_ratio | active_ratio | metric_value |
| heavy_ratio | heavy_ratio | metric_value |

接下来使用值映射组件将指标名称映射为中文

最后使用表输出组件写入目标表 browser_overview


2.2.6 用户画像表
目标:统计每个浏览器按性别、年龄、学历、职业、收入、居住地类型的用户分布
首先点击“公共空间”,点击tab选项“数据资源”,点击 demographic.csv 卡片右上角的“更多” - “导出”,导出到根目录


新建转换流“用户画像表加工”,拖拽“CSV文件输入”组件到画布中

双击“CSV文件输入”组件,点击“浏览文件”按钮,在弹出的窗口中选择 demographic.csv,然后点击“确定”,列分隔符和封闭符保持不变,编码选择“UTF-8”,在空白表格处右键点击“获取字段”,字段获取完成后点击确认

原人口属性数据中没有年龄字段,但是有出生年份,因此我们可以通过计算获取用户的年龄属性
首先我们拖入增加常量组件,增加常量字段“year”,值设为“2012”(数据是2012年的)

拖入“计算器”组件来计算用户在2012年的年龄,年龄 = 2012 - 出生年份,即:age = year - BIRTHDAY

接下来我们将年龄划分为<18、18-25、26-35、>35四段:拖入JavaScript代码组件,计算器组件连接到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';
}

拖入“表输入”组件到画布中,数据库连接选择“团队私有数据库”,点击“获取SQL查询语句”,在弹出的窗口中,选择用户_日_浏览器_小时明细表 daily_browser_detail

先拖拽“排序记录”组件到画布中,创建“表输入”组件到“排序记录 ”组件的连线,双击“排序记录 ”组件命名为“明细数据按用户ID排序”,在空白表格处右键点击“获取字段”,仅保留“user-id”,其他字段选中后右键点击“删除选中的行”,设置 user_id 升序排序后点击“确认”

拖拽“排序记录”组件到画布中,创建“CSV文件输入”组件到“排序记录”组件的连线,同样的双击“排序记录”组件,命名为“用户属性数据按用户ID排序”,设置按 USERID 升序排序

拖拽“记录集连接”组件到画布中,2个排序记录组件分别连接到记录集连接组件,双击“记录集连接”组件,第一个Transform选择“明细数据按用户ID排序”,第二个Transform选择“用户属性数据按用户ID排序”,连接类型选择“LEFT OUTER”,分别点击两个“获得连接字段”按钮,获取的字段第一个Transform保留“user_id”,第二个Transform保留“USERID”

分组统计之前,需要先对数据进行排序,拖入排序记录组件,记录集连接组件连接到排序记录组件,按照等下分组聚合的分组字段升序排序,即:browser_name、GENDER、EDU、JOB、INCOME、PROVINCE、ISCITY、age_group

拖入分组组件,排序记录组件连接到分组组件,按 browser_name、GENDER、EDU、JOB、INCOME、PROVINCE、ISCITY、age_group 分组,聚合 user_count = user_id (统计不同值的数量(N))

配置表输出组件并运行转换流,将分组聚合结果入库,表输出组件配置为:
-
数据库连接:选择“团队私有数据库”
-
目标表:user_profile_stats
-
勾选“裁剪表”,清空原有数据
-
勾选“指定数据库字段”,建立字段映射


2.2.7 结果查看
点击“元数据”tab选项,右键团队私有数据库,点击“加载元数据”,点击“数据探查”,查看以上生成的目标表是否符合预期







2.3 创建与设置大屏样式
布局草图:

点击实验平台左侧菜单“数据大屏”,进入助睿数据大屏可视化平台

首先我们先创建本次实验的市场分析大屏,点击“+新建”按钮 - “新建大屏”

在模板选择中点击“空白模板”,输入“市场分析”,然后点击下一步,自动跳转到“市场分析”大屏的制作界面

将以下图片链接复制后粘贴到“背景图片”后的文本框中,覆盖原图片链接:https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/public-material/bg-2.png

点击“媒体”组件分类,点击“单张图片”组件,右键组件,重命名为“标题banner”

选中这个“标题banner”图片组件,在右边设置栏点开“基础属性”,可以设置长宽、位置等属性(除了直接设置属性值,也可以通过拖拽和缩放来设置组件的大小和位置),我们设置如下(仅供参考,根据自己屏幕比例设置):

点开基本设置,可以设置图片链接,我们复制以下链接进去,覆盖原链接: https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/practice/browser-analysis/banner01.png

设置完成后可以点击“保存”然后点击“预览”查看效果
因为我们有两个大屏,所以可以设置导航做大屏间的跳转。同样的,点击“单张图片”组件,重命名为“市场分析按钮背景”

设置位置与大小,导航按钮的背景图片链接为: https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/comprehensive-data/navigation-bg-1.png

按钮上的文字我们使用“通用标题”来实现:点击文字分类下的“通用标题”,重命名为“市场分析”;修改基础属性使其和“市场分析按钮背景”图片组件一样;点开基本设置,修改标题名为“市场分析”并进行字体配置

切换“数据”tab选项,点击“刷新数据”,文字即显示为我们修改的文字

第二个大屏的导航可以复制这个按钮的设置

复制的图片组件重命名为“用户画像按钮背景”,通用标题组件重命名为“用户画像”,修改他们的横坐标和标题名,颜色和粗细也做相应修改,以达成对应按钮为选中效果,其他为未选中效果。(复制后的组件可能会不显示,刷新数据即可)

至此,顶部标题和导航配置完成,为方便管理,我们将这些组件放在一个组里。选中顶部区域的所有组件,右键“成组”,这个组命名为“顶部”

2.4 设置内容布局与样式
2.4.1 用户规模-浏览器用户数
我们首先制作左上角第一个图表区域,点击单张图片组件,重命名为“区域背景”,将区域背景图片链接更换为:https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/public-material/area-bg.png
并按照布局草图和参考图设置好大小、位置

再添加一个单张图片组件,重命名为“标题背景”,用于图表标题背景,这个图表在布局草图中属于短图表,因此,图表标题背景图片链接为短标题背景图片: https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/public-material/title-bg-short.png
调整好位置和大小

添加通用标题组件,重命名为“标题”,按照参考图,调整大小和位置,标题名修改为“浏览器用户数”,对齐方式为左对齐,其他设置参考如下:

点击“基础柱状图”组件,重命名为“浏览器用户数柱状图”,调整大小和位置

图表的图例默认隐藏,我们将其设置为可见,并调整水平对齐方式为居中,如果柱子和图例的距离过小,影响美观,我们可以点开“全局样式”来调整将柱子上边距调大即可,其他样式,大家可以自行设置。设置完成后将本小节增加的组件设置成组,命名为“浏览器用户数”

2.4.2 使用规模-浏览器使用时长占比
复制上一小节制作的“浏览器用户数”组,重命名为“浏览器使用时长”

参考布局草图,拖拽“浏览器使用时长”组到合适位置

将标题名修改为“浏览器使用时长”,并刷新数据(复制的组件内容如果不显示,刷新数据即可)

浏览器使用时长占比图表类型为饼图,我们删除复制的柱状图,重新添加“多维度饼图”,调整位置大小,名重命名为“浏览器使用时长占比”

接下来设置饼图的样式,我们取消外圈显示,点击“饼图样式”,点击外圈颜色后的色值方块,将透明度拖到0,并点击“确定”

接下来我们将标签类目设置为可见并设置每个浏览器在饼图中的颜色,点开“数据系列”,系列及代表分类,也就是浏览器,刚好数据中有6个浏览器,将系列1-6的颜色设置为不同的颜色即可,色值参考:
#2177FC、#3DC3DF、#FF948B、#8A79FE、#82F9A5、#97DFFF
配置完成后将饼图组件拖到“浏览器使用时长”组中,并及时保存

2.4.3 使用粘性-浏览器人均使用时长
复制制作的“浏览器用户数”组,将标题名和组名都重命名为“浏览器人均使用时长”,参考布局草图,拖拽“浏览器使用时长”组到合适位置,并刷新数据

浏览器人均使用时长图表类型为柱状图,因此无需修改图表类型,将复制的柱状图重命名为“人均使用时长柱状图”即可
2.4.4 指标区
复制“浏览器用户数”组,将标题名和组名修改为“数据概览”,参考布局草图,拖拽“浏览器使用时长”组到合适位置,调整组件的大小,换成长的标题背景图,并刷新数据:
https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/public-material/title-bg-long.png

删除复制的柱状图,大屏中的指标卡是通过文字类组件实现的,我们使用数据翻牌器来展示指标,而单独一个指标看上去有点单调,可以添加一些装饰元素:
首先,添加“单张图片”组件,重命名为“图标”,背景图添加链接:
https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/library-data/audio-video.png
并调整大小、位置,如下图:

添加数字翻牌器组件,重命名为“总使用时长”,调整大小、位置后调整数字翻牌器的样式如下



将图标和总使用时长两个组件成组,命名为“总使用时长”

复制3个“总使用时长”组,分别重命名为“人均使用时长”、“活跃用户占比”、“重度用户占比”,其中“活跃用户占比”、“重度用户占比”两个组中的图标背景图链接更改为: https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/library-data/degree-thesis.png
修改翻牌器标题、后缀,最后调整位置如下:

2.4.5 时段偏好-周内对比
复制“数据概览”组,重命名为“周内对比”,参考布局草图,拖拽“周内对比”组到合适位置;刷新复制的组件数据,标题内容修改为“工作日vs周末使用时长”;添加“分组柱状图”,命名为“工作日vs周末使用时长分组柱状图”,并调整大小,位置参考如下:

接下来调整系列2的柱子颜色为#3DC3DF

其他样式调整参考如下:




2.4.6 时段偏好-24小时活跃分布
复制上一小节制作的“周内对比”组,重命名为“24小时活跃分布”,参考布局草图,拖拽“24小时活跃分布”组到合适位置;将标题名修改为“24小时活跃用户数分布”,删除复制的分组柱状图,添加区域图,并调整好大小、位置

样式调整参考如下,参考颜色为#29F1FA:

2.4.7 周活跃趋势-浏览器周活跃用户数变化
复制“浏览器用户数”组,重命名为“浏览器周活跃用户数变化”,参考以上的实验,调整位置、标题并更换图表类型,实现如下效果:

2.4.8 使用习惯-使用频率分布
复制上一小节制作的“浏览器周活跃用户数变化”组,重命名为“使用频率分布”,参考以上的实验,调整位置、标题并更换图表类型为“垂直基本柱图”

2.4.9 竞争关系-浏览器使用数量分布
复制上一小节制作的“使用频率分布”组,重命名为“浏览器使用数量分布”,参考以上的实验,调整位置、标题共并换图表类型为“基本饼图”

基本饼图样式调整参考如下:

最终预览效果如下:

2.5 创建数据源与组件导入
首先,我们需要创建链接团队私有数据库的数据源,进入数据大屏平台后,点击“我的数据”,
点击“+新建” - “新建数据源”,输出团队私有数据库的信息后,点击“立即添加”

打开制作的“市场分析”数据大屏,在画布编辑器内,右键单击左侧图层栏或中间画布区的组件,选择导出到蓝图编辑器,即可将对应组件导出到蓝图编辑器中。依次把所有需要接入数据的组件导出到蓝图编辑器中

导出成功后,单击“蓝图编辑器”图标切换到蓝图编辑器页面,可在导入节点列表中查看对应的节点

2.6 节点添加与数据配置
2.6.1 全局节点添加
首先,我们在画布中添加1个全局节点,全局节点可用于在大屏打开时自动执行后续操作(如加载数据)

2.6.2 为市场格局3个图表配置数据
从逻辑节点面板中,点击“SQL请求”节点,并将全局节点的“页面初始化完成”输出接口连接到“SQL 请求”节点的“执行SQL”输入接口

点击“SQL 请求”节点,在配置面板中,数据源选择“团队私有数据库”,SQL类型为“查询”,处理方法的代码框中,输入以下SQL,一次性查询来源为 browser_coverage 的数据:
let sql = `
select
browser_name as x,
user_count as y1,
round(total_duration_sec/3600,0) as y2,
round((total_duration_sec/3600)/user_count,1) as y3
from labs.browser_coverage
order by browser_name`
return sql

添加并行数据处理组件,并在其处理方法中再增加2个处理方法,一共3个处理方法,分别命名为:各浏览器用户数、各浏览器总使用时长、各浏览器人均使用时长;将SQL请求节点的执行成功输出接口分别连接到并行数据处理的3个处理方法接口

三个图表需要的字段
-
浏览器用户数柱状图:
x(浏览器名称)、y1(用户数) -
浏览器使用时长占比:
name(浏览器名称)、value(使用时长) -
人均使用时长柱状图:
x(浏览器名称)、y3(人均时长)
因此,并行数据处理的3个处理方法的代码如下,分别粘贴到对应的代码块中即可:
各浏览器用户数
return data.map(item => ({
x: item.x,
y: item.y1,
s: '用户数'
}));
各浏览器总使用时长
return data.map(item => ({
name: item.x,
value: item.y2
}));
各浏览器人均使用时长
return data.map(item => ({
x: item.x,
y: item.y3,
s: '人均时长(小时)'
}));

点击浏览器用户数柱状图、浏览器使用时长占比、人均使用时长柱状图这3个节点,将它们添加到画布中,再将并行数据处理的3个处理方法的输出接口连接到对应的图表的“导入数据接口”,如下:

点击保存,我们可以预览一下数据情况是否符合预期,如果预览出现如下状况:

可以按照以下配置:

其余图表可自行调整
2.6.3 为指标区域图表配置数据
添加“SQL请求”节点,并将全局节点的“页面初始化完成”输出接口连接到“SQL 请求”节点的“执行SQL”输入接口,在配置面板中,数据源选择“团队私有数据库”,SQL类型为“查询”,处理方法的代码框中,输入以下SQL:
let sql = `select metric_name, metric_value from labs.browser_overview `
return sql

添加并行数据处理组件,并在其处理方法中增加新处理方法,一共4个处理方法,分别命名为:总使用时长、人均使用时长、活跃用户占比、重度用户占比;为处理方法注入代码;SQL请求节点的执行成功输出接口分别连接到并行数据处理的4个处理方法接口;点击4个数字翻牌器组件的节点,将它们添加到画布中,再将并行数据处理的4个处理方法的输出接口连接到对应的图表的“导入数据接口”,如下:
总使用时长:
var item = data.find(d => d.metric_name === '总使用时长');
return [{ value: item ? item.metric_value : 0 }];
人均使用时长:
var item = data.find(d => d.metric_name === '人均使用时长');
return [{ value: item ? item.metric_value : 0 }];
活跃用户占比:
var item = data.find(d => d.metric_name === '活跃用户占比');
return [{ value: item ? item.metric_value : 0 }];
重度用户占比:
var item = data.find(d => d.metric_name === '重度用户占比');
return [{ value: item ? item.metric_value : 0 }];

2.6.4 为工作日vs周末使用时长图表配置数据
参考以上SQL请求节点的配置步骤,完成SQL请求节点配置,查询代码如下:
let sql = `
select
browser_name as x,
avg_duration_sec as y,
day_type as s
from labs.browser_weekday_weekend
order by browser_name, day_type
`
return sql
点击工作日vs周末使用时长节点,将它添加到画布中,再SQL请求节点的执行成功输出接口连接到“导入数据接口”,如下:

2.6.5 为24小时活跃用户分布图表配置数据
参考以上SQL请求节点的配置步骤,完成SQL请求节点配置,查询代码如下:
let sql = `
select hour as x,
active_user_count as y,
browser_name as s
from labs.browser_hourly
order by browser_name, hour
`
return sql
点击24小时活跃用户分布节点,将它添加到画布中,再SQL请求节点的执行成功输出接口连接到“导入数据接口”,如下:

点击保存,预览数据是否符合预期;这里需要注意,图例是跟着折线上的标签点的颜色变化的,为了使折线、标签点、图例颜色一致,需要分别设置颜色,在画布编辑器中选中图表,点开数据系列,这个折线图有6个图例,即6个浏览器,所以需要设置6个系列的折线和标记颜色

2.6.6 为活跃用户周变化图表配置数据
参考以上SQL请求节点的配置步骤,完成SQL请求节点配置,查询代码如下:
let sql = `
select hour as x,
active_user_count as y,
browser_name as s
from labs.browser_hourly
order by browser_name, hour
`
return sql
点击活跃用户周变化节点,将它添加到画布中,再SQL请求节点的执行成功输出接口连接到“导入数据接口”,如下:

该图表同样是折线图,参考上一小节设置,对折线图6个系列的折线和标记颜色进行设置
2.6.7 为使用频率分布图表配置数据
参考以上SQL请求节点的配置步骤,完成SQL请求节点配置,查询代码如下:
let sql = `
select
browser_name as s,
user_count as y,
usage_level as x
from labs.browser_frequency_stats
order by browser_name
`
return sql
点击使用频率分布节点,将它添加到画布中,再SQL请求节点的执行成功输出接口连接到“导入数据接口”,如下:

点击保存,预览数据是否符合预期
2.6.8 为浏览器使用数量分布图表配置数据
参考以上SQL请求节点的配置步骤,完成SQL请求节点配置,查询代码如下:
let sql = `
select
browser_count as name,
user_count as value
from labs.browser_multi_usage
order by browser_count
`
return sql
点击浏览器使用数量分布节点,将它添加到画布中,再SQL请求节点的执行成功输出接口连接到“导入数据接口”,如下:

点击保存,预览数据是否符合预期
2.7 预览并发布
2.7.1 最终效果预览
单击大屏页面右上角的预览图标,预览可视化应用,最终效果如下:

2.7.2 发布并分享
预览确认无误后,单击大屏页面右上角的发布图标

在弹出的发布对话框中单击发布分享

单击分享链接右侧的复制按钮,打开浏览器,将复制的链接粘贴到地址栏中,即可在线观看

三、实验结果
本次实验基于助睿数智 Uniplore 平台与 MySQL 数据库,完成了互联网用户浏览器行为数据的 ETL 加工、多维度统计表构建、数据大屏布局设计、图表配置、蓝图数据接入与动态可视化发布全流程操作,最终落地2012 年浏览器全景分析数据大屏,实验成果如下:
-
数据加工成果依托原始用户行为明细数据,通过零代码 ETL 组件完成数据清洗、转换、分组聚合、字段计算、表关联等操作,成功生成
daily_browser_detail、browser_coverage、browser_hourly、browser_weekly_active、browser_frequency_stats、browser_multi_usage、browser_weekday_weekend、browser_overview、user_profile_stats共 9 张业务统计表,覆盖浏览器用户规模、使用时长、时段分布、周趋势、使用习惯、工作日 / 周末差异、用户画像等全维度指标,所有数据表均可正常查询、数据逻辑符合业务统计规则。 -
可视化大屏成果完成大屏页面布局、样式美化、组件搭配与交互配置,页面包含顶部标题栏、导航栏、核心指标卡、各类分析图表,具体模块及呈现效果:
- 核心指标区:以数字翻牌器展示总使用时长、人均使用时长、活跃用户占比、重度用户占比四大全局指标,数据动态加载正常;
- 浏览器市场格局:通过柱状图、饼图分别展示各浏览器用户数量、使用时长占比、人均使用时长,直观体现各浏览器市场占有率差异;
- 时段与周期分析:分组柱状图呈现工作日与周末的使用行为差异,区域图展示 24 小时用户活跃分布,折线图反映每周用户活跃变化趋势;
- 使用习惯分析:柱状图区分轻 / 中 / 重度使用人群分布,饼图统计同时使用多款浏览器的用户占比;
- 所有图表均可通过蓝图编辑器自动拉取数据库实时数据,渲染正常、样式美观、布局规整。
-
发布与分享成果完成大屏预览、调试与正式发布,生成公开分享链接,外部浏览器可直接访问查看完整可视化页面,大屏交互、数据刷新功能运行稳定。本次实验大屏访问链接:http://47.109.66.142:30887/#/dataScreen/release?shareId=6c5e6e24b96244039623e950dd3c2040
-
业务数据结论结合大屏可视化数据可得出业务分析结论:
- 市场层面:多款浏览器形成竞争格局,部分浏览器在用户数量与使用时长上占据明显优势;
- 使用时段:用户全天均有活跃行为,存在明显的高峰使用时段,工作日与周末的人均使用时长存在显著差异;
- 使用习惯:大部分用户仅使用 1~2 款浏览器,重度使用用户占比较高,不同浏览器的用户使用强度分布各有特点;
- 活跃趋势:四周内整体用户活跃度保持平稳,无大幅波动。
四、问题与解决
4.1 问题
问题1:数据配置后所有图表均服务错误无法接入数据
4.2 原因
原因1:SQL请求组件中的查询语句访问表时访问了错误的数据库
4.3 解决
解决1:将”from labs.xxxx“修改为”from 数据库账号.xxxx“访问自己登录的数据库,同时重建数据库连接
五、实验总结
本次实验完整完成数据 ETL 处理、SQL 数据查询、可视化大屏设计、蓝图交互配置、项目发布全链路操作,将数据加工与数据可视化理论结合实操,收获颇丰:
- 掌握零代码 ETL 工具使用:熟练运用助睿 ETL 各类组件,理解表输入、输出、排序、分组、值映射、脚本计算、记录集关联等组件的使用场景,掌握从原始明细数据到多维度统计报表的加工流程,理解数据清洗、分层汇总的核心思路。
- 巩固 SQL 编程能力:结合业务需求编写建表、数据查询、聚合统计 SQL 语句,掌握分组查询、子查询、字段计算、行列转换等常用 SQL 技巧,理解数据库表设计与业务指标的对应关系。
- 熟悉数据大屏搭建流程:掌握数据大屏的布局规划、图表选型、样式美化原则,能够根据不同业务指标匹配柱状图、饼图、折线图、指标卡等合适的可视化组件,提升数据可视化呈现能力。
- 理解蓝图编辑器逻辑:学习了大屏触发器、动作节点、SQL 请求、并行处理等交互逻辑,掌握前端可视化组件与后端数据库的数据对接方式,理解 “数据加工 - 数据源配置 - 组件绑定 - 动态渲染” 的完整数据流。
附录:图片链接
更多推荐



所有评论(0)