数据分析实时大屏 - 测试数据说明
本目录包含用于测试数据分析实时大屏功能的 SQL 脚本和测试数据。
文件说明
1. 01_create_tables.sql
创建所需的数据表结构,包括:
orders- 订单表user_sessions- 用户会话表users- 用户表products- 商品表(可选)order_items- 订单商品关联表(可选)page_views- 访问日志表(可选)
执行顺序: 首先执行此文件创建表结构
2. 02_insert_test_data.sql
插入测试数据,包括:
- 8个测试用户
- 5个在线用户会话(最近5分钟内有活动)
- 15个今日订单(用于计算实时GMV和订单数)
- 10个昨日同时段订单(用于计算增长率)
- 15条访问日志(用于转化率计算)
执行顺序: 在创建表后执行此文件插入测试数据
3. 03_test_queries.sql
包含各种测试查询,用于验证数据计算逻辑:
- 实时GMV查询
- 在线用户查询
- 转化率查询
- 综合实时大屏数据查询
- 数据验证查询
执行顺序: 在插入测试数据后执行此文件验证数据
使用方法
方式 1: 通过 Supabase Dashboard(推荐)
-
访问 Dashboard
http://192.168.1.63:8000 或 http://192.168.1.63:3000 (Studio 默认端口) -
登录
- 用户名:
supabase - 密码:
D4ce5p8YBpfYzEoDGZ_7MzehZcWrdCNyDEj_VSUBmOw
- 用户名:
-
打开 SQL Editor
- 在左侧菜单找到 "SQL Editor"
- 点击 "New Query"
-
执行脚本
- 复制
01_create_tables.sql的内容,粘贴并执行 - 复制
02_insert_test_data.sql的内容,粘贴并执行 - (可选)复制
03_test_queries.sql的内容,验证数据
- 复制
方式 2: 使用命令行(PostgreSQL)
# 连接到内网 Supabase 数据库
psql -h 192.168.1.63 -p 5432 -U postgres -d postgres
# 输入密码:yxyHINygZMLSq9jLddrZQBB-CoyGHSF5DwlwWmbrYXc
# 执行 SQL 文件(需要完整路径)
\i D:/datas/hfkj/mall/pages/mall/analytics/test/01_create_tables.sql
\i D:/datas/hfkj/mall/pages/mall/analytics/test/02_insert_test_data.sql
\i D:/datas/hfkj/mall/pages/mall/analytics/test/03_test_queries.sql
方式 3: 使用图形工具(DBeaver / pgAdmin)
-
创建连接
- 主机:
192.168.1.63 - 端口:
5432 - 数据库:
postgres - 用户名:
postgres - 密码:
yxyHINygZMLSq9jLddrZQBB-CoyGHSF5DwlwWmbrYXc
- 主机:
-
执行 SQL
- 打开 SQL 编辑器
- 复制 SQL 文件内容并执行
详细说明请查看:SQL_USAGE_GUIDE.md
测试数据说明
实时GMV测试数据
- 今日订单总数: 15笔
- 今日GMV: 约 3,500 元(根据订单金额累加)
- 昨日同时段订单: 10笔
- 昨日同时段GMV: 约 2,200 元
- 预期增长率: 约 59%((3500-2200)/2200 * 100)
实时订单测试数据
- 今日订单数: 15笔
- 昨日同时段订单数: 10笔
- 预期增长率: 50%((15-10)/10 * 100)
在线用户测试数据
- 最近5分钟内有活动的用户: 5个
- 这些用户会在实时大屏中显示为"在线用户"
转化率测试数据
- 今日访问用户数: 约 10-15个(从 user_sessions 表统计)
- 今日下单用户数: 约 8个(从 orders 表去重统计)
- 预期转化率: 约 53-80%(根据实际数据计算)
注意事项
-
时间依赖
- 测试数据使用了
NOW()和相对时间(如INTERVAL '1 hour') - 每次执行时,数据的时间戳会基于当前时间生成
- 建议在测试前先清空相关表的数据(谨慎操作)
- 测试数据使用了
-
数据冲突
- 脚本使用了
ON CONFLICT DO NOTHING或ON CONFLICT DO UPDATE - 可以多次执行而不会产生重复数据
- 如需重新生成数据,请先清空表
- 脚本使用了
-
状态值
- 订单状态:
2表示已支付/已完成 - 用户会话:
is_active = true表示活跃会话
- 订单状态:
-
UUID 格式
- 所有 ID 使用 UUID 格式
- 测试数据使用了固定的 UUID 便于识别
清理测试数据
如果需要清理测试数据,可以执行:
-- 谨慎操作:清空测试数据
TRUNCATE TABLE orders, user_sessions, users, order_items, page_views CASCADE;
或者删除特定时间范围的数据:
-- 删除今日的测试订单
DELETE FROM orders WHERE created_at >= DATE_TRUNC('day', NOW());
-- 删除测试用户会话
DELETE FROM user_sessions WHERE created_at >= DATE_TRUNC('day', NOW());
验证实时大屏功能
执行完测试数据后,在数据分析页面应该能看到:
- 实时GMV: 约 ¥3,500(根据实际订单金额)
- 实时订单: 15笔
- 在线用户: 5人
- 转化率: 约 50-80%(根据实际计算)
增长率会根据昨日同时段的数据自动计算。
问题排查
如果实时大屏显示异常,可以:
- 执行
03_test_queries.sql中的查询验证数据 - 检查订单状态是否为
2(已支付) - 检查时间范围是否正确(今日 vs 昨日同时段)
- 检查用户会话的
last_active_at是否在最近5分钟内 - 查看浏览器控制台的错误信息
扩展测试数据
如果需要更多测试数据,可以:
- 修改
02_insert_test_data.sql中的 INSERT 语句 - 调整订单金额、数量和时间分布
- 添加更多用户和会话数据
- 使用循环生成大量测试数据(注意性能)