Hi, Torben

> When implementing the join I get only updates when the right table changes

The event-time temporal join versioned table is triggered watermark which 
calculated by both left and right table’s watermark, so you  get only updated 
when the right table changes(which is the slower one in your case). The right 
table may change multiple times, we need to know when it changes and then 
output the right joined result after. 

> Does anybody have an idea how the join could be implemented in the correct 
> way?

You can try to set a prober value for 
`table.exec.source.idle-timeout`(e.g:1minute) for your job, thus the right 
table will be marked as temporarily idle and the downstream join operator will 
only use the left table’s watermark, you can get updated at most 1 minute[1].

Another way is you can lookup the latest right table(if the table implements 
LookupTableSource, e.g. JDBC/HBase tables), the join will always return the 
most up-to-date value for a given key, you can get update immediately when 
input record from left table[2].

Best,
Leonard

[1] 
https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/config.html#table-exec-source-idle-timeout
 
<https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/config.html#table-exec-source-idle-timeout>
 
[2] 
https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/streaming/joins.html#processing-time-temporal-join
 
<https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/streaming/joins.html#processing-time-temporal-join>
 

Reply via email to