flink-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jark Wu <imj...@gmail.com>
Subject Re: Blink Planner Retracting Streams
Date Thu, 18 Jun 2020 02:23:10 GMT
Hi John,

Maybe I misunderstand something, but CRow doesn't have the `getSchema()`
method. You can getSchema() on the Table, this also works if you convert
the table into Tuple2<Boolean, Row>.
Actually, there is no big difference between CRow and Tuple2<Boolean, Row>,
they both wrap the change flag and the Row.

Best,
Jark



On Thu, 18 Jun 2020 at 06:39, John Mathews <jmathews3773@gmail.com> wrote:

> Hello Godfrey,
>
> Thanks for the response!
>
> I think the problem with Tuple2, is that if my understanding is correct of
> how CRow worked, when CRow's getSchema() was returned it would return the
> underlying schema of the row it contained. Tuple2 doesn't do that, so it
> changes/breaks a lot of our downstream code that is relying on the
> TableSchema to return the underlying row's schema, and not a Tuple schema.
>
> Any thoughts on that issue?
>
>
> On Wed, Jun 17, 2020 at 12:16 AM godfrey he <godfreyhe@gmail.com> wrote:
>
>> hi John,
>>
>> You can use Tuple2[Boolean, Row] to replace CRow, the
>> StreamTableEnvironment#toRetractStream method return DataStream[(Boolean,
>> T)].
>>
>> the code looks like:
>>
>> tEnv.toRetractStream[Row](table).map(new MapFunction[(Boolean, Row), R] {
>>       override def map(value: (Boolean, Row)): R = ...
>>     })
>>
>> Bests,
>> Godfrey
>>
>> John Mathews <jmathews3773@gmail.com> 于2020年6月17日周三 下午12:13写道:
>>
>>> Hello,
>>>
>>> I am working on migrating from the flink table-planner to the new blink
>>> one, and one problem I am running into is that it doesn't seem like Blink
>>> has a concept of a CRow, unlike the original table-planner.
>>>
>>> I am therefore struggling to figure out how to properly convert a
>>> retracting stream to a SingleOutputStreamOperator when using just the Blink
>>> planner libraries.
>>>
>>> E.g. in the old planner I could do something like this:
>>> SingleOutputStreamOperator<CRow> stream =
>>> tableEnvironment.toRetractStream(table, typeInfo)
>>>                     .map(value -> new CRow(value.f1, value.f0);
>>>
>>> but without the CRow, I'm not sure how to accomplish this.
>>>
>>> Any suggestions?
>>>
>>> Thanks!
>>> John
>>>
>>>
>>>

Mime
View raw message