Flink 时态维度表 Join 与缓存机制实战
一、引言:为什么需要时态维度表?
在实时数仓建设中,维度表是不可或缺的一环,例如:
-
风控系统中,用户的风险等级在不同时间可能变化;
-
营销体系中,商品的促销标签会动态调整;
-
运营数据中,组织架构经常有调整。
时态维度表(Temporal Table),允许我们在流处理过程中,按事件时间 Join 上对应时刻的维度信息,是保障数据正确性的关键。
如果直接实时查询外部数据库,容易造成:
-
高延迟:每条流式数据都查询一次,压力大。
-
不稳定:外部系统故障会影响整个作业。
因此,本地缓存机制 + 定时刷新 成为实时场景下维度 Join 的标准做法。
二、常见的 Flink 维度表 Join 方式
Join 方式 | 特点 | 场景适用 |
---|---|---|
直接关联(数据库查) |