Hi Kezhu,

`InputSelectable` is currently not exposed in the DataStream API because it might have side effects that need to be considered (e.g. are checkpoints still go through?). In any case, we don't have a good story for blocking a control stream yet. The best option is to buffer the other stream in state until the control stream is ready. You can also artifically slow down the other stream until then (e.g. by sleeping) to not buffer too much state.

I hope this helps.

Regards,
Timo


On 17.02.21 14:35, Kezhu Wang wrote:
A combination of `BoundedMultiInput` and `InputSelectable` could help. You could see `org.apache.flink.table.runtime.operators.join.HashJoinOperator`
for an usage example. The control topic have not to be bounded.

There are maybe other approaches from later responses. I could not tell whether it is canonical or not.

Best,
Kezhu Wang

On February 17, 2021 at 13:03:42, Salva Alcántara (salcantara...@gmail.com <mailto:salcantara...@gmail.com>) wrote:

What is the canonical way to accomplish this:

>Given a ConnectedStreams, e.g., a CoFlatMap UDF, how to prevent any
processing of the data stream until >the control stream is "ready", so to
speak

My particular use case is as follows: I have a CoFlatMap function. The data
stream contains elements that need to be enriched with additional
information (they come with some fields empty). The missing information is taken from the control stream, whose elements come through a kafka source.
Essentially, what I want is to pause any processing until having read the
full (control) topic, otherwise (at least initially) the output elements
will not be enriched as expected.



--
Sent from: http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/ <http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/>

Reply via email to