数据湖探索 DLI-JDBC:Lookup Cache功能介绍
Lookup Cache功能介绍
JDBC连接器可以用在时态表关联中作为一个可lookup的维表,当前只支持同步的查找模式。
默认情况下,Lookup cache是未启用的,所有请求都会发送到外部数据库。您可以设置Lookup.cache.max-rows和Lookup.cache.ttl参数来启用。Lookup cache的主要目的是用于提高时态表关联JDBC连接器的性能。
当Lookup cache被启用时,每个进程(即TaskManager)将维护一个缓存。Flink将优先查找缓存,只有当缓存未查找到时才向外部数据库发送请求,并使用返回的数据更新缓存。当缓存命中最大缓存行Lookup.cache.max-rows或当行超过最大存活时间Lookup.cache.ttl时,缓存中最先添加的条目将被标记为过期。缓存中的记录可能不是最新的,用户可以将Lookup.cache.ttl设置为一个更小的值以获得更好的刷新数据,但这可能会增加发送到数据库的请求数。所以要做好吞吐量和正确性之间的平衡。
默认情况下,Flink会缓存主键的空查询结果,您可以通过将Lookup.cache.caching-missing-key设置为false来切换行为。