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?