You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

何时优先使用Dynamic Lookup而非static lookup 可否用其实现SCD type1和type2

Dynamic Lookup 优先于 Static Lookup 的适用场景
  • 实时/近实时数据集成场景:当映射运行过程中源数据会持续产生新增、更新操作,需要lookup的结果能同步捕获同运行周期内刚写入的目标表/中间表数据时,必须用Dynamic Lookup。Static Lookup只会在映射初始化时加载一次缓存,运行过程中不会更新,返回的都是缓存加载时的过时数据,无法满足实时匹配需求。
  • 同一映射内存在「先写入lookup源、后查询lookup源」的处理链路:比如在同一个映射中先向维度表插入新数据,后续处理其他关联记录时需要用到刚插入的维度键做关联,Static Lookup加载不到本次运行写入的内容,会触发重复插入冗余维度数据的问题,这种场景必须选择Dynamic Lookup。
  • 大维度表的增量同步场景:如果每次同步仅处理增量变更数据,用Dynamic Lookup可以在缓存中实时更新增量变更的维度属性,不需要每次映射运行都全量重新加载整个维度表缓存,能大幅提升lookup的查询性能。
  • 同运行周期内的数据校验场景:需要对比本次映射处理前后的数据差异,判断记录是新增、更新还是重复时,Dynamic Lookup可以实时缓存已经处理过的记录,直接在内存中完成校验,不需要反复查询物理表,减少IO开销。
Dynamic Lookup 对 SCD 实现的支持

是否支持 SCD Type2 实现

完全可以实现,核心是利用Dynamic Lookup的缓存自动刷新能力,配合返回的缓存匹配状态字段(比如Informatica里的NewLookupRow字段)做分支判断即可:

  • 当lookup没有匹配到记录时,判定为新增维度,直接插入新的生效版本,同时将这条新记录同步更新到Dynamic缓存中
  • 当lookup匹配到记录,且维度业务属性发生变更时,先把旧版本的维度记录置为失效,再插入新的生效版本,同时将新版本的记录更新到Dynamic缓存中

实现注意:需要配置Dynamic Lookup的缓存更新策略为仅插入/更新维度的生效版本记录,避免缓存中留存旧的失效版本数据影响后续的匹配逻辑。

是否同时支持 SCD Type1 实现

完全支持,且实现逻辑比SCD Type2更简单:
当lookup匹配到记录且业务属性发生变更时,直接更新物理维度表对应的属性值,同时同步更新Dynamic Lookup缓存里的对应记录即可,不需要处理版本链路,同一个维度键的缓存永远保留最新的属性值,后续匹配时直接返回最新结果即可。


内容的提问来源于stack exchange,提问作者nithin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:24:02