请问有哪些功能,是 stream api 可以做到,而 table api 无法做到的呢?

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

请问有哪些功能,是 stream api 可以做到,而 table api 无法做到的呢?

LittleFall
如题,望各位老师指点。



--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re:请问有哪些功能,是 stream api 可以做到,而 table api 无法做到的呢?

hailongwang
Hi LittleFall,
   这个可能不好对比,最好结合你的需求。
   你可以理解为 Table API 为 我们内置了很多标准的算子,比如说 join,unionall 等,简化了我们自己实现的成本。
   而 DataStream API 比较灵活,但处理逻辑都需要自己定义。
   如果你的需求需要用到 state 或者 timer 的能力的,那么就需要使用 DataStream API。
希望这些对比有帮助。


Best ,
hailong
在 2020-11-10 13:42:39,"LittleFall" <[hidden email]> 写道:
>如题,望各位老师指点。
>
>
>
>--
>Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Re:请问有哪些功能,是 stream api 可以做到,而 table api 无法做到的呢?

LittleFall
非常感谢你的回复!

问下另一个问题,现在有这样一个场景:

1. table api 的计算无法满足一些需求,需要使用 stream api 进行计算;
2. 有现成可用的 table api connector;
3. 没有现成可用的 stream api connector,需要进行一段时间的开发适配工作。

那么是否存在一种方法,使用 table api connector 输入输出数据,但是使用 stream api 进行计算?

https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/common.html#convert-a-table-into-a-datastream-or-dataset

文档中的这一节可以满足以上需求吗?



--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re:Re: Re:请问有哪些功能,是 stream api 可以做到,而 table api 无法做到的呢?

hailongwang


可以的,将 table 转换成 datastream,但是会多一层转换的性能消耗。
方便说下哪个 Connector 有现成的 Table Connector 可以满足需求,但是 Datastream Connector不满足需求呢,具体是什么功能呢




在 2020-11-11 16:08:08,"LittleFall" <[hidden email]> 写道:

>非常感谢你的回复!
>
>问下另一个问题,现在有这样一个场景:
>
>1. table api 的计算无法满足一些需求,需要使用 stream api 进行计算;
>2. 有现成可用的 table api connector;
>3. 没有现成可用的 stream api connector,需要进行一段时间的开发适配工作。
>
>那么是否存在一种方法,使用 table api connector 输入输出数据,但是使用 stream api 进行计算?
>
>https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/common.html#convert-a-table-into-a-datastream-or-dataset
>
>文档中的这一节可以满足以上需求吗?
>
>
>
>--
>Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Re:Re: Re:请问有哪些功能,是 stream api 可以做到,而 table api 无法做到的呢?

LittleFall
明白了,多谢。

是 Canal-Json 格式的 Kafka Connector.

我们的一个产品 (TiCDC) 已经实现了输出 Canal-Json 格式的 changelog 到 Kafka 中,现在可以方便地使用 table
api 对接 flink。

现在是因为考虑到 Stream Api 能力比 Table Api 能力要强,所以在评估是否需要再实现一个 Stream Connector.




--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re:Re: Re:Re: Re:请问有哪些功能,是 stream api 可以做到,而 table api 无法做到的呢?

hailongwang
我理解是使用 使用 Kafka consumer 时使用 `CanalJsonDeserializationSchema` 序列化类就好了?
而不是再实现一个 Connector。




在 2020-11-11 16:56:58,"LittleFall" <[hidden email]> 写道:

>明白了,多谢。
>
>是 Canal-Json 格式的 Kafka Connector.
>
>我们的一个产品 (TiCDC) 已经实现了输出 Canal-Json 格式的 changelog 到 Kafka 中,现在可以方便地使用 table
>api 对接 flink。
>
>现在是因为考虑到 Stream Api 能力比 Table Api 能力要强,所以在评估是否需要再实现一个 Stream Connector.
>
>
>
>
>--
>Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re:Re: Re:请问有哪些功能,是 stream api 可以做到,而 table api 无法做到的呢?

Luna Wong
Table API 转 DataStream为啥会出现性能损耗

hailongwang <[hidden email]> 于2020年11月11日周三 下午6:28写道:

>
> 我理解是使用 使用 Kafka consumer 时使用 `CanalJsonDeserializationSchema` 序列化类就好了?
> 而不是再实现一个 Connector。
>
>
>
>
> 在 2020-11-11 16:56:58,"LittleFall" <[hidden email]> 写道:
> >明白了,多谢。
> >
> >是 Canal-Json 格式的 Kafka Connector.
> >
> >我们的一个产品 (TiCDC) 已经实现了输出 Canal-Json 格式的 changelog 到 Kafka 中,现在可以方便地使用 table
> >api 对接 flink。
> >
> >现在是因为考虑到 Stream Api 能力比 Table Api 能力要强,所以在评估是否需要再实现一个 Stream Connector.
> >
> >
> >
> >
> >--
> >Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re:Re: Re: Re:Re: Re:请问有哪些功能,是 stream api 可以做到,而 table api 无法做到的呢?

hailongwang



会多一个 outputConversion 类型转换算子
如果是 DataStream 转 Table API,会多一个 inputConversion 类型转换算子




在 2020-11-11 20:25:31,"Luna Wong" <[hidden email]> 写道:

>Table API 转 DataStream为啥会出现性能损耗
>
>hailongwang <[hidden email]> 于2020年11月11日周三 下午6:28写道:
>>
>> 我理解是使用 使用 Kafka consumer 时使用 `CanalJsonDeserializationSchema` 序列化类就好了?
>> 而不是再实现一个 Connector。
>>
>>
>>
>>
>> 在 2020-11-11 16:56:58,"LittleFall" <[hidden email]> 写道:
>> >明白了,多谢。
>> >
>> >是 Canal-Json 格式的 Kafka Connector.
>> >
>> >我们的一个产品 (TiCDC) 已经实现了输出 Canal-Json 格式的 changelog 到 Kafka 中,现在可以方便地使用 table
>> >api 对接 flink。
>> >
>> >现在是因为考虑到 Stream Api 能力比 Table Api 能力要强,所以在评估是否需要再实现一个 Stream Connector.
>> >
>> >
>> >
>> >
>> >--
>> >Sent from: http://apache-flink.147419.n8.nabble.com/