Hello community, is there a way how to effectively...
# troubleshooting
v
Hello community, is there a way how to effectively perform look up join for two streaming queries without watermarking? I am using Table API which tries to enrich data of main stream with value from another stream. Issue I have is that records on the right/ build side might be years old so I can’t really use event time temporal joins with watermarking, processing time temporal join are not currently supported so look up joins are of topic too and regular joins doesn’t seem to fit, as it joins all previous and future records. Any ideas for some workaround?
Aside from that, the only alternative I think you can use is a non-temporal join, which will have to maintain the state forever.
v
I did check, but it uses processing time temporal join, which is not supported if i understood correctly from jira issue (besides error thrown by flink) https://issues.apache.org/jira/browse/FLINK-19830 I don’t like much non-temporal join as there are records coming to both sides and each one triggers join with all future and past records, it just doesn’t make sense to use, but i have nothing better
d
You might consider doing an ingestion-time temporal join, where you supply a watermark strategy that uses ingestion-time-based timestamps, and then do an event-time temporal join.
v
Could you please elaborate a bit more on that 2 join setup? My sources are kafka topics on which i originally tried an event-time temporal join on kafka rowtime (ingestion time) for both topics, like this
Copy code
source_time TIMESTAMP(3) METADATA FROM 'timestamp',
            WATERMARK FOR source_time AS source_time - INTERVAL '10' SECOND
but one of them might be a year old, so finally it didn’t work out as records come independently to both of them.
Not a working version, but might be an inspiration for anybody solving a similar issue. Idea is to use a parallel stream, which needs to be processed within the same time interval to be able to participate on final event-time temporal join. In theory it worked with small data, but not in a test case.