In Flink Planner this functionality is supported and exposed via Temporal Table 
Functions [2] and it does support event-time [3]. Only the non function 
Temporal Table syntax is supported only by the Blink, but functionality as far 
as I recall is the same. 

[2] 
https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/joins.html#join-with-a-temporal-table-function
 
<https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/joins.html#join-with-a-temporal-table-function>
 
[3] 
https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/joins.html#event-time-temporal-joins
 
<https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/joins.html#event-time-temporal-joins>

Piotrek

> On 21 Jan 2020, at 11:25, Dominik Wosiński <wos...@gmail.com> wrote:
> 
> Hey,
> I have considered the Temporal Table Joins, but as far as I know from the
> docs, it is only currently supported in the Blink Planner and does not
> currently support event time join, which is why I was trying to find a
> different solution.  Or has anything changed or is my understanding
> incorrect ??
> 
> Best Regards,
> Dom.
> 
> wt., 21 sty 2020 o 11:08 Piotr Nowojski <pi...@ververica.com> napisał(a):
> 
>> Hi,
>> 
>> You have basically a motivating example between Temporal Table Joins [1].
>> Please take a look at them.
>> 
>> Piotrek
>> 
>> [1]
>> https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/streaming/temporal_tables.html
>> <
>> https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/streaming/temporal_tables.html
>>> 
>> 
>>> On 20 Jan 2020, at 17:02, Dominik Wosiński <wos...@gmail.com> wrote:
>>> 
>>> Hello,
>>> I wanted to ask whether the idea and the general concept that I have is
>>> correct or if there is anything better in Flink to use.
>>> 
>>> Say, I that I have 3 different streams :
>>> 
>>>  - currency_codes, which has the name of the currency. It has the
>>>  following fields  (*currency_iso_code, tst, currency_name)*
>>>  - exchange_rate, which is a rarely changing stream that has data bout
>>>  exchange rates for different currencies. It has the following
>>> fields (*currency_iso_code,
>>>  tst, rate*)
>>>  - fares, which represents taxi fares. It has the following fields
>>> (*currency_iso_code,
>>>  tst, price*)
>>> 
>>> Generally, let's assume that this is the simple system that allows
>> drivers
>>> to charge clients in different currencies, but in the end, we want to
>> have
>>> all calculations in USD, but we want to have the *name* of the original
>>> currency.
>>> 
>>> The current idea that I have is that since *currency_codes* have the
>> names
>>> of the currencies and it does not change frequently (say It will change
>>> once a month tops) we should use this as a *BroadcastState *to be able to
>>> join it with *exchange_rate*. After that, when we have the name of the
>>> foreign currency and the exchange rate, we can use a LATERAL TABLE join
>> to
>>> join it with Fares.
>>> 
>>> The question is, whether my assumptions are correct and if there is any
>>> better idea to solve this problem?
>>> 
>>> Thanks in advance,
>>> Best Regards,
>>> Dom.
>> 
>> 

Reply via email to