Flink典型ETL场景(好文点赞收藏!!)

1-关联维表

1.1-预加载维表

实现RichMapFunction,在open方法中读取数据库中的维度数据全量加载到内存中

优点:简单
缺点:适用于数据量小的维表

1.2-热存储维表

将维度数据存储待hbase或者redis中,通过异步IO查询热存储,利用cache机制将维度数据缓存在内存

优点:支持较多的维度数据
缺点:维度更新有延迟

1.3-广播维表

利用broadcast state将维度数据流广播出去

优点:维度变更可及时更新结果
缺点:数据保存在内存中,支持的数据量比较小

2-双流join

2.1-window join

2.1.1-Tumbling Window Join

在这里插入图片描述

import org.apache.flink.api.java.functions.KeySelector;
import org.apache.flink.streaming.api.windowing.assigners.TumblingEventTimeWindows;
import org.apache.flink.streaming.api.windowing.time.Time;
 
...

DataStream<Integer> orangeStream = ...
DataStream<Integer> greenStream = ...

orangeStream.join(greenStream)
    .where(<KeySelector>)
    .equalTo(<KeySelector>)
    .window(TumblingEventTimeWindows.of(Time.milliseconds(2)))
    .apply (new JoinFunction<
Flink CDC(Change Data Capture) ETL(Extract Transform Load) 是一种通过 Apache Flink 框架实现的数据流处理解决方案。 CDC 是一种数据捕获技术,用于实时捕获数据库中的变化,将变化的数据作为事件流进行处理。Flink CDC 利用数据库的日志功能,可以实时获取并解析数据库的变化日志,将变化的数据转化为流式的数据,然后交给 Flink 进行处理。这样,我们就可以实时地监控和处理数据库中的数据变化。 Flink CDC ETL 是基于 CDC 技术的数据处理过程。ETL 是指数据的抽取(Extract)、转换(Transform)和加载(Load)。在 Flink CDC ETL 中,首先通过 CDC 技术从数据库中实时捕获变化的数据,然后通过 Flink 的转换操作,对数据进行处理和转换,最后将经过处理的数据加载到目标位置,如数据库、数据仓库或数据湖中。 通过 Flink CDC ETL,我们可以实现实时的数据分析和处理。例如,我们可以实时监控数据库中的用户行为数据,对用户的行为进行实时计算和分析,为企业决策提供实时的数据支持。另外,Flink CDC ETL 还可以帮助我们构建实时数据管道,将不同源头的数据进行实时抽取、转换和加载,从而实现数据集成和数据治理。这对于企业来说,有助于提高数据的价值和利用率。 总之,Flink CDC ETL 是一种基于 Flink 框架实现的数据流处理解决方案,通过利用 CDC 技术实时捕获数据库变化日志,将变化的数据转化为流式数据,并通过 Flink 的转换操作进行处理和加载,实现实时的数据分析和处理。这种技术对于企业的数据管理和决策分析具有重要的意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值