【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现

写在前面:我是「云祁」,一枚热爱技术、会写诗的大数据开发猿。昵称来源于王安石诗中一句 [ 云之祁祁,或雨于渊 ] ,甚是喜欢。


写博客一方面是对自己学习的一点点总结及记录,另一方面则是希望能够帮助更多对大数据感兴趣的朋友。如果你也对 数据中台、数据建模、数据分析以及Flink/Spark/Hadoop/数仓开发 感兴趣,可以关注我的动态 https://blog.csdn.net/BeiisBei ,让我们一起挖掘数据的价值~


每天都要进步一点点,生命不是要超越别人,而是要超越自己! (ง •_•)ง

文章目录

    • 一、前言
    • 二、实时数仓概述
      • 2.1 实时数仓产生背景
      • 2.2 离线数仓架构
      • 2.3 实时数仓产生背景
      • 2.4 实时数仓架构 - Lambda架构
      • 2.5 实时数仓架构 - kappa架构
      • 2.6 实时数仓架构 - 实时OLAP架构
      • 2.7 离线数仓 vs. 实时数仓
    • 三、基于Flink实线典型场景
      • 3.1 维表join - 预加载维表
      • 3.2 维表join - 预加载维表
      • 3.3 维表join - 热存储关联
      • 3.4 维表join - 广播维表
      • 3.5 维表join - Temporal table function join
      • 3.6 双流join - 离线join vs. 实时join

一、前言

本文是学习Flink中文社区实时数仓篇的总结,课程地址 https://www.bilibili.com/video/av92215954/

讲师:讲师:买蓉(美团点评 高级技术专家)。

二、实时数仓概述

2.1 实时数仓产生背景

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第1张图片

2.2 离线数仓架构

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第2张图片

2.3 实时数仓产生背景

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第3张图片

2.4 实时数仓架构 - Lambda架构

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第4张图片
资源和运维成本较高,所以发展为kappa架构

2.5 实时数仓架构 - kappa架构

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第5张图片

2.6 实时数仓架构 - 实时OLAP架构

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第6张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第7张图片

2.7 离线数仓 vs. 实时数仓

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第8张图片

三、基于Flink实线典型场景

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第9张图片

3.1 维表join - 预加载维表

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第10张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第11张图片
方案1改进:在open() 新建一个线程定时加载维表,实现维度数据的周期性更新

3.2 维表join - 预加载维表

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第12张图片

3.3 维表join - 热存储关联

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第13张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第14张图片

3.4 维表join - 广播维表

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第15张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第16张图片

3.5 维表join - Temporal table function join

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第17张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第18张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第19张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第20张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第21张图片

3.6 双流join - 离线join vs. 实时join

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第22张图片
将两个流的数据存入state中 + join 范围局部化
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第23张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第24张图片

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第25张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第26张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第27张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第28张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第29张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第30张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第31张图片
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第32张图片

【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现_第33张图片

你可能感兴趣的:(#,----,Flink,flink)