Flink实时数仓项目—项目初了解
前言
学习完了Flink1.13,拿个项目练练手。
一、实时数仓分层介绍
1.普通的实时计算与实时数仓比较
普通的实时计算和实时数仓有什么区别?或者说实时数仓为什么要分层?
普通的实时计算首先考虑的是时效性,所以是直接从数据源采集数据,然后直接计算得到结果,这样做时效性更好,但是它有一定的弊端,它的中间计算的结果没有沉淀下来。在需求不断增加的时候,部分重复的计算不能够进行复用,导致开发成本直线上升。
实时数仓是基于一定的数据仓库理念,对数据处理流程进行规划、分层,目的是提高数据的复用性。
2.实时电商数仓分层规划
1)ODS层
ODS层:存放原始数据,包括日志数据和业务数据。
2)DWD层
DWD层:根据数据对象为单位进行分流,比如订单、页面访问等等。
3)DIM层
DIM层:存放的是维度数据
4)DWM层
DWM层:对于部分数据对象进行进一步加工,比如独立访问、跳出行为,也可以和维度进行关联,形成宽表,依旧是明细数据。
5)DWS层
DWS层:根据某个主题将多个事实数据轻度聚合,形成主题宽表。
6)ADS层
ADS层:把ClickHouse中的数据根据可视化需求进行筛选聚合,得到最终结果。
二、实时数仓需求概览
1.离线计算和实时计算的比较
离线计算:在计算前已知所有的输入数据,输入数据不会产生变化。比如离线数仓,在今天早上一点,把昨天累积的数据进行计算分析,得到所需的结果。它的统计指标、报表繁多,但是对时效性不敏感。这属于批处理的操作,即根据确定范围的数据的一次性计算。
实时计算:输入的数据都是一个个输入并进行处理的,从一开始的时候并不需要知道所有的输入数据。与离线计算相比,运行时间短,计算量级较小。主要侧重对当日数据的实时监控,通常业务逻辑相对离线需求简单,统计指标也相对较少,更注重数据的时效性,这属于流处理的计算。
2.实时需求种类
2.1 日常统计报表或分析图中需要包含当日部分
2.2 实时数据大屏监控
2.3 数据预警或提示
经过大数据实时计算得到的一些风控预警、营销信息提示,能够快速让风控或营销部分得到信息,以便采取各种应对。
比如,用户在电商、金融平台中正在进行一些非法或欺诈类操作,那么大数据实时计算可以快速的将情况筛选出来发送风控部门进行处理,甚至自动屏蔽。 或者检测到用户的行为对于某些商品具有较强的购买意愿,那么可以把这些“商机”推送给客服部门,让客服进行主动的跟进。
2.4 实时推荐系统
实时推荐就是根据用户的自身属性结合当前的访问行为,经过实时的推荐算法计算,从而将用户可能喜欢的商品、新闻、视频等推送给用户。
这种系统一般是由一个用户画像批处理加一个用户行为分析的流处理组合而成。
三、数仓架构分析
1.离线数仓架构
2.实时数仓架构
版权归原作者 自学大数据的菜鸡 所有, 如有侵权,请联系我们删除。