Hey Guys,
I have observed a weird behavior on using the Temporal Table Join and the
way it pushes the Watermark forward. Generally, I think the question is *When
is the Watermark pushed forward by the Temporal Table Join?*

The issue I have noticed is that Watermark seems to be pushed forward even
if elements are not generated, is that the expected behavior?

I have created a simple test that takes two streams rates & ccyCodes. Now,
I do temporal table Join of rates & ccyCodes in two ways :
1) SELECT ccyIsoCode, ccyIsoName, rate, rates_ts as ratesLong

|  FROM RatesTable, LATERAL TABLE(ccyTable(rates_rowtime))
|  WHERE ccyIsoCode = ratesCcyIsoCode



2) SELECT ccyIsoCode, ccyIsoName, rate, rates_rowtime as ratesTs

|  FROM RatesTable, LATERAL TABLE(ccyTable(rates_rowtime))
|  WHERE ccyIsoCode = ratesCcyIsoCode

So, as You can see the only difference is the fact the in the first one I
am selecting the field that is the timestamp but wasn't marked with
*rowtime* in the second one I am selecting the actual *rowtime.*

Now, I for the first method I need to reassign timestamps and watermarks,
which I do.  Finally, I create time windows of size let's say 7000
miliseconds and print the results. Now the unexpected behaviour I am facing
is the fact that, say I create four artificial records for rates that are
joined correctly with ccy with timestamps (1000, 5000, 8000, 20000)

   - For the first method there is only one window generated with elements
   [1000, 5000]
   - But for the second method with *rowtime* there are two different
   windows [1000, 5000] and [8000], this basically means that the watermark
   for 20000 was generated.

Is that the expected behavior ?? I was quite surprised that selecting
different field can actually yied different results in terms of
Watermarking.

Best Regards,
Dom.

Reply via email to