Flink实时数仓_DWM层业务实现

设计思路

        我们在之前通过分流等手段,把数据分拆成了独立的 kafka topic。那么接下来如何处理数据,就要思考一下我们到底要通过实时计算出哪些指标项。
因为实时计算与离线不同,实时计算的开发和运维成本都是非常高的,要结合实际情况考虑是否有必要象离线数仓一样,建一个大而全的中间层。
如果没有必要大而全,这时候就需要大体规划一下要实时计算出的指标需求了。把这些指标以主题宽表的形式输出就是我们的 DWS 层

        当然实际需求还会有更多,这里主要以为可视化大屏为目的进行实时计算的处理。

DWM
对于部分数据对象进行进一步加工,比如独立访问、跳出行为,也可以和维度进行关联,形成宽表,依旧是明细数据。
DWM 层的定位是什么,DWM 层主要服务 DWS,因为部分需求直接从 DWD 层到DWS 层中间会有一定的计算量,而且这部分计算的结果很有可能被多个 DWS 层主题复用,所以部分 DWD 成会形成一层 DWM,我们这里主要涉及业务
➢  访问 UV 计算
➢  跳出明细计算
➢  订单宽表
➢  支付宽表

第2章 DWM 层-访客 UV 计算

2.1  需求分析与思路

第6章 总结

        DWM 层部分的代码主要的责任,是通过计算把一种明细转变为另一种明细以应对后续
的统计。学完本阶段内容要求掌握
➢  学会利用状态(state)进行去重操作。(需求:UV 计算)
➢  学会利用 CEP 可以针对一组数据进行筛选判断。需求:跳出行为计算
➢  学会使用 intervalJoin 处理流 join
➢  学会处理维度关联,并通过缓存和异步查询对其进行性能优化。

Guess you like

Origin blog.csdn.net/qq_22473611/article/details/119574785