182 lines
5.4 KiB
Markdown
182 lines
5.4 KiB
Markdown
# 数据分析实时大屏 - 测试数据说明
|
||
|
||
本目录包含用于测试数据分析实时大屏功能的 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. 使用循环生成大量测试数据(注意性能)
|