投影更新方式说明
一、核心概念
在开始之前,请先了解以下关键概念:
| 名词 | 说明 |
|---|---|
| 上游投影 | 投影所依赖的数据来源。例如,投影B的数据来自投影A,那么A就是B的上游投影。 |
| 数据周期 | 表示数据的时间粒度: 无:无明确时间周期(实时数据或静态数据) 日:按天更新的数据 * 月:按月更新的数据 粒度关系: 日 < 月 < 无(日粒度最细) |
| 强依赖 | 基于该投影和上游投影的数据周期判断是否进行更新。 当上游所有任务都完成目标周期(或更细粒度)的数据更新后,该任务才会执行 |
| 弱依赖 | 不校验数据周期的一致性 |
二、三种更新模式
| 更新模式 | 触发方式 | 依赖判断 | 适用场景 |
|---|---|---|---|
| 自动更新 | 根据上游数据变化自动触发更新 | 强依赖/弱依赖 | 需要实时或准实时更新 |
| 手动更新 | 手动点击按钮触发更新 | 无 | 更新频率要求极低,偶尔按需更新的场景 |
| 定时更新 | 按照自定义的时间触发更新 | 强依赖/弱依赖 | 固定时间更新 |

三、常见问题
Q1: "强依赖"和"弱依赖"最根本的区别是什么?
A: 更新触发条件对"上游投影"的要求不同:
-
强依赖:要求全部成功(AND逻辑)
-
弱依赖:要求任意一个更新(OR逻辑)
Q2: "自动更新"和"手动更新"的强依赖有什么区别?
A: 触发时机不同:
-
自动更新:由上游数据变化触发
-
手动更新:由预设时间触发
触发后的依赖判断逻辑相同
Q3: 如何选择更新模式?
-
自动更新:需要实时或准实时更新,且能明确依赖关系
-
手动更新:仅偶尔需要或按需更新
-
定时更新:需要在固定时间更新,且对数据一致性有要求
五、总结
核心逻辑:
-
怎么触发? → 自动、手动、自定义三种模式
-
触发后怎么办? → 通过强/弱依赖规则决定是等待所有上游(强依赖)还是响应任意上游(弱依赖)