Hi!

Flink1.13中TableEnvironment是否支持UDF和UDTF呢?
>

支持。可以通过 tEnv.executeSql("create temporary function myUdf as
'com.my.package.name.MyUdfClass'") 来注册。

StreamTableEnvironment
> 目前只支持streaming模式?支持UDF和UDTF?能否在StreamTableEnvironment中以流的方式写批数据,批数据跑完进程就不存在了吧?
>

StreamTableEnvironment 目前只支持 streaming,同样支持 udf 和 udtf。可以在里面写批数据(称为 bounded
stream)。作业结束后进程是否存在和执行模式有关。如果是 session 模式,那么作业跑完了,job manager 和 task
manager 的进程都还在;如果是 per job 模式,那么进程都会结束。

现在不是特别清楚真正的流批一体化体现在那个入口TableEnvironment 还是StreamTableEnvironment?
>

从 SQL 的角度来看,流批一体化体现在同一套 SQL 语句既可以跑流作业,也可以跑批作业,用户无需为了流批作业写两套 SQL,和具体哪个
environment 没关系。当然用流作业跑 bounded stream 也是流批一体的体现之一,不过如果已知是 bounded
stream,跑批作业可以获得更高的效率。

Flink SQL的分区表是建立在TableEnvironment 还是StreamTableEnvironment?


Flink 目前不自己存储数据,而是用于计算外部存储系统的数据。因此分区表是建立在外部存储系统里的(需要对应外部系统支持,例如 hive),与
Flink 中的哪个 environment 无关。


Fei Han <hanfeizi0...@aliyun.com.invalid> 于2021年12月28日周二 19:13写道:

>
> @all
> 大家好:
> 关于Flink1.13中,TableEnvironment 和StreamTableEnvironment有一些疑惑:
> 1.TableEnvironment支持streaming和batch
> 模式,Flink1.13中TableEnvironment是否支持UDF和UDTF呢?
> 2.StreamTableEnvironment
> 目前只支持streaming模式?支持UDF和UDTF?能否在StreamTableEnvironment中以流的方式写批数据,批数据跑完进程就不存在了吧?
> 3.现在不是特别清楚真正的流批一体化体现在那个入口TableEnvironment 还是StreamTableEnvironment?
> 4.Flink SQL的分区表是建立在TableEnvironment 还是StreamTableEnvironment?

回复