ai_member_xiaoxi/business_knowledge/knowledge_summary.md

4.1 KiB
Raw Blame History

业务知识库总结

整体业务理解

公司业务模式

这是一个在线教育产品,主要提供 L1/L2 级别的英语学习课程。

核心业务流程

  1. 用户获取:用户通过各个渠道下载 App 并注册
  2. 用户激活:用户创建角色,填写性别、生日等信息
  3. 用户转化:用户通过站内或站外渠道购课
  4. 用户学习:用户学习课程,完成课时
  5. 数据回收:收集用户学习行为数据,用于分析和优化

核心数据模型

1. 用户层

bi_vala_app_account

  • 记录用户注册信息
  • 关键字段id, created_at, download_channel, key_from, status
  • 筛选条件status=1, deleted_at IS NULL, 排除测试用户ID

2. 用户详情层

account_detail_info

  • 记录用户的详细信息
  • 关键字段account_id, login_address, phone_login_times
  • login_address 格式:"省份-城市"

3. 角色层

bi_vala_app_character

  • 一个用户可以有多个角色
  • 关键字段id, account_id, gender, birthday, purchase_season_package, created_at
  • 性别映射0=girl, 1=boy, 其他=unknow
  • 赛季包状态:'[1]'=未购买,其他=已购买

4. 订单层

bi_vala_order

  • 记录用户购课订单
  • 关键字段account_id, sale_channel, key_from, pay_success_date, pay_amount, pay_amount_int, order_status, goods_name
  • 有效订单筛选order_status=3 AND pay_amount_int>49800
  • 购课渠道17个渠道映射

5. 课程层

bi_level_unit_lesson

  • 课程体系映射表
  • 课程层级结构course_level (L1/L2) → course_season (S0-S4) → course_unit (U00-U48) → course_lesson (L1-L5)
  • chapter_id 映射到完整的课程ID

6. 学习行为层

bi_user_chapter_play_record_0~78个分表

  • 记录用户的课程播放记录
  • 关键字段user_id, chapter_id, chapter_unique_id, play_status, updated_at, created_at
  • play_status=1 表示播放完成
  • 需要用 UNION ALL 合并8个分表

bi_user_component_play_record_0~78个分表

  • 记录用户的组件播放记录(更细粒度)
  • 关键字段chapter_unique_id, interval_time毫秒
  • 用于计算完课耗时

核心业务指标

1. 用户指标

  • 新增注册用户数:按日期、渠道统计
  • 用户画像:性别、年龄、地域分布

2. 转化指标

  • 转化率:注册 → 购课的转化
  • 购课标签:未购课、站外购课、站内购课
  • 退费率:订单退费情况

3. 收入指标

  • GMV:成交总额,按渠道、日期统计
  • 购课金额:客单价分析

4. 学习行为指标

  • 课程进入完成率:进入课程 → 完成课程的转化
  • 平均通关时长:课程完课平均时间
  • 学习进度:用户完课的课程数量和顺序
  • 完课间隔:距离上次完课的时间

常用分析模式

1. 用户全链路分析

将用户、角色、订单、课程完课数据关联,形成宽表,用于综合分析。

2. 渠道分析

按 download_channel 或 sale_channel 分组,分析不同渠道的用户质量和转化效果。

3. 课程分析

分析不同课程的完课率、完课时长,识别热门课程和难点课程。

4. 时间序列分析

按日期分组,分析用户增长、收入、学习行为的趋势变化。


常见筛选条件

测试用户排除

id not in (51, 2121, 1386, 1397, ...)

有效订单

order_status = 3 
AND pay_amount_int > 49800

有效用户

status = 1 
AND deleted_at IS NULL

完课记录

play_status = 1

数据处理技巧

1. 分表合并

使用 UNION ALL 合并8个分表

select * from bi_user_chapter_play_record_0
union all
select * from bi_user_chapter_play_record_1
-- ... 其他6个表

2. 渠道映射

使用 CASE WHEN 将数字编码映射为渠道名称。

3. 时间处理

  • 使用 date()to_char() 提取日期
  • 使用 interval_time/1000/60 将毫秒转为分钟

4. 去重逻辑

使用 rank() over (partition by ... order by ...) 取第一条记录。