为什么需要消息记录
一次完整的“维度升级”链路
通过之前的讲解,我们知道了数据采集时会进行 ”维度升级“
可以把升级理解为在一个二维网格里“逐格攀升”的过程:
- 横轴是时间维度(日 → 周 → 月 → 年)
- 纵轴是视频业务维度(视频 → 视频分类 → 父级分类)。
链路从左下角的细粒度开始,沿着横轴先把时间粒度逐步放大,抵达“年”后再向上切换业务维度,并把时间维度重置到“日”,继续新一轮时间放大。重复这个节奏,直到到达网格右上角的终点“父级分类 + 年”。
执行升级过程
起点
- 从最细的业务与时间颗粒开始,例如“某个视频在某天的指标”。
推进规则(两段式节奏)
- 时间放大:在当前业务维度不变的前提下,按“日 → 周 → 月 → 年”逐跳汇总,完成时间轴的攀升。
- 业务上卷:一旦时间到达“年”,将业务维度提升一级(视频 → 视频分类 → 父级分类),同时把时间维度重置回“日”,准备新一轮“日 → 周 → 月 → 年”的时间放大。
循环推进
- 每完成一次“时间到年”与“业务上卷”的组合,就等于在网格中向“右上”迈出了一段路径;然后在新单元格继续相同的节奏。
终点条件
- 当业务维度已到“父级分类”,且时间维度已到“年”,说明到达网格右上角,链路自然停止。
直观路径示意(示例)
- 视频 + 日 → 视频 + 周 → 视频 + 月 → 视频 + 年
- 视频分类 + 日 → 视频分类 + 周 → 视频分类 + 月 → 视频分类 + 年
- 父级分类 + 日 → 父级分类 + 周 → 父级分类 + 月 → 父级分类 + 年(终点)
这套过程的本质是“在二维维度网格上,先横向扩时间、再纵向升业务、再横向扩时间……”,直到抵达“父级分类 + 年”的最顶层单元格为止。每一跳都在基于上一跳的聚合结果,形成下一跳的待处理单元,最终完成从细粒度到宏观视图的全链路升级与汇聚。
维度升级路径图(二维网格)
↑纵轴:视频业务维度
父级分类 │ ⑨────→⑩────→⑪────→⑫(终点)
│ 日 周 月 年
│ ↑
│ │
视频分类 │ ⑤────→⑥────→⑦────→⑧
│ 日 周 月 年
│ ↑
│ │
视频 │ ①────→②────→③────→④
│ 日 周 月 年
│ (起点)
│
└─────────────────────────→ 横轴:时间维度
日 周 月 年
升级路径说明(共12跳):
第一轮(视频维度):
① 视频+日 → ② 视频+周 → ③ 视频+月 → ④ 视频+年 └─ 横向推进:时间粒度从日到年
第二轮(视频分类维度):
④ 到达年后 ↑ 业务维度上升 + 时间重置为日 ⑤ 视频分类+日 → ⑥ 视频分类+周 → ⑦ 视频分类+月 → ⑧ 视频分类+年 └─ 横向推进:时间粒度从日到年
第三轮(父级分类维度):
⑧ 到达年后 ↑ 业务维度上升 + 时间重置为日 ⑨ 父级分类+日 → ⑩ 父级分类+周 → ⑪ 父级分类+月 → ⑫ 父级分类+年(终点) └─ 横向推进:时间粒度从日到年
推进规律:
- 先横后纵: 先沿时间轴横向攀升(日→周→月→年)
- 业务切换: 时间到"年"后,业务维度向上提升一级
- 时间重置: 业务切换后,时间维度重置回"日"
- 循环往复: 重复"横向→纵向→横向"的节奏
- 终点判断: 到达"父级分类+年"(右上角)时停止
如果没有"消息记录",这个12跳的升级链路会出现什么问题?
回到刚才的升级路径:从 "①视频+日"一路攀升到"⑫父级分类+年",共需要12跳、12次消息发送与消费。在这个过程中,如果没有消息记录机制,会面临以下具体问题: