项目概述
本项目针对实时数仓中的dim层,使用flik获取维度数据以及维度表结构把处理过的数据和维度表同步到habse中,同步采用的是雪花模型,遵循三范式,对维度数据进行实时的增删改查。
对维度表进行动态拆分功能。
动态拆分功能就是使用flink-CDC对维度配置表进行实时监控,如果新增了一张维度表,hbase中也新增这张维度表,如果删除一张表同样在hbase中也删除这张表。
最终将编译代码上传到gitlab上。
第1步:创建抽象类和抽象方法
注意:测试阶段可以先把flink检查点代码给注释掉,可以提高效率,上线的时候务必开启



getkafkaSource读取kafka数据

第2步创建主类继承抽象类实现抽象方法

2.1对ods读取的原始数据进行etl数据清洗

对代码进行封装
![]()
2.2使用flinkcdc读取配置表数据并实现增加表和删除表功能
在util类中创建方法

在主类中调用

2.3在hbase中创建表
首先创建util类



编写javabean类

在主类中调用该方法



对代码进行封装
![]()
2.4做成广播流
作用是:广播状态的key用于判断是否是维度表,value用于补充信息到hbase

2.5连接主流和广播流
注意:这里有一个bug,就是主流的数据会比广播流的数据先到,会造成数据丢失
bug已修复
创建方法



在主类调用

对代码进行封装

2.6筛选出需要写出的字段

对代码进行封装

2.7把数据写入到hbase中
在hbaseutil中编译方法


创建写入方法


对类进行调用
![]()
3.整体运行流程:

4.整体演示
现在我们要把处理过的数据写入到hbase中
mysql中的维度表结构

mysql中的数据表

通过代码编译把在根据维度配置表结构,把属于维度表在hbase中创建


再对表进行判断把维度表中需要的字段写入到hbase中


5.代码上传到gitlab


3315

被折叠的 条评论
为什么被折叠?



