Hi, 我觉得你的需求是“使用系统时间关联维表变更日志”。 这种方式可以保证最低的延迟,而且能保持高吞吐。 不过这个功能目前还没有原生支持,Flink 1.11 会支持读取变更日志。但关联维表变更日志可能要等到1.12。
当前,可以通过 temporal table function join [1] 来满足需求,就是需要一定的开发量。需要你自己去将 mysql binlog 数据(只能有 upsert 数据,不能有 delete)读进来构造成 Table。 Best, Jark [1]: https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/streaming/temporal_tables.html#temporal-table-function On Wed, 15 Apr 2020 at 12:07, wangweigu...@stevegame.cn < wangweigu...@stevegame.cn> wrote: > > 参考下这篇文章,里面有好多维度关联场景案例讲解! > > https://ververica.cn/developers/flink-datastream-associated-dimension-table-practice/ > > > > > > 发件人: tingli ke > 发送时间: 2020-04-15 11:22 > 收件人: user-zh > 主题: Re: JDBCLookupFunction被缓存导致数据的不及时性 > 是否有其他的方式来对mysql维表数据进行实时join > > > 13122260...@163.com <13122260...@163.com> 于2020年4月15日周三 上午11:08写道: > > > 有个setCacheMaxSize(1000),可以改成 -1 表示不使用cache > > org.apache.flink.api.java.io.jdbc.JDBCLookupFunction 这个方法有解释 > > The cacheMaxSize is -1 means not use cache > > > > > > > > 13122260...@163.com > > > > 发件人: tingli ke > > 发送时间: 2020-04-15 10:55 > > 收件人: user-zh > > 主题: JDBCLookupFunction被缓存导致数据的不及时性 > > Hi, > > > > > 流表通过JDBCLookupFunction来对mysql的维表数据进行实时join,但是JDBCLookupFunction会对数据进行缓存,导致mysql的维表数据被更新,但是flink还是老的数据,(考虑性能需要被缓存) > > 是否有其他的方式来对mysql维表数据进行实时join > > >