助睿实验作业5-浏览器市场与用户画像分析-数据加工+市场分析数据大屏制作


助睿实验作业5-浏览器市场与用户画像分析-数据加工+市场分析数据大屏制作

一、实验背景:

1.1 实验目的

浏览器市场与用户画像分析-数据加工:

本实验基于“用户-日-浏览器-小时”明细表,完成数据大屏所需的各项统计表加工,包括:

浏览器市场格局统计(覆盖率、使用时长)

浏览器周活跃趋势统计

浏览器使用频率分布统计

用户浏览器使用数量分布统计

浏览器工作日与周末使用对比统计

用户画像统计(性别、年龄、学历、职业、收入、居住地类型、省份分布)

浏览器市场分析-大屏静态布局制作:

本实验基于上两个实验《浏览器市场与用户画像分析-数据加工》产出的各项统计表,使用助睿Max 数据大屏制作浏览器市场行为分析大屏。

通过本实验,学生应掌握:

根据业务问题设计大屏布局与图表选型

将已加工的聚合表接入可视化工具

生成可交互的数据大屏,并提炼业务结论

浏览器市场分析-大屏数据接入:

本实验基于上一实验《浏览器市场分析-数据大屏静态布局制作》完成的大屏布局,使用助睿Max的蓝图编辑器,将之前实验加工好的数据表接入到大屏的各个图表组件中,使图表能够动态展示真实数据。

通过本实验,学生应掌握:

理解蓝图编辑器的基本概念(数据源、触发器、动作)

创建数据库数据源连接

为图表组件编写SQL查询语句

将查询结果绑定到图表组件

1.2 实验环境

实验平台:助睿在线实验平台 https://lab.guilian.cn/ 本次实验使用助睿数智(Uniplore)作为一站式数据科学平台。该平台覆盖从数据接入、ETL处理、机器学习建模到可视化展示的全链路零代码功能,适用于数据分析教学与企业数据加工场景。

助睿数智官网为 https://www.uniplore.com/

数据处理:助睿 ETL 数据集成平台

建模平台:助睿 AI 人工智能平台

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

数据来源:团队私有数据库(MySQL)

1.3 实验数据

本实验基于上个实验《浏览器用户行为分析与流失预测-数据加工》产出的数据,以及原始数据 demographic 用户属性表。

上个实验已输出的数据:

daily_browser_detail:用户-日-浏览器-小时明细表

browser_coverage:浏览器市场覆盖率统计表

browser_hourly:浏览器时段活跃统计表

使用上一实验加工完成的大屏一目标表,共6张表:

表名
用途
关联图表
browser_coverage
浏览器市场覆盖率统计
指标卡、柱状图、饼图
browser_hourly
浏览器时段活跃统计
24小时活跃分布折线图
browser_weekly_active
各浏览器周活跃趋势
周活跃趋势折线图
browser_frequency_stats
浏览器使用频率分布
使用频率堆叠柱状图
browser_multi_usage
用户浏览器使用数量分布
浏览器使用数量饼图
browser_weekday_weekend
浏览器工作日周末对比
工作日vs周末分组柱状图

二、实验步骤:

(一)浏览器市场与用户画像分析-数据加工:

2.1 准备用户_日_浏览器_小时明细表

上个实验中的“互联网用户行为日志数据清洗抽取”转换流已经包含了生成明细数据的完整逻辑,但只输出了分支A和B(browser_coverage 和 browser_hourly)。我们需要将其复制一份,改为输出明细表,作为本实验后续加工的基础。

2.1.1 创建用户日_浏览器_小时明细表

首先,我们先在团队私有数据库中创建用于存放 用户-日-浏览器-小时 明细表的数据表

打开上个实验创建的项目“互联网用户行为日志”

新建转换流“创建用户_日_浏览器_小时明细表”,拖入“执行一个SQL脚本”组件

双击“执行一个SQL脚本”组件,数据库连接选择“团队私有数据库”,并输入以下SQL:

CREATE TABLE IF NOT EXISTS `daily_browser_detail` (    `user_id` VARCHAR(50NOT NULL COMMENT '用户ID',    `usage_date` DATE NOT NULL COMMENT '使用日期',    `browser_name` VARCHAR(50NOT 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='用户_日_浏览器_小时明细表';

点击“运行”按钮,执行转换流

2.1.2 复制转换流

在上个实验的项目中,找到“互联网用户行为日志数据清洗抽取”转换流,右键选择“复制”

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

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

这里注意:上个实验中“排序记录 1”组件仅按照 process_name 升序排序,而分组组件的分组字段是:user_id、usage_date、process_name、hour,所以,需要在“输出用户日浏览器小时明细表”转换流里更正“排序记录 1”组件的排序字段与分组组件的分组字段一致,否则会出现多条重复数据

2.1.3 浏览器名称映射

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

值映射组件按照以下添加映射

进程名
说明
iexplore.exe
IE浏览器
360chrome.exe
360极速
360se.exe
360se
chrome.exe
Google
sogouexplorer.exe
搜狗
QQBrowser.exe
QQ浏览器

这里需要注意:上个实验的“2.5.3 过滤记录:筛选进程为主要浏览器的数据”步骤中

如果匹配条件是 process_name IN LIST “iexplore.exe;360chrome.exe;360se.exe;chrome.exe;sogouexplorer.exe;QQBrowser.exe”,则继续下一步骤

如果匹配条件与以上不同,则删除匹配值中的EXCEL.EXE、WINWORD.EXE、AlilM.exe,因为这3个不是浏览器

另外,转换流中的分组组件中聚合字段的聚合类型是“个数”的,需要改成“统计不同值的数量(N)”,并在分支A的“分组 1”组件前添加排序记录组件,按 process_name 升序排序

2.1.4 添加表输出组件

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

双击“表输出”组件,配置如下:

数据库连接:选择“团队私有数据库”

目标表:daily_browser_detail

勾选“裁剪表”,清空原有数据

勾选“指定数据库字段”,建立字段映射

2.1.5 执行转换流

点击“运行”按钮,执行转换流

2.2 创建目标数据表

在团队私有数据库中创建本实验需要输出的目标表

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

双击“执行一个SQL脚本”组件,数据库连接选择“团队私有数据库”,并输入以下SQL,使用DROP TABLE可以避免需要重新建表时语句报错:

– 1. 核心指标概览表

DROP TABLE IF EXISTS `browser_overview`;CREATE TABLE `browser_overview` (    `metric_name` VARCHAR(50NOT NULL COMMENT '指标名称',    `metric_value` DECIMAL(12,2NOT NULL COMMENT '指标值') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='核心指标概览表';

– 2. 各浏览器周活跃趋势表

DROP TABLE IF EXISTS browser_weekly_active;CREATE TABLE `browser_weekly_active` (    `browser_name` VARCHAR(50NOT NULL COMMENT '浏览器名称',    `week_range` VARCHAR(20NOT 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(50NOT NULL COMMENT '浏览器名称',    `usage_level` VARCHAR(10NOT 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(10NOT NULL COMMENT '使用浏览器数量',    `user_count` DECIMAL(5,2NOT NULL COMMENT '用户数量') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户使用浏览器数量分布表';

– 5. 浏览器工作日周末对比表

DROP TABLE IF EXISTS browser_weekday_weekend;CREATE TABLE `browser_weekday_weekend` (    `browser_name` VARCHAR(50NOT NULL COMMENT '浏览器名称',    `day_type` VARCHAR(10NOT 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(50NOT 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.3 各浏览器周活跃趋势表数据抽取执行

目标:统计每个浏览器在第1-4周的每周活跃用户数

新建转换流“各浏览器周活跃趋势表数据抽取”,拖拽“表输入”组件画布中,数据库连接选择“团队私有数据库”,点击“获取SQL查询语句”,选择 daily_browser_detail 获取所有查询语句

这里我们需要将每个浏览器的使用日期转为周:5/7-5/13、6/4-6/10、7/2-7/8、8/6-8/12,可以使用值映射组件完成,但是在此之前,需要使用字段选择组件对usage_date进行格式转换。

拖拽字段选择组件到画布中,创建表输入组件到字段选择组件的连线

双击字段选择组件,点击“元数据”,右键插入,输入字段名称usage_date,类型为Date,格式为“yyyy-MM-dd”

再拖拽值映射组件,字段选择组件连接值映射组件

双击值映射组件,使用的字段名选择“usage_date”,目标字段名(空=覆盖)输入“week_range”,表示创建新字段week_range用来存储映射结果,接下来就插入行,将每个日期映射为对应的周区间

接下来我们按各浏览器、周分组统计用户数,分组之前需要对数据进行排序,避免统计结果出错。拖拽排序记录组件到画布中,创建值映射组件到排序记录组件的连线

排序记录组件设置为按照browser_name、week_range 升序排序

排序后拖拽分组组件,排序记录组件连接到分组组件

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

最后拖入表输出组件,将分组聚合结果入库,表输出组件配置为:

数据库连接:选择“团队私有数据库”

目标表:browser_weekly_active

勾选“裁剪表”,清空原有数据

勾选“指定数据库字段”,建立字段映射

获取数据库字段

执行转换流:

2.4 各浏览器使用频率分布表数据抽取

目标:按轻/中/重度划分用户使用频率

新建转换流“使用频率分布数据抽取”,拖拽“表输入”组件画布中,数据库连接选择“团队私有数据库”,点击“获取SQL查询语句”,选择 daily_browser_detail 获取所有查询语句

接下来,我们统计每个用户使用各浏览器的使用时长,拖拽排序记录组件到画布中,创建表输入组件到排序记录组件的连线

排序记录组件设置为按照 user_id、browser_name 升序排序

排序后拖拽分组组件,排序记录组件连接到分组组件

分组组件的分组字段为 user_id、browser_name,总使用时长 = 每天总使用时长 total_duration_sec 求和

这样计算的总时长单位是秒,我们将其转换为小时更直观,小时 = 秒 ÷ 3600,由于我们的数据中没有3600这个字段,所以需要先增加这个常量字段。拖拽增加常量组件到画布中,分组组件连接到增加常量组件

增加常量组件配置中增加新字段“hour_m_s”,将其类型设置为 Integer ,并且值固定为 3600,如下

接下来,拖入计算器组件

通过计算器,计算小时,新增使用时长单位为小时的字段“total_hours”,计算公式为“A / B”,字段A为“total_seconds”,字段B为“hour_m_s”,保留2位小数

接下来,我们为使用频率划分等级。拖入JavaScript代码组件,计算器组件连接到JavaScript代码组件

双击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这个字段我们需要在之前的增加常量组件中新增:

接下来,我们就可以统计每个浏览器的各使用等级的用户数了

同样的,先拖入排序记录组件,将数据按照 browser_name、usage_level 升序排序

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

最后拖入表输出组件,将分组聚合结果入库,表输出组件配置为:

数据库连接:选择“团队私有数据库”

目标表:browser_frequency_stats

勾选“裁剪表”,清空原有数据

勾选“指定数据库字段”,建立字段映射

执行转换流:

2.5 各浏览器使用数量分布表数据抽取

目标:统计用户使用1种、2种、3种及以上浏览器的用户数

新建转换流“浏览器使用数量分布数据抽取”,拖拽“表输入”组件画布中,数据库连接选择“团队私有数据库”,点击“获取SQL查询语句”,选择 daily_browser_detail 获取所有查询语句

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

排序记录组件设置为按照 user_id 升序排序

排序后拖拽分组组件,排序记录组件连接到分组组件

分组组件的分组字段为 user_id,使用浏览种类数量 = 浏览器名称去重计数

接下来,我们划分浏览器数量等级。拖入JavaScript代码组件,计算器组件连接到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.6 各浏览器工作日周末对比表数据抽取

目标:统计各浏览器工作日周末使用时长对比

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

接下来,根据使用日期获取星期几,拖拽JavaScript代码组件到画布中,表输入组件连接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_name、 day_type 分组

聚合:

avg_seconds= 平均使用时长(秒)

total_seconds = 总使用时长(秒)

user_count = COUNT(DISTINCT user_id)

平均使用时长单位是秒的数值不会太大,是比较好观察,但是总使用时长的单位是秒的话数值很大,不够直观,所以将其转为小时,参考“2.4 各浏览器使用频率分布表数据抽取”种计算小时的方法,使用增加常量组件和计算器组件来实现

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

最后拖入表输出组件,将分组聚合结果入库,表输出组件配置为:

数据库连接:选择“团队私有数据库”

目标表:browser_weekday_weekend

勾选“裁剪表”,清空原有数据

勾选“指定数据库字段”,建立字段映射

执行转换流:

2.7 核心指标数据抽取

目标:将大屏顶部四个指标卡的数据存入一张通用的键值对表中

在以上数据抽取中,我们已经获取了各浏览器的用户数、使用时长、活跃用户数、重度用户数,但我们设计的核心指标是全局数据,除了使用时长,其他用户数相关的数据在不同浏览器之间是存在重叠的,所以需要重新计算。

用一个表输入组件,直接SQL一次性算出所有指标,然后通过列转行将一行转为四行

新建转换流“核心指标数据抽取”,拖入表输入组件,数据库连接团队私有数据库,在SQL语句框中输入以下SQL:

SELECT     ROUND(SUM(total_duration_sec) / 36002AS total_hours,    ROUND(SUM(total_duration_sec) / 3600 / COUNT(DISTINCT user_id), 2AS 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_ratioFROM 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.8 用户画像表加工

目标:统计每个浏览器按性别、年龄、学历、职业、收入、居住地类型的用户分布

2.8.1 获取人口属性信息表

用户画像表需要用户的属性信息,行为日志的数据中仅包含行为数据,缺少用户属性数据,因此需要获取数据集中的人口属性信息表 demographic.csv,行为日志数据与人口属性数据通过用户ID关联

本次实验已经将 demographic.csv 预先存放在实验平台的公共空间数据资源中,可以直接导出到我们的项目文件目库中

点击“公共空间”,点击tab选项“数据资源”,可以看到 demographic.csv

点击 demographic.csv 卡片右上角的“更多” – “导出”,选择导出到的目录,例如根目录,最后点击“确定”

刷新文件库的根目录,即可看到 demographic.csv

2.8.2 CSV文件输入:读取人口属性数据

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

双击“CSV文件输入”组件,点击“浏览文件”按钮,在弹出的窗口中选择 demographic.csv,然后点击“确定”

列分隔符和封闭符保持不变,编码选择“UTF-8”

往下滑一点,在空白表格处右键点击“获取字段”,字段获取成功后点击“确认”

2.8.3 年龄分段

原人口属性数据中没有年龄字段,但是有出生年份,因此我们可以通过计算获取用户的年龄属性

首先我们拖入增加常量组件,增加常量字段“year”,值设为“2012”(数据是2012年的)

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

接下来我们将年龄划分为四段:<18、18-25、26-35、>35

拖入JavaScript代码组件,计算器组件连接到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';}
2.8.4 表输入:读取用户_日_浏览器_小时明细数据

拖入“表输入”组件到画布中,双击“表输入”组件,数据库连接选择“团队私有数据库”,点击“获取SQL查询语句”

在弹出的窗口中,选择用户_日_浏览器_小时明细表 daily_browser_detail,系统提示选择“确认”,获取SQL查询语句后点击“确认”

2.8.5 关联用户属性

记录集连接组件可以将两个表进行连接,就是数据库中的join操作。数据连接时注意两个连接的数据集是否存在同一个字段。

“记录集连接”组件之前需要先对数据进行排序,否则可能出错

我们先拖拽2个“排序记录”组件到画布中,分别创建“表输入”组件到“排序记录 1”组件的连线、“CSV文件输入”组件到“排序记录”组件的连线,其中“CSV文件输入”组件到“排序记录”组件的连线类型选择“主输出步骤”

双击“排序记录 1”组件,命名为“明细数据按用户ID排序”,在空白表格处右键点击“获取字段”

仅保留“user_id”,其他字段选中后右键点击“删除选中的行”,设置 user_id 升序排序后点击“确认”

同样的双击“排序记录”组件,命名为“用户属性数据按用户ID排序”,设置按 USERID 升序排序

接下来,两个数据就可以通过记录集连接组件来关联了,拖拽“记录集连接”组件到画布中,2个排序记录组件分别连接到记录集连接组件,因为数据已经排序了,右上角的提示可以忽略

双击“记录集连接”组件,第一个Transform选择“明细数据按用户ID排序”,第二个Transform选择“用户属性数据按用户ID排序”,连接类型选择“LEFT OUTER”

分别点击两个“获得连接字段”按钮,获取2个数据的字段,2个数据是通过用户ID关联的,所以第一个Transform的连接字段保留“user_id”,第二个Transform的连接字段保留“USERID”,其他字段通过删除选中的行来删除

2.8.6 统计用户数

分组统计之前,需要先对数据进行排序,拖入排序记录组件,记录集连接组件连接到排序记录组件,按照等下分组聚合的分组字段升序排序,即: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))

2.8.7 表输出

拖入表输出组件,将分组聚合结果入库,表输出组件配置为:

数据库连接:选择“团队私有数据库”

目标表:user_profile_stats

勾选“裁剪表”,清空原有数据

勾选“指定数据库字段”,建立字段映射(注意表字段选择对应的)

2.8.8 执行转换流

点击“运行”按钮

2.8.9 查看结果数据

点击“元数据”tab选项,右键团队私有数据库,点击“加载元数据”

点击“数据探查”,查看以上生成的目标表是否符合预期

(二)浏览器市场分析-大屏静态布局制作:

点击实验平台左侧菜单“数据大屏”

进入子平台——助睿数据大屏可视化平台

助睿数据大屏可视化是一款通过图形化界面轻松搭建专业可视化应用的产品,适用于会议展览、业务监控、风险预警、地理分析等场景。相比传统图表,它以更生动友好的形式即时呈现数据背后的业务洞察,广泛应用于零售、物流、电力、环保、交通等领域。其核心能力包括:丰富的基础组件库、地理信息可视化(轨迹/飞线/热力等)、支持多种数据源(含CSV)、拖拽式搭建无需编程,以及低代码蓝图编辑器(满足开发者的高级控制与数据处理需求)。

2.1 创建数据大屏

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

在模板选择中点击“空白模板”,点击后会出现大屏名称输入框

我们输入“市场分析”,然后点击下一步,自动跳转到“市场分析”大屏的制作界面

2.2 设置大屏样式

2.2.1 背景设置

想修改设置助睿数据大屏的背景,可以通过修改背景图片来完成,本次数据大屏的背景图片链接为:

https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/practice/browser-analysis/banner01.png

进入大屏编辑页面后,可以看到右边的页面设置栏,屏幕大小默认为1920×1080,可以根据最终展示的屏幕大小来修改。 将以上背景图片链接复制后粘贴到“背景图片”后的文本框中,覆盖原图片链接

其他设置可以保持默认

2.2.2 标题设置

大屏的标题可以通过组件自己设计,也可以自行设计一个图片来实现。本次实验我们预先设计好了标题图, 链接:https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/practice/browser-analysis/banner01.png

大屏左边是组件列表,提供丰富的组件,包括图表、文字、地图、媒体素材、交互等,在这里,我们的标题图片需要图片组件类承载。

点击“媒体”组件分类,点击“单张图片”组件,大屏画布中自动出现图片组件

为了方便管理,右键组件,点击“重命名”

输入“标题banner”

选中这个“标题banner”图片组件,右边是它的设置栏

点开“基础属性”,可以设置长宽、位置等属性,我们设置如下:

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

这样标题banner就设置好了,我们点击“保存”

保存后点击“预览”,可以随时查看效果

2.2.3 导航设置

因为我们有两个大屏,所以可以设置导航做大屏间的跳转

同样的,点击“单张图片”组件,重命名为“市场分析按钮背景”

除了直接设置属性值,也可以通过拖拽和缩放来设置组件的大小和位置

不过微调还是使用属性值比较好,导航按钮的背景图片链接为: https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/comprehensive-data/navigation-bg-1.png 粘贴到基础设置的背景图链接中

按钮上的文字我们使用“通用标题”来实现,点击文字分类下的“通用标题”,重命名为“市场分析”

修改“市场分析”通用标题组件的基础属性,和“市场分析按钮背景”图片组件一样

点开基本设置,修改标题名为“市场分析”

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

点开文本样式,可以设置字体、字号、颜色和粗细

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

复制的图片组件重命名为“用户画像按钮背景”,通用标题组件重命名为“用户画像”

现在,只需修改“用户画像按钮背景”和“用户画像”组件的横坐标,如下:

复制后的组件可能会不显示,刷新数据即可

将用户画像标题组件的内容改为“用户画像”,颜色和粗细也做相应修改(因为当前大屏的市场分析大屏,对应按钮为选中效果,其他为未选中效果)

保存预览一下

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

这个组命名为“顶部”

2.3 设置内容布局与样式

接下来,我们先根据大屏布局草图将各图表进行排版

根据参考图,每个图表区域包含以下内容:

区域背景:使用单张图片组件

标题背景:使用单张图片组件

标题:使用通用标题组件

图表:使用具体图表组件

2.3.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

调整好位置和大小,粘贴背景图链接即可

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

按照“实验数据”中的内容,展示6个浏览器用户数的图表是柱状图,我们点击“基础柱状图”组件

实验数据:

模块 子模块 指标项 组件 关联数据表 备注
数据概览
浏览器市场
总使用时长
指标卡
browser_coverage
所有用户累计使用时长(小时)
人均使用时长
指标卡
browser_coverage
总使用时长 / 覆盖用户数(小时/周)
活跃用户占比
指标卡
browser_coverage
周活跃用户数 / 覆盖用户数
重度用户占比
指标卡
browser_frequency_stats
使用时长>10小时/周的用户占比
市场格局
用户规模
用户数
柱状图
browser_coverage
展示6个浏览器用户数
使用规模
使用时长
饼图
browser_coverage
展示各浏览器使用时长占比
使用粘性
人均使用时长
柱状图
browser_coverage
用户行为
时间趋势
周活跃趋势
折线图
browser_weekly_active
展示第1-4周各浏览器活跃用户数变化
使用习惯
使用频率分布
堆叠柱状图
browser_frequency_stats
轻/中/重度用户在各浏览器的占比
时段偏好
全天时段
24小时活跃分布
折线图
browser_hourly
X轴小时,Y轴活跃用户数,不同颜色代表不同浏览器
周内对比
工作日vs周末
分组柱状图
daily_browser_detail
对比工作日和周末的使用时长
竞争关系
使用数量
浏览器使用数量分布
饼图
browser_multi_usage
用户使用1种/2种/3种及以上浏览器的比例

重命名为“浏览器用户数柱状图”,调整大小和位置

图表的图例默认隐藏,我们将其设置为可见,并调整水平对齐方式为居中

这时候我们会发现,柱子和图例的距离过小,影响美观,我们可以点开“全局样式”来调整

将柱子上边距调大即可

其他样式,大家可以自行设置

将本小节增加的组件设置成组,命名为“浏览器用户数”

保存预览:

2.3.2 使用规模-浏览器使用时长占比

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

参考布局草图,拖拽“浏览器使用时长”组到合适位置,复制的组件内容可能会不显示,重新刷新数据即可

将标题名修改为“浏览器使用时长”,并刷新数据

浏览器使用时长占比图表类型为饼图,我们删除复制的柱状图,重新添加饼图。助睿数据大屏提供多样不同样式的饼图,可根据需求选择,这里我们选择“多维度饼图”,调整位置大小,重命名为“浏览器使用时长占比”

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

将标签类目设置为可见

接下来我们可以设置每个浏览器在饼图中的颜色,点开“数据系列”,系列及代表分类,也就是浏览器,刚好数据中有6个浏览器,将系列1-6的颜色设置为不同的颜色即可,色值参考:

#2177FC、#3DC3DF、#FF948B、#8A79FE、#82F9A5、#97DFFF 将饼图组件拖到“浏览器使用时长”组中,并及时保存

2.3.3 使用粘性-浏览器人均使用时长

复制2.3.1小节制作的“浏览器用户数”组,重命名为“浏览器人均使用时长”

参考布局草图,拖拽“浏览器使用时长”组到合适位置,复制的组件内容可能会不显示,重新刷新数据即可

将标题名修改为“浏览器人均使用时长”,并刷新数据

浏览器人均使用时长图表类型为柱状图,因此无需修改图表类型,将复制的柱状图重命名为“人均使用时长柱状图”即可

2.3.4 指标区

复制2.3.1小节制作的“浏览器用户数”组,重命名为“数据概览”

参考布局草图,拖拽“浏览器使用时长”组到合适位置,调整组件的大小,并刷新数据

可以看到标题背景被拉伸了,因为我们使用的是短的标题背景图,现在需要换成长的标题背景图: 将标题名修改为“数据概览”,并刷新数据

删除复制的柱状图,大屏中的指标卡是通过文字类组件实现的,我们使用数据翻牌器来展示指标,而单独一个指标看上去有点单调,可以添加一些装饰元素。

首先,添加“单张图片”组件,重命名为“图标”,背景图添加链接:

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.3.5 时段偏好-周内对比

复制2.3.1小节制作的“浏览器用户数”组,重命名为“周内对比”,参考布局草图,拖拽“周内对比”组到合适位置

刷新复制的组件数据,并将标题背景图更换为长标题背景图,标题内容修改为“工作日vs周末使用时长”

将柱状图删除,重新添加“分组柱状图”,命名为“工作日vs周末使用时长分组柱状图”,并调整大小,位置如下:

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

其他样式调整参考如下:

效果:

2.3.6 时段偏好-24小时活跃分布

复制上一小节制作的“周内对比”组,重命名为“24小时活跃分布”,参考布局草图,拖拽“24小时活跃分布”组到合适位置

复制的组件内容可能会不显示,重新刷新数据即可,将标题名修改为“24小时活跃用户数分布”,并刷新数据

删除复制的分组柱状图,添加区域图,并调整好大小、位置

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

效果:

2.3.7 周活跃趋势-浏览器周活跃用户数变化

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

2.3.8 使用习惯-使用频率分布

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

2.3.9 竞争关系-浏览器使用数量分布

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

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

保存大屏,最终预览效果如下:

至此,市场分析大屏的静态布局已完成,下一实验我们将使用蓝图编辑器,完成数据接入。

(三)浏览器市场分析-大屏数据接入:

2.1 创建数据库数据源

首先,我们需要创建链接团队私有数据库的数据源,进入数据大屏平台后,点击“我的数据”,点击“+新建” – “新建数据源”

输出团队私有数据库的信息后,点击“立即添加”

切换tab选项再切回我的数据后可以看见新添加的团队私有数据库

2.2 组件导出到蓝图编辑器

只有当组件导入到蓝图编辑器后,才可以为该组件配置交互。

打开上一实验制作的“市场分析”数据大屏

在画布编辑器内,右键单击左侧图层栏或中间画布区的组件,选择导出到蓝图编辑器,即可将对应组件导出到蓝图编辑器中。

同样的,依次把所有需要接入数据的组件导出到蓝图编辑器中

导出成功后,单击“蓝图编辑器”图标切换到蓝图编辑器页面,可在导入节点列表中查看对应的节点。列表内所有节点都可供后续配置交互使用。

2.3 添加全局节点

在蓝图编辑器里,在逻辑 节点面板中,将需要使用的逻辑节点单击拖入中间画布中。 逻辑节点包括了全局节点、数据处理 类节点、流程控制类节点以及输入设备类节点。

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

2.4 为市场格局3个图表配置数据

2.4.1 添加SQL请求节点

从逻辑节点面板中,点击“SQL请求”节点,并将全局节点的“页面初始化完成”输出接口连接到“SQL 请求”节点的“执行SQL”输入接口

点击“SQL 请求”节点,在配置面板中,数据源选择“团队私有数据库”,SQL类型为“查询”,处理方法的代码框中,输入以下SQL,一次性查询来源为 browser_coverage 的数据:

let sql = `    select     browser_name as x,     user_count as y1,     round(total_duration_sec/3600,0as y2,     round((total_duration_sec/3600)/user_count,1as y3     from labs.browser_coverage     order by browser_name`return sql

注意:SQL语句将labs改为本组对应的数据库,后面的步骤全部同理

2.4.2 并行数据处理

在蓝图编辑器中,可以通过并行数据处理节点将同一个SQL查询的结果分发到多个图表,每个图表提取自己需要的字段。以下是具体配置方法:

添加并行数据处理组件,并在其处理方法中再增加2个处理方法,一共3个处理方法,分别命名为:各浏览器用户数、各浏览器总使用时长、各浏览器人均使用时长

SQL请求节点的执行成功输出接口分别连接到并行数据处理的3个处理方法接口,如下:

接下来根据每个图表的数据接口映射格式处理查询到的数据,在画布编辑器界面,选择图表,可以在数据tab选项中查看数据接口映射:

根据查询结果,三个图表需要的字段

浏览器用户数柱状图: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: ‘人均时长(小时)’ }));

2.4.3 添加图表节点

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

点击保存,我们可以预览一下数据情况是否符合预期

可以看到,数据已经更新为数据库中的数据了

预览出现下图情况

可以按照以下配置 可以调整一下,实现类似的以下效果:

2.5 为指标区域图表配置数据

2.5.1 添加SQL请求节点

从逻辑节点面板中,点击“SQL请求”节点,并将全局节点的“页面初始化完成”输出接口连接到“SQL 请求”节点的“执行SQL”输入接口

点击“SQL 请求”节点,在配置面板中,数据源选择“团队私有数据库”,SQL类型为“查询”,处理方法的代码框中,输入以下SQL,一次性查询来源为 browser_overview 的数据:

let sql = `select metric_name, metric_value from labs.browser_overview `return sql

该查询返回一个数组,格式如下:

[  {"metric_name": "总使用时长", "metric_value": 456800.00},  {"metric_name": "人均使用时长", "metric_value": 8.20},  {"metric_name": "活跃用户占比", "metric_value": 71.30},  {"metric_name": "重度用户占比", "metric_value": 23.50}]
2.5.2 并行数据处理

添加并行数据处理组件,并在其处理方法中再增加3个处理方法,一共4个处理方法,分别命名为:总使用时长、人均使用时长、活跃用户占比、重度用户占比

SQL请求节点的执行成功输出接口分别连接到并行数据处理的4个处理方法接口,如下:

接下来根据数字翻牌器的数据接口映射格式处理查询到的数据,在画布编辑器界面,选择数字翻牌器,可以在数据tab选项中查看数据接口映射:

其中,name 字段我们已经在数据翻牌器中设置好了,现在只需处理 value 字段的映射关系根据查询结果:

总使用时长

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 }];

每个分支的输出格式为 [{ value: xxx }],指标卡组件直接读取 value 字段显示数值。指标名称已预先配置在指标卡组件的标题中

2.5.3 添加图表节点

点击4个数字翻牌器组件的节点,将它们添加到画布中,再将并行数据处理的4个处理方法的输出接口连接到对应的图表的“导入数据接口”,如下:

点击保存,预览数据是否符合预期

2.6 为工作日vs周末使用时长图表配置数据

2.6.1 添加SQL请求节点

参考以上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
2.6.2 添加图表节点

点击工作日vs周末使用时长节点,将它添加到画布中,再SQL请求节点的执行成功输出接口连接到“导入数据接口”,如下:

点击保存,预览数据是否符合预期

2.7 为24小时活跃用户分布图表配置数据

2.7.1 添加SQL请求节点

参考以上SQL请求节点的配置步骤,完成SQL请求节点配置,查询代码如下:

let sql = `    select hour as x,    active_user_count as y,    browser_name as sfrom labs.browser_hourlyorder by browser_name, hour`return sql
2.7.2 添加图表节点

点击24小时活跃用户分布节点,将它添加到画布中,再SQL请求节点的执行成功输出接口连接到“导入数据接口”,如下:

点击保存,预览数据是否符合预期

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

设置完成后,效果如下:

2.8 为活跃用户周变化图表配置数据

2.8.1 添加SQL请求节点

参考以上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
2.8.2 添加图表节点

点击活跃用户周变化节点,将它添加到画布中,再SQL请求节点的执行成功输出接口连接到“导入数据接口”,如下:

点击保存,预览数据是否符合预期

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

设置完成后,效果如下:

2.9 为使用频率分布图表配置数据

2.9.1 添加SQL请求节点

参考以上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
2.9.2 添加图表节点

点击使用频率分布节点,将它添加到画布中,再SQL请求节点的执行成功输出接口连接到“导入数据接口”,如下:

点击保存,预览数据是否符合预期

2.10 为浏览器使用数量分布图表配置数据

2.10.1 添加SQL请求节点

参考以上SQL请求节点的配置步骤,完成SQL请求节点配置,查询代码如下:

let sql = `  select       browser_count as name,       user_count as value   from labs.browser_multi_usage   order by browser_count`return sql
2.10.2 添加图表节点

点击浏览器使用数量分布节点,将它添加到画布中,再SQL请求节点的执行成功输出接口连接到“导入数据接口”,如下:

点击保存,预览数据是否符合预期

2.11 预览并发布

组件的样式和数据都配置完成后,可以预览并发布可视化应用,实现应用的在线播放和演示。

单击大屏页面右上角的预览图标,预览可视化应用。

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

在弹出的发布对话框中单击发布分享,单击分享链接右侧的复制按钮

打开浏览器,将复制的链接粘贴到地址栏中,即可在线观看

2012年浏览器市场分析大屏链接: http://47.109.66.142:30887/#/dataScreen/release?shareId=addd720cc05c467286c093fbf4752710

三、实验结果:

(一)浏览器市场与用户画像分析-数据加工:

(二)浏览器市场分析-大屏静态布局制作:

(三)浏览器市场分析-大屏数据接入:

四、问题与解决:

问题1:表输出报错“Unknown column ‘ISCITY’ in ‘field list’”。 解决:在“表输出”前增加“字段选择”步骤,移除流中多余的ISCITY字段,或检查数据库表结构添加该列。

问题2:表输出报错“Column ‘week_range’ cannot be null”。 解决:值映射组件中未覆盖全部日期,导致week_range为NULL。补全四个周区间(5/7-5/13、6/4-6/10、7/2-7/8、8/6-8/12)内所有日期的映射,使每个日期都有对应的周区间字符串,避免NULL值。

问题3:在做大屏数据接入时预览图表发现数据不对应 解决:没有连接团队私有数据库,在写入SQL请求处理方法的语句时,要注意把数据库名称改为本团队的

五、实验总结:

本实验围绕浏览器市场与用户画像分析,完成了从明细数据加工到可视化大屏的完整流程。在数据加工阶段,主要基于“用户-日-浏览器-小时”明细表,加工了浏览器市场格局、周活跃趋势、使用频率分布、用户浏览器使用数量分布、工作日与周末对比以及用户画像(性别、年龄、学历、职业、收入、居住地类型、省份分布)等多张统计表。通过数据加工,掌握了ETL中的字段映射、值转换、分组聚合等关键操作。在大屏静态布局制作中,根据业务需求设计了合理的图表选型与布局,并学会了将聚合表接入助睿Max大屏工具。最后通过蓝图编辑器配置数据源、编写SQL查询并绑定图表组件,实现了动态交互大屏。整个过程加深了对数据加工链路的理解,提升了解决实际数据工程问题的能力。

#助睿数智#商业数据分析