The HiveTableSource (and many others) return isBounded() -> true.
In this case it is not even possible for it to change over time, so I am a
bit confused.

To me it sounds like you should always be able to join a stream against a
bounded table, temporal or not it is pretty well defined.
Maybe there is some fundamental concept that I dont understand, I don't
have much experience with this to be fair.

Gyula

On Mon, Apr 20, 2020 at 4:03 PM Kurt Young <ykt...@gmail.com> wrote:

> The reason here is Flink doesn't know the hive table is static. After you
> create these two tables and
> trying to join them, Flink will assume both table will be changing with
> time.
>
> Best,
> Kurt
>
>
> On Mon, Apr 20, 2020 at 9:48 PM Gyula Fóra <gyula.f...@gmail.com> wrote:
>
>> Hi!
>>
>> The problem here is that I dont have a temporal table.
>>
>> I have a regular stream from kafka (with even time attribute) and a
>> static table in hive.
>> The Hive table is static, it doesn't change. It doesn't have any time
>> attribute, it's not temporal.
>>
>> Gyula
>>
>> On Mon, Apr 20, 2020 at 3:43 PM godfrey he <godfre...@gmail.com> wrote:
>>
>>> Hi Gyual,
>>>
>>> Can you convert the regular join to lookup join (temporal join) [1],
>>> and then you can use window aggregate.
>>>
>>> >  I understand that the problem is that we cannot join with the Hive
>>> table and still maintain the watermark/even time column. But why is this?
>>> Regular join can't maintain the time attribute as increasing trend (one
>>> record may be joined with a very old record),
>>> that means the watermark does not also been guaranteed to increase.
>>>
>>>
>>> https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/table/streaming/joins.html#join-with-a-temporal-table
>>>
>>> Best,
>>> Godfrey
>>>
>>> Gyula Fóra <gyula.f...@gmail.com> 于2020年4月20日周一 下午4:46写道:
>>>
>>>> Hi All!
>>>>
>>>> We hit a the following problem with SQL and trying to understand if
>>>> there is a valid workaround.
>>>>
>>>> We have 2 tables:
>>>>
>>>> *Kafka*
>>>> timestamp (ROWTIME)
>>>> item
>>>> quantity
>>>>
>>>> *Hive*
>>>> item
>>>> price
>>>>
>>>> So we basically have incoming (ts, id, quantity) and we want to join it
>>>> with the hive table to get the total price (price * quantity) got the
>>>> current item.
>>>>
>>>> After this we want to create window aggregate on quantity*price
>>>> windowed on timestamp (event time attribute).
>>>>
>>>> In any way we formulate this query we hit the following error:
>>>> org.apache.flink.table.api.TableException: Rowtime attributes must not
>>>> be in the input rows of a regular join. As a workaround you can cast the
>>>> time attributes of input tables to TIMESTAMP before.
>>>>
>>>>  I understand that the problem is that we cannot join with the Hive
>>>> table and still maintain the watermark/even time column. But why is this?
>>>>
>>>> In datastream world I would just simply assign Max watermark to my
>>>> enrichment input and join outputs will get the ts of the input record. Can
>>>> I achieve something similar in SQL/Table api?
>>>>
>>>> Thank you!
>>>> Gyula
>>>>
>>>>

Reply via email to