需求场景分析
需求场景
需求诱诱诱来了。。。数据产品妹妹想要统计单个短视频粒度的「点赞,播放,评论,分享,举报」五类实时指标,并且汇总成 photo_id、1 分钟时间粒度的实时视频消费宽表(即宽表字段至少为:「photo_id + play_cnt + like_cnt + comment_cnt + share_cnt + negative_cnt + minute_timestamp」)产出至实时大屏。
问题在于对同一个视频,五类视频消费行为的触发机制以及上报时间是不同,也就决定了对实时处理来说五类行为日志对应着五个不同的数据源。sql boy 们自然就想到了 join 操作将五类消费行为日志合并,可是实时 join(cogroup) 真的那么完美咩~,下文细谈。
source 输入以及特点
首先分析下需求中的 source 特点:
- photo_id 粒度 play(播放)、like(点赞)、comment(评论)、share(分享)、negative(举报)明细数据,「用户播放(点赞、评论...)n 次,客户端\服务端就会上传 n 条播放(点赞、评论...)日志至数据源」
- 五类视频消费行为日志的 source schema 都为:「photo_id + timestamp + 其他维度」
sink 输出以及特点
sink 特点如下:<