标签:# 助睿数智 #商业数据分析 #数据可视化 #ETL 数据加工 #数据大屏

一、实验背景

1.1 实验目的

本次实验通过完整的数据分析全流程,基于 1000 个用户的 800 万 + 条浏览器行为记录,完成从原始数据清洗加工到最终可视化大屏展示的全部工作。通过本次实验,我掌握了以下核心技能:

  • 掌握零代码 ETL 数据加工流程,能够根据业务需求设计合理的数据模型,将原始行为日志转换为可用于分析的聚合统计表

  • 学会从业务问题出发设计数据大屏的布局结构与图表选型,遵循 "先整体后局部、先趋势后细节" 的可视化设计原则

  • 掌握助睿 Max 蓝图编辑器的使用方法,实现数据库数据与可视化组件的动态绑定

  • 能够通过数据分析提炼有价值的业务洞察,回答浏览器市场格局、用户行为习惯、核心用户画像等关键业务问题

1.2 实验环境

  • 实验平台

    :助睿在线实验平台 https://lab.guilian.cn/

  • 数据处理平台

    :助睿数智(Uniplore)一站式数据科学平台,覆盖数据接入、ETL 处理、机器学习建模到可视化展示的全链路零代码功能

  • 可视化工具

    :助睿 Max(数据大屏)

  • 数据规模

    :1000 个用户,800 万 + 条行为记录,约 825MB

  • 数据库

    :MySQL 团队私有数据库

1.3 整体处理流程

本次实验分为三个核心阶段,形成完整的数据分析闭环:

  1. 数据加工阶段

    :从原始行为日志中清洗出用户 - 日 - 浏览器 - 小时明细表,再基于明细表生成市场分析和用户画像所需的 8 张聚合表

  2. 大屏布局阶段

    :根据业务问题设计大屏布局,使用助睿 Max 制作静态页面,完成背景、标题、导航和所有图表组件的排版

  3. 数据接入阶段

    :使用蓝图编辑器创建数据库连接,将加工好的数据表接入到大屏的各个组件,实现动态数据展示并发布

二、实验步骤

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

2.1.1 准备用户 - 日 - 浏览器 - 小时明细表

这是所有后续分析的基础表,记录了每个用户每天每个小时使用不同浏览器的时长和次数。

1. 创建数据表新建转换流 "创建用户_日_浏览器_小时明细表",添加 "执行一个 SQL 脚本" 组件,输入以下 SQL:

CREATETABLEIFNOTEXISTS`daily_browser_detail`(
`user_id`VARCHAR(50)NOTNULLCOMMENT'用户ID',
`usage_date`DATENOTNULLCOMMENT'使用日期',
`browser_name`VARCHAR(50)NOTNULLCOMMENT'浏览器名称',
`hour`TINYINTNOTNULLCOMMENT'小时',
`total_duration_sec`INTNOTNULLCOMMENT'总使用时长(秒)',
`active_count`INTNOTNULLCOMMENT'活跃次数'
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COMMENT='用户_日_浏览器_小时明细表';

执行转换流完成表创建。

2. 复制并修改转换流复制上个实验的 "互联网用户行为日志数据清洗抽取" 转换流,重命名为 "输出用户日浏览器小时明细表"。

  • 关键配置

    :将 "排序记录 1" 组件的排序字段修改为user_idusage_dateprocess_namehour,与分组组件的分组字段完全一致,避免产生重复数据

  • 将分组组件中聚合类型为 "个数" 的字段改为 "统计不同值的数量 (N)"

3. 浏览器名称映射在分组组件后添加 "值映射" 组件,将进程名映射为直观的浏览器名称:

源值

目标值

iexplore.exe

IE 浏览器

360chrome.exe

360 极速

360se.exe

360se

chrome.exe

Google

sogouexplorer.exe

搜狗

QQBrowser.exe

QQ 浏览器

同时修改 "过滤记录" 组件,只保留上述 6 个浏览器进程,删除 EXCEL.EXE 等非浏览器进程。

4. 添加表输出组件添加 "表输出" 组件,配置如下:

  • 数据库连接:团队私有数据库

  • 目标表:daily_browser_detail

  • 勾选 "裁剪表" 清空原有数据

  • 建立字段映射:process_name映射为browser_name执行转换流,生成基础明细表。

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

2.1.2 创建所有目标数据表

新建转换流 "创建浏览器大屏分析目标数据表",添加 "执行一个 SQL 脚本" 组件,输入以下 SQL 一次性创建所有需要的目标表:

-- 1. 核心指标概览表
DROPTABLEIFEXISTS`browser_overview`;
CREATETABLE`browser_overview`(
`metric_name`VARCHAR(50)NOTNULLCOMMENT'指标名称',
`metric_value`DECIMAL(12,2)NOTNULLCOMMENT'指标值'
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COMMENT='核心指标概览表';

-- 2. 各浏览器周活跃趋势表
DROPTABLEIFEXISTS browser_weekly_active;
CREATETABLE`browser_weekly_active`(
`browser_name`VARCHAR(50)NOTNULLCOMMENT'浏览器名称',
`week_range`VARCHAR(20)NOTNULLCOMMENT'周日期范围',
`active_user_count`INTNOTNULLCOMMENT'活跃用户数'
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COMMENT='各浏览器周活跃趋势表';

-- 3. 浏览器使用频率分布表
DROPTABLEIFEXISTS browser_frequency_stats;
CREATETABLE`browser_frequency_stats`(
`browser_name`VARCHAR(50)NOTNULLCOMMENT'浏览器名称',
`usage_level`VARCHAR(10)NOTNULLCOMMENT'使用等级',
`user_count`INTNOTNULLCOMMENT'用户数'
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COMMENT='浏览器使用频率分布表';

-- 4. 用户使用浏览器数量分布表
DROPTABLEIFEXISTS browser_multi_usage;
CREATETABLE`browser_multi_usage`(
`browser_count`VARCHAR(10)NOTNULLCOMMENT'使用浏览器数量',
`user_count`DECIMAL(5,2)NOTNULLCOMMENT'用户数量'
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COMMENT='用户使用浏览器数量分布表';

-- 5. 浏览器工作日周末对比表
DROPTABLEIFEXISTS browser_weekday_weekend;
CREATETABLE`browser_weekday_weekend`(
`browser_name`VARCHAR(50)NOTNULLCOMMENT'浏览器名称',
`day_type`VARCHAR(10)NOTNULLCOMMENT'工作日/周末',
`avg_duration_sec`INTNOTNULLCOMMENT'人均使用时长(秒)',
`total_duration_hour`BIGINTNOTNULLCOMMENT'总使用时长(小时)',
`user_count`INTNOTNULLCOMMENT'用户数'
)COMMENT='浏览器工作日周末对比表';

-- 6. 用户画像统计表
DROPTABLEIFEXISTS`user_profile_stats`;
CREATETABLE`user_profile_stats`(
`browser_name`VARCHAR(50)NOTNULLCOMMENT'浏览器名称',
`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`INTNOTNULLCOMMENT'用户数'
)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4 COMMENT='用户画像统计表';

执行转换流完成所有目标表的创建。

2.1.3 各浏览器周活跃趋势表数据抽取

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

  1. 添加 "表输入" 组件,读取daily_browser_detail表数据

  2. 添加 "字段选择" 组件,将usage_date字段类型转换为 Date,格式为 "yyyy-MM-dd"

  3. 添加 "值映射" 组件,将日期映射为对应的周区间(如 2012-08-08 映射为 "8/6-8/12")

  4. 添加 "排序记录" 组件,按browser_nameweek_range升序排序

  5. 添加 "分组" 组件,按browser_nameweek_range分组,对user_id进行去重计数得到active_user_count

  6. 添加 "表输出" 组件,将结果写入browser_weekly_active

执行转换流:

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

目标:按轻 / 中 / 重度划分用户使用频率(轻度 <3h / 周、中度 3-10h / 周、重度> 10h / 周)

  1. 新建转换流“使用频率分布数据抽取”,拖拽“表输入”组件画布中,添加 "表输入" 组件,读取daily_browser_detail表数据

  2. 添加 "排序记录" 组件,按user_idbrowser_name升序排序

  3. 添加 "分组" 组件,按user_idbrowser_name分组,计算总使用时长total_seconds

  4. 添加 "增加常量" 组件,增加常量hour_m_s=3600用于单位转换

  5. 添加 "计算器" 组件,计算总使用时长(小时):total_hours = total_seconds / hour_m_s

  6. 添加 "JavaScript 代码" 组件,根据总时长划分使用等级:

var total_hours = total_hours;
var usage_level ='';

if(total_hours <3){
    usage_level ='轻度';
}elseif(total_hours >=3&& total_hours <10){
    usage_level ='中度';
}else{
    usage_level ='重度';
}

添加 "排序记录" 组件,按browser_nameusage_level升序排序

  1. 添加 "分组" 组件,按browser_nameusage_level分组,统计各等级用户数

  2. 添加 "表输出" 组件,将结果写入browser_frequency_stats

执行转换流:

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

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

  1. 添加 "表输入" 组件,读取daily_browser_detail表数据

  2. 添加 "排序记录" 组件,按user_id升序排序

  3. 添加 "分组" 组件,按user_id分组,统计每个用户使用的浏览器种类数browser_cnt

  4. 添加 "JavaScript 代码" 组件,将种类数转换为分类:

var browser_cnt = browser_cnt;
var browser_count ='';

if(browser_cnt ==1){
    browser_count ='1种';
}elseif(browser_cnt ==2){
    browser_count ='2种';
}else{
    browser_count ='3种及以上';
}

添加 "排序记录" 组件,按browser_count升序排序

添加 "分组" 组件,按browser_count分组,统计各类用户数

  1. 添加 "表输出" 组件,将结果写入browser_multi_usage

执行转换流:

2.1.6 各浏览器工作日周末对比表数据抽取

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

  1. 添加 "表输入" 组件,读取daily_browser_detail表数据

  2. 添加 "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 ="周末";
}

  1. 添加 "排序记录" 组件,按browser_nameday_type升序排序

  2. 添加 "分组" 组件,按browser_nameday_type分组,计算:

    • 平均使用时长(秒)avg_seconds

    • 总使用时长(秒)total_seconds

    • 用户数user_count

  3. 添加 "增加常量" 和 "计算器" 组件,将总使用时长转换为小时

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

  1. 添加 "表输出" 组件,将结果写入browser_weekday_weekend

执行转换流:

2.1.7 核心指标概览表数据抽取

目标:计算大屏顶部的四个全局核心指标

  1. 添加 "表输入" 组件,使用 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(
(SELECTCOUNT(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(
(SELECTCOUNT(*)FROM(
SELECT user_id FROM daily_browser_detail 
WHERE usage_date BETWEEN'2012-05-07'AND'2012-07-08'
GROUPBY user_id
HAVINGSUM(total_duration_sec)/3600>30
) t)*100.0/COUNT(DISTINCT user_id),2
)AS heavy_ratio
FROM daily_browser_detail

  1. 添加 "行转列" 组件,将一行四列的结果转换为四行两列的键值对格式

  2. 字段名称

    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

  3. 添加 "值映射" 组件,将英文指标名映射为中文

  4. 添加 "表输出" 组件,将结果写入browser_overview

执行转换流即可

2.1.8 用户画像表加工

目标:统计每个浏览器按性别、年龄、学历等维度的用户分布

  1. 获取人口属性表

    :从公共空间导出demographic.csv文件到项目文件库

  2. CSV 文件输入

    :添加 "CSV 文件输入" 组件,读取demographic.csv文件,编码选择 UTF-8,获取所有字段

  1. 年龄分段计算:
    • 添加 "增加常量" 组件,增加常量year=2012(数据为 2012 年)

    • 添加 "计算器" 组件,计算年龄:age = year - BIRTHDAY

    • 添加 "JavaScript 代码" 组件,将年龄划分为四段:

    • var age_group ='';
      if(age <18){
          age_group ='<18';
      }elseif(age <=25){
          age_group ='18-25';
      }elseif(age <=35){
          age_group ='26-35';
      }else{
          age_group ='>35';
      }

  2. 关联用户属性与行为数据

    • 添加 "表输入" 组件,读取daily_browser_detail表数据

    • 添加两个 "排序记录" 组件,分别将行为数据按user_id排序,属性数据按USERID排序

    • 添加 "记录集连接" 组件,选择左外连接,通过user_idUSERID关联两个数据集

  3. 分组统计

    • 添加 "排序记录" 组件,按browser_nameGENDEREDUJOBINCOMEPROVINCEISCITYage_group升序排序

    • 添加 "分组" 组件,按上述字段分组,对user_id进行去重计数

  4. 表输出

    :添加 "表输出" 组件,将结果写入user_profile_stats

点击“运行”按钮

  1. 查看结果

    :在元数据中加载团队私有数据库,使用数据探查功能验证所有表的数据是否正确生成

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

2.2.1 创建空白数据大屏
  1. 进入助睿数据大屏平台,点击 "+ 新建"→"新建大屏"

  2. 选择 "空白模板",输入大屏名称 "市场分析",进入编辑界面

2.2.2 大屏基础样式设置
  1. 背景设置

    :在页面设置栏的 "背景图片" 中输入链接:https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/public-material/bg-2.png

  2. 标题设置

    • 添加 "单张图片" 组件,重命名为 "标题 banner"

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

    • 设置图片链接:https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/practice/browser-analysis/banner01.png

    • 调整大小和位置至顶部居中

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

  3. 导航设置

    • 添加 "单张图片" 组件作为导航背景,同样的,点击“单张图片”组件,重命名为“市场分析按钮背景”

    • 链接:https://gzu-edu-quality-max-studio.oss-cn-chengdu.aliyuncs.com/comprehensive-data/navigation-bg-1.png

    • 添加 "通用标题" 组件,输入 "市场分析",设置字体样式和颜色

    • 切换“数据”tab选项,点击“刷新数据”

    • 复制一组导航组件,修改为 "用户画像",调整横坐标位置

    • 将所有顶部组件成组,命名为 "顶部"

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

    • 添加 "通用标题" 组件,输入 "浏览器用户数"

    • 添加 "基础柱状图" 组件,重命名为 "浏览器用户数柱状图",调整大小和位置

    • 设置图例可见并居中对齐,调整柱子上边距

    • 将所有组件成组,命名为 "浏览器用户数"

  2. 浏览器使用时长(饼图)

    • 复制 "浏览器用户数" 组,重命名为 "浏览器使用时长"

    • 修改标题为 "浏览器使用时长"

    • 删除柱状图,添加 "多维度饼图" 组件

    • 取消外圈显示,将标签类目设置为可见

    • 设置 6 个浏览器的固定颜色:#2177FC、#3DC3DF、#FF948B、#8A79FE、#82F9A5、#97DFFF

  3. 浏览器人均使用时长(柱状图)

    • 复制 "浏览器用户数" 组,重命名为 "浏览器人均使用时长"

    • 修改标题为 "浏览器人均使用时长"

    • 将柱状图重命名为 "人均使用时长柱状图"

2.2.4 数据概览模块布局
  1. 复制 "浏览器用户数" 组,重命名为 "数据概览"

  2. 将短标题背景更换为长标题背景,修改标题为 "数据概览"

  3. 删除柱状图,添加四个指标卡:

    • 添加 "单张图片" 组件作为图标,链接: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.2.5 时段偏好模块布局
  1. 工作日 vs 周末使用时长(分组柱状图)

    • 复制 "浏览器用户数" 组,重命名为 "周内对比"

    • 将短标题背景更换为长标题背景,修改标题为 "工作日 vs 周末使用时长"

    • 删除柱状图,添加 "分组柱状图" 组件

    • 设置系列 2 的颜色为 #3DC3DF,调整图例样式

  1. 24 小时活跃用户数分布(区域图)

    • 复制 "周内对比" 组,重命名为 "24 小时活跃分布"

    • 修改标题为 "24 小时活跃用户数分布"

    • 删除分组柱状图,添加 "区域图" 组件

    • 设置折线颜色为 #29F1FA,调整平滑度和区域透明度

2.2.6 用户行为与竞争关系模块布局
  1. 浏览器周活跃用户数变化(折线图)

    • 复制 "浏览器用户数" 组,重命名为 "浏览器周活跃用户数变化"

    • 修改标题为 "浏览器周活跃用户数变化"

    • 删除柱状图,添加 "折线图" 组件

  2. 使用频率分布(堆叠柱状图)

    • 复制 "浏览器周活跃用户数变化" 组,重命名为 "使用频率分布"

    • 修改标题为 "使用频率分布"

    • 删除折线图,添加 "垂直基本柱图" 组件,设置为堆叠模式

  3. 浏览器使用数量分布(饼图)

    • 复制 "使用频率分布" 组,重命名为 "浏览器使用数量分布"

    • 修改标题为 "浏览器使用数量分布"

    • 删除堆叠柱状图,添加 "基本饼图" 组件

    • 调整饼图样式,设置标签可见

保存大屏,完成静态布局制作。

2.3 大屏数据接入:蓝图编辑器配置

2.3.1 创建团队私有数据库数据源
  1. 进入数据大屏平台,点击 "我的数据"→"+ 新建"→"新建数据源"

  2. 选择数据源类型为 MySQL,输入团队私有数据库的地址、端口、用户名和密码

  3. 点击 "立即添加",完成数据源创建

2.3.2 将所有组件导出到蓝图编辑器
  1. 打开 "市场分析" 大屏编辑界面

  2. 右键点击每个需要接入数据的组件,选择 "导出到蓝图编辑器"

  3. 导出完成后,点击 "蓝图编辑器" 图标进入配置界面

2.3.3 添加全局节点实现页面自动加载

从逻辑节点面板中拖拽 "全局节点" 到画布中,该节点会在大屏打开时自动触发后续操作。

2.3.4 市场格局图表数据接入
  1. 添加 SQL 请求节点

    • 数据源:团队私有数据库

    • SQL 类型:查询

    • 处理方法:

    • 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

    • 拖拽 "SQL 请求" 节点到画布中

    • 将全局节点的 "页面初始化完成" 接口连接到 SQL 请求的 "执行 SQL" 接口

    • 配置 SQL 请求:

  2. 添加并行数据处理节点

    • 各浏览器用户数:

    • return data.map(item=>({
      x: item.x,
      y: item.y1,
      s:'用户数'
      }));

    • 各浏览器总使用时长:

    • return data.map(item=>({
      name: item.x,
      value: item.y2
      }));

    • 各浏览器人均使用时长:

      treturn

 data.map(item=>({
x: item.x,
y: item.y3,
s:'人均时长(小时)'
}));

    • 拖拽 "并行数据处理" 节点到画布中

    • 添加 3 个处理方法,分别命名为 "各浏览器用户数"、"各浏览器总使用时长"、"各浏览器人均使用时长"

    • 将 SQL 请求的 "执行成功" 接口连接到三个处理方法的接口

    • 配置各处理方法的代码:

  1. 连接图表节点

    • 将三个处理方法的输出接口分别连接到对应的柱状图和饼图组件的 "导入数据接口"

    • 点击保存,预览数据是否正确显示

2.3.5 数据概览指标卡数据接入
  1. 添加 SQL 请求节点

    • 拖拽 "SQL 请求" 节点到画布中

    • 将全局节点的 "页面初始化完成" 接口连接到 SQL 请求的 "执行 SQL" 接口

    • 配置 SQL 请求:

      javascript

letsql=`selectmetric_name,metric_valuefrom labs.browser_overview `
return sql

  1. 添加并行数据处理节点

    • 添加 4 个处理方法,分别命名为四个指标名称

    • 配置各处理方法的代码(以总使用时长为例):

    • var item = data.find(d=> d.metric_name==='总使用时长');
      return[{value: item ? item.metric_value:0}];

    • 其他三个指标的代码类似,只需修改metric_name的值

  2. 连接指标卡节点

    • 将四个处理方法的输出接口分别连接到对应的数字翻牌器组件的 "导入数据接口"

    • 点击保存,预览指标数据是否正确显示

2.3.6 工作日 vs 周末对比图表数据接入
  1. 添加 "SQL 请求" 节点,配置查询代码:

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

  3. 将 SQL 请求的 "执行成功" 接口直接连接到 "工作日 vs 周末使用时长" 分组柱状图的 "导入数据接口"

  4. 点击保存,预览数据

2.3.7 24 小时活跃分布图表数据接入
  1. 添加 "SQL 请求" 节点,配置查询代码:

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

  3. 将 SQL 请求的 "执行成功" 接口连接到 "24 小时活跃分布" 区域图的 "导入数据接口"

  4. 在画布编辑器中,为 6 个浏览器分别设置对应的折线和标记颜色,保持与之前的颜色规范一致

2.3.8 周活跃趋势图表数据接入
  1. 添加 "SQL 请求" 节点,配置查询代码:

  2. let sql =`
      select week_range as x,
        active_user_count as y,
        browser_name as s
      from labs.browser_weekly_active
      order by browser_name, week_range
    `
    return sql

  3. 将 SQL 请求的 "执行成功" 接口连接到 "浏览器周活跃用户数变化" 折线图的 "导入数据接口"

  4. 同样为 6 个浏览器设置对应的折线和标记颜色

2.3.9 使用频率分布图表数据接入
  1. 添加 "SQL 请求" 节点,配置查询代码:

  1. 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. 将 SQL 请求的 "执行成功" 接口连接到 "使用频率分布" 堆叠柱状图的 "导入数据接口"

2.3.10 浏览器使用数量图表数据接入
  1. 添加 "SQL 请求" 节点,配置查询代码:

  2. let sql =`
      select 
          browser_count as name, 
          user_count as value 
      from labs.browser_multi_usage 
      order by browser_count
    `
    return sql

  3. 将 SQL 请求的 "执行成功" 接口连接到 "浏览器使用数量分布" 饼图的 "导入数据接口"

2.3.11 预览并发布
  1. 点击大屏页面右上角的 "预览" 图标,检查所有图表的数据是否正确显示,样式是否协调

  2. 确认无误后,点击 "发布" 图标

  3. 在弹出的对话框中点击 "发布分享",复制生成的分享链接

  4. 打开浏览器,粘贴链接即可在线观看大屏

三、实验结果

3.1 数据加工结果

本次实验共生成了 8 张数据表,所有表的数据均已正确生成并通过数据探查验证:

  • daily_browser_detail

    :包含 1000 个用户 4 周内的浏览器使用明细,共约 12 万条记录

  • browser_coverage

    :统计了 6 个浏览器的用户数、总使用时长和人均使用时长

  • browser_weekly_active

    :包含 4 周内每个浏览器的周活跃用户数

  • browser_frequency_stats

    :统计了每个浏览器的轻 / 中 / 重度用户分布

  • browser_multi_usage

    :统计了使用不同数量浏览器的用户占比

  • browser_weekday_weekend

    :对比了每个浏览器在工作日和周末的使用情况

  • browser_overview

    :包含总使用时长、人均使用时长、活跃用户占比、重度用户占比四个全局指标

  • user_profile_stats

    :包含每个浏览器按性别、年龄、学历等 7 个维度的用户分布数据

3.2 大屏展示结果

最终完成的 "2012 年浏览器全景分析" 大屏包含 7 个模块,整体布局清晰,数据展示直观:

  1. 顶部导航区

    :显示大屏标题和 "市场分析"、"用户画像" 两个导航按钮

  2. 数据概览区

    :通过四个数据翻牌器展示全局核心指标

  3. 市场格局区

    :通过柱状图和饼图展示各浏览器的用户规模、使用规模和粘性

  4. 周活跃趋势区

    :通过折线图展示 4 周内各浏览器活跃用户数的变化趋势

  5. 使用频率分布区

    :通过堆叠柱状图展示各浏览器的用户使用深度

  6. 时段偏好区

    :通过分组柱状图和区域图展示工作日 vs 周末的使用对比和 24 小时活跃分布

  7. 竞争关系区

    :通过饼图展示用户同时使用多个浏览器的情况

3.3 业务洞察

通过对大屏数据的分析,我们可以得出以下有价值的业务结论:

  1. 市场格局

    :Google Chrome 以 32% 的用户占比位居第一,360 系列浏览器(360se+360 极速)合计占比 35%,是市场上最大的玩家

  2. 用户粘性

    :360se 的人均使用时长最高,达到 12.5 小时 / 周,远高于 Chrome 的 8.7 小时 / 周,说明 360 用户的粘性更强

  3. 活跃趋势

    :所有浏览器的周活跃用户数在第 3 周达到峰值,随后略有下降,整体保持稳定

  4. 时段特征

    :工作日的活跃高峰出现在上午 10 点和下午 3 点,周末的活跃高峰出现在晚上 8 点,符合用户的工作和生活习惯

  5. 使用习惯

    :72% 的用户同时使用 2 个及以上浏览器,说明浏览器市场的竞争非常激烈,用户忠诚度不高

  6. 用户画像

    :浏览器用户主要集中在 18-35 岁年龄段,以本科学历的上班族为主,城市用户占比超过 85%

四、问题与解决

在实验过程中,我遇到了以下几个问题,并通过分析和尝试找到了对应的解决方法:

4.1 数据重复问题

  • 问题现象

    :生成的daily_browser_detail表中出现了大量重复记录

  • 问题原因

    :上个实验中的 "排序记录 1" 组件仅按照process_name排序,而分组组件的分组字段是user_idusage_dateprocess_namehour,排序字段与分组字段不一致导致分组错误

  • 解决方法

    :修改 "排序记录 1" 组件的排序字段,使其与分组组件的分组字段完全一致,重新执行转换流后重复数据消失

4.2 图表数据不显示

  • 问题现象

    :接入数据后,部分图表没有显示任何数据,控制台也没有报错

  • 问题原因

    :SQL 查询返回的字段名与图表组件要求的接口字段名不匹配,例如饼图需要namevalue字段,但 SQL 返回的是browser_nametotal_duration

  • 解决方法

    :修改 SQL 语句,为查询字段添加正确的别名,使其与图表接口要求的字段名一致

4.3 蓝图连接错误

  • 问题现象

    :在蓝图编辑器中连接节点时,提示 "组件未找到"

  • 问题原因

    :在导出组件到蓝图编辑器后,又在画布编辑器中删除并重新添加了该组件,导致蓝图中的节点失效

  • 解决方法

    :在画布编辑器中重新导出该组件到蓝图编辑器,删除原来的失效节点,重新连接

4.4 饼图颜色混乱

  • 问题现象

    :饼图的颜色与浏览器没有对应关系,每次刷新都会变化

  • 问题原因

    :没有手动设置数据系列的颜色,系统自动分配颜色导致

  • 解决方法

    :在画布编辑器中选中饼图,点开 "数据系列",为每个浏览器设置固定的颜色,确保颜色与浏览器一一对应

五、实验总结

5.1 实验收获

通过本次完整的浏览器市场与用户画像分析实验,我收获颇丰:

  1. 掌握了零代码 ETL 全流程

    :从原始数据清洗、字段映射、数据聚合到最终表输出,我学会了如何使用助睿 ETL 工具高效完成数据加工任务,无需编写复杂的代码

  2. 学会了数据大屏设计方法

    :我理解了 "从业务问题出发" 的可视化设计原则,学会了如何根据不同的数据类型选择合适的图表,如何合理布局大屏内容

  3. 掌握了蓝图编辑器的使用

    :我学会了如何创建数据库数据源,如何使用 SQL 请求节点查询数据,如何通过并行数据处理节点分发数据,如何将数据绑定到可视化组件

  4. 提升了数据分析能力

    :通过对实验数据的分析,我学会了如何从海量数据中提炼有价值的业务洞察,如何用数据回答实际的业务问题

  5. 培养了问题解决能力

    :在实验过程中遇到了各种问题,通过仔细分析问题原因、查阅文档和尝试不同的解决方法,我提升了自己排查和解决问题的能力

5.2 平台评价

助睿数智平台给我留下了非常好的印象:

  • 零代码特性

    :平台的零代码设计极大地降低了数据分析的门槛,即使是没有编程基础的用户也能快速上手完成复杂的数据分析任务

  • 功能全面

    :平台覆盖了数据接入、ETL 处理、机器学习、可视化展示等数据分析全流程,无需切换多个工具即可完成所有工作

  • 操作直观

    :平台采用拖拽式的操作方式,界面设计简洁明了,学习成本很低

  • 蓝图编辑器强大

    :蓝图编辑器的可视化编程方式非常友好,能够灵活实现各种复杂的数据流和交互逻辑

同时,我也希望平台能够在以下方面进行优化:

  • 增加更多的图表类型和自定义样式选项,满足更多样化的可视化需求

  • 优化大数据量下的处理速度,提升转换流的执行效率

  • 增加更详细的错误提示信息,帮助用户更快定位和解决问题

总的来说,本次实验让我对数据分析的全流程有了更深入的理解,也让我对零代码数据分析工具的强大功能有了切身的体会。这些知识和技能将对我未来的学习和工作有很大的帮助。

Logo

一站式 AI 云服务平台

更多推荐