Files
medical-mall/pages/mall/analytics/test/README.md
2026-01-22 21:15:02 +08:00

182 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 数据分析实时大屏 - 测试数据说明
本目录包含用于测试数据分析实时大屏功能的 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推荐
1. **访问 Dashboard**
```
http://192.168.1.63:8000
http://192.168.1.63:3000 (Studio 默认端口)
```
2. **登录**
- 用户名:`supabase`
- 密码:`D4ce5p8YBpfYzEoDGZ_7MzehZcWrdCNyDEj_VSUBmOw`
3. **打开 SQL Editor**
- 在左侧菜单找到 "SQL Editor"
- 点击 "New Query"
4. **执行脚本**
- 复制 `01_create_tables.sql` 的内容,粘贴并执行
- 复制 `02_insert_test_data.sql` 的内容,粘贴并执行
- (可选)复制 `03_test_queries.sql` 的内容,验证数据
### 方式 2: 使用命令行PostgreSQL
```bash
# 连接到内网 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
1. **创建连接**
- 主机:`192.168.1.63`
- 端口:`5432`
- 数据库:`postgres`
- 用户名:`postgres`
- 密码:`yxyHINygZMLSq9jLddrZQBB-CoyGHSF5DwlwWmbrYXc`
2. **执行 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%(根据实际数据计算)
## 注意事项
1. **时间依赖**
- 测试数据使用了 `NOW()` 和相对时间(如 `INTERVAL '1 hour'`
- 每次执行时,数据的时间戳会基于当前时间生成
- 建议在测试前先清空相关表的数据(谨慎操作)
2. **数据冲突**
- 脚本使用了 `ON CONFLICT DO NOTHING` 或 `ON CONFLICT DO UPDATE`
- 可以多次执行而不会产生重复数据
- 如需重新生成数据,请先清空表
3. **状态值**
- 订单状态:`2` 表示已支付/已完成
- 用户会话:`is_active = true` 表示活跃会话
4. **UUID 格式**
- 所有 ID 使用 UUID 格式
- 测试数据使用了固定的 UUID 便于识别
## 清理测试数据
如果需要清理测试数据,可以执行:
```sql
-- 谨慎操作:清空测试数据
TRUNCATE TABLE orders, user_sessions, users, order_items, page_views CASCADE;
```
或者删除特定时间范围的数据:
```sql
-- 删除今日的测试订单
DELETE FROM orders WHERE created_at >= DATE_TRUNC('day', NOW());
-- 删除测试用户会话
DELETE FROM user_sessions WHERE created_at >= DATE_TRUNC('day', NOW());
```
## 验证实时大屏功能
执行完测试数据后,在数据分析页面应该能看到:
1. **实时GMV** 约 ¥3,500根据实际订单金额
2. **实时订单:** 15笔
3. **在线用户:** 5人
4. **转化率:** 约 50-80%(根据实际计算)
增长率会根据昨日同时段的数据自动计算。
## 问题排查
如果实时大屏显示异常,可以:
1. 执行 `03_test_queries.sql` 中的查询验证数据
2. 检查订单状态是否为 `2`(已支付)
3. 检查时间范围是否正确(今日 vs 昨日同时段)
4. 检查用户会话的 `last_active_at` 是否在最近5分钟内
5. 查看浏览器控制台的错误信息
## 扩展测试数据
如果需要更多测试数据,可以:
1. 修改 `02_insert_test_data.sql` 中的 INSERT 语句
2. 调整订单金额、数量和时间分布
3. 添加更多用户和会话数据
4. 使用循环生成大量测试数据(注意性能)