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
> >
>

回复