Thanks Jark and the un-ordered mode is useful in some cases.

Jark Wu <imj...@gmail.com> 于2020年2月28日周五 下午7:18写道:

> Hi,
>
> The ordering in streaming SQL is very important, because the accumulate
> and retract messages are emitted in order.
> If messages are out of order, the result will be wrong. Think of you are
> applying an un-ordered changelog, the result will be non-deterministic.
> That's why we only support "ordered" mode for async lookup join.
>
> The support for "un-ordered" mode is on the roadmap, but that will be more
> complex, because the planner should check it doesn't affect
> the order of acc/retract messages (e.g. it is just an append-only stream).
>
> I created https://issues.apache.org/jira/browse/FLINK-16332 to track this
> feature.
>
> Best,
> Jark
>
>
> On Fri, 28 Feb 2020 at 18:33, 郑泽辉 <closee...@gmail.com> wrote:
>
>>
>>
>> ---------- Forwarded message ---------
>> 发件人: StevenZheng <closee...@gmail.com>
>> Date: 2020年2月28日周五 下午6:30
>> Subject: Re: How to set unorderedWait/orderedWait properties in Table API
>> when using Async I/O
>> To: Danny Chan <yuzhao....@gmail.com>
>>
>>
>> Thanks Danny and I do run my lookupfunction in a single thread like this
>> commit:https://github.com/apache/flink/pull/10356, and my customized
>> source is a jdbc table source.
>>
>> But actually I still want to know, how to define the return order of
>> async results and if it is possible to do that.
>>
>> Danny Chan <yuzhao....@gmail.com> 于2020年2月27日周四 下午9:38写道:
>>
>>> The lookup event is indeed triggered by the AsyncWaitOperator, the blink
>>> AsyncLookupJoinRunner is nested into that.
>>> But we only generates the AsyncWaitOperator when the
>>> LookupableTableSource#isAsyncEnabled returns true, now only
>>> InMemoryLookupableTableSource supports that.
>>>
>>> One thing need to note is that you should execute the logic in
>>> LookupableTableSource with a separate thread if your source is custom.
>>>
>>> So
>>>
>>>    1. What dimension table source do you use ?
>>>    2. If you customized you source, did you run it in a separate thread
>>>    ?
>>>
>>>
>>> Best,
>>> Danny Chan
>>> 在 2020年2月26日 +0800 PM9:14,郑泽辉 <closee...@gmail.com>,写道:
>>>
>>> Hi all,
>>> I'm using Blink Planner(flink v1.9) and I create a AsyncJdbcTableSource
>>> class implements LookupableTableSource, but when I override the
>>> getAsyncLookupFunction(), I found the results of async method(by Vertx) is
>>> in order.
>>>
>>> But I don't need the stream order is preserved and just want the result
>>> records emitted out of order to improve processing speed. In DataStream API
>>> I can easily set the result order guarantee(
>>> https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/operators/asyncio.html#order-of-results),
>>> and my question is,
>>>
>>> how to set this in Table API or SQL API with Blink Planner?
>>>
>>> Thanks. Regards
>>>
>>>

Reply via email to