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