AGENTS.md 5.1 KB

实验分桶报表说明

本目录保存 apptype=4 的实验分桶报表。实验组为 rootSessionId 倒数第四位是 01 的用户,其余 2-f 共 14 桶为对照组。

统一统计口径

  • 分桶字段:LOWER(SUBSTR(rootSessionId, LENGTH(rootSessionId) - 3, 1)),只保留 0-f
  • 实验组:尾号 01;对照组:其余 14 个尾号。
  • 头部:pagesource RLIKE 'user-videos-share$'
  • 推荐:pagesource RLIKE '(detail|category|recommend)$'
  • 全部:不限制 pagesource
  • 曝光:businesstype='videoView',统计 PV 和去重 mid UV。
  • 播放:businesstype='videoPlay',统计 PV 和去重 mid UV。
  • 分享:businesstype='videoShareFriend',统计 PV 和去重 mid UV。
  • 回流:分享记录与同日 topic='click' 记录按 shareid 关联,统计去重点击用户 machinecode UV。
  • STR:分享 PV / 曝光 PV。
  • ROV:回流 UV / 曝光 PV。
  • 人均指标:曝光、播放、分享 PV 或回流 UV除以同桶 DAU。
  • DAU 相对变化:实验组每桶平均 DAU相对对照组每桶平均 DAU的变化率,避免直接比较 2 桶总量和 14 桶总量。
  • 每个日期输出 20 行:16 行尾号明细、2 行分组聚合、2 行每桶均值。
  • 事实值(DAU、PV、UV)保存为整数;比例列按既有实时报表格式输出。

SQL 文件

bucket_source_pv_uv_return_realtime_20260721_apptype4_version1578.sql

查询 2026-07-21 当天的实时数据,限定 apptype=4versioncode=1578

  • DAU:loghubods.useractive_log_per5min
  • 曝光、播放、分享:loghubods.video_action_log_flow
  • 分享与回流:loghubods.user_share_log_per5min
  • 输出粒度:16 个尾号,每个尾号一行原始事实数据。
  • 日期、版本和实时表分区条件写在 SQL 中;复用到其他日期或版本时需要同步修改。

bucket_source_pv_uv_return_offline_20260716_20260720_apptype4_all_versions.sql

查询 2026-07-16 至 2026-07-20 的离线数据,限定 apptype=4,不限制版本号。

  • DAU:loghubods.useractive_log,与实时 SQL 一致,从 extparams.rootSessionId 取分桶字段。
  • 曝光、播放、分享:loghubods.video_action_log_applet
  • 分享与回流:loghubods.user_share_log
  • 所有事实按 dt 和尾号分别聚合,不跨天去重或合并。
  • 原始输出粒度:5 天 × 16 个尾号,共 80 行。
  • 输出仍保留版本号字段,统一写为“全部”,以便与限定版本的实时报表对齐。

offline_dau_by_bucket_20260716_20260720_apptype4.sql

只补查五天离线 DAU,用于事实指标已经查询完成时快速重建报表,避免重复执行完整事实 SQL。

  • 数据源:loghubods.useractive_log
  • 分桶字段:GET_JSON_OBJECT(extparams, '$.rootSessionId') 的倒数第四位。
  • 输出粒度:日期 × 16 个尾号,共 80 行。
  • 不限制版本号。

Python 脚本

run_bucket_source_pv_uv_return_realtime.py

实时报表执行和格式化脚本。

  • 默认执行实时 SQL,将英文字段映射为中文字段。
  • 生成尾号明细、实验/对照聚合、实验/对照每桶均值。
  • 计算头部、推荐、全部三个场景的人均指标、STR、ROV及相对对照组变化率。
  • 输出 bucket_source_pv_uv_return_realtime_20260721_apptype4_version1578.csv
  • python3 run_bucket_source_pv_uv_return_realtime.py --rebuild:不查询 ODPS,使用现有 CSV 重新计算比率列及列顺序。

run_bucket_source_offline_5day_report.py

五天离线报表执行和格式化脚本,复用实时脚本的字段映射、公式和列顺序,保证离线 CSV 与实时 CSV 完全同构。

  • 默认执行完整离线 SQL,并按日期分别生成每天 20 行的结果。
  • 输出按日期倒序排列,共 100 行。
  • 版本号列保留并统一写为“全部”。
  • 输出 bucket_source_full_report_offline_20260716_20260720_apptype4_all_versions.csv
  • python3 run_bucket_source_offline_5day_report.py --rebuild-with-dau:保留现有 CSV 中的曝光、播放、分享、回流事实,只执行 DAU 补查 SQL,再重新生成聚合、均值、比率和变化率。使用此模式前必须已有包含 80 行尾号明细的离线 CSV。

两个脚本都依赖 pandas 以及本地运行环境提供的 odps_module.ODPSClient。包含访问凭据的连接配置不得提交到 Git。

输出文件

bucket_source_pv_uv_return_realtime_20260721_apptype4_version1578.csv

2026-07-21、版本 1578 的实时完整报表,共 20 行。

bucket_source_full_report_offline_20260716_20260720_apptype4_all_versions.csv

2026-07-16 至 2026-07-20、全部版本的离线完整报表,共 100 行。列名、列顺序和指标维度与实时 CSV 一致。

修改日期或版本时

  1. 同步修改 SQL 文件中的日期分区条件和输出日期。
  2. 实时报表需要同步修改 versioncode 和输出版本号;离线全版本报表不要增加版本过滤。
  3. 同步修改 Python 脚本顶部的 SQL、CSV 文件名常量。
  4. 执行后校验每个日期是否有 16 个尾号、20 行完整结果,事实值是否为整数,离线与实时列名及顺序是否一致。