You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by Asahi Lee <97...@qq.com> on 2020/09/07 14:26:50 UTC

回复: 1.11版本,创建视图后,根据表名称获取视图表对象,表名为临时名称的问题

你好!
&nbsp; &nbsp; &nbsp; 下面的程序我理解的是StreamTableEnvironment.from("")是获取我之前创建的表,但是实际的结果还是获取的是临时表,我认为应该获取的是datagen的table对象,应保证包含表名在内的元数据的一致性;


我的测试程序:
package org.apache.flink.playgrounds.spendreport;


import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.table.api.EnvironmentSettings;
import org.apache.flink.table.api.Table;
import org.apache.flink.table.api.bridge.java.StreamTableEnvironment;


import java.util.Arrays;


public class Test2 {


&nbsp; &nbsp; public static void main(String[] args) {
&nbsp; &nbsp; &nbsp; &nbsp; StreamExecutionEnvironment bsEnv = StreamExecutionEnvironment.getExecutionEnvironment();
&nbsp; &nbsp; &nbsp; &nbsp; EnvironmentSettings bsSettings = EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();
&nbsp; &nbsp; &nbsp; &nbsp; StreamTableEnvironment bsTableEnv = StreamTableEnvironment.create(bsEnv, bsSettings);


&nbsp; &nbsp; &nbsp; &nbsp; String sourceDDL = "CREATE TABLE datagen ( " +
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " f_random INT," +
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " f_random_str STRING " +
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " ) WITH ( " +
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " 'connector' = 'datagen', " +
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " 'rows-per-second'='10'," +
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " 'fields.f_random.min'='1', " +
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " 'fields.f_random.max'='10', " +
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " 'fields.f_random_str.length'='10' " +
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " ) ";
&nbsp; &nbsp; &nbsp; &nbsp; bsTableEnv.executeSql(sourceDDL);
&nbsp; &nbsp; &nbsp; &nbsp; for (int i = 0; i < 10; i++) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Table datagen = bsTableEnv.from("datagen");
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(datagen);
&nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("-----------------" + Arrays.toString(bsTableEnv.listTables()));


&nbsp; &nbsp; }


}


控制台:
UnnamedTable$0
UnnamedTable$1
UnnamedTable$2
UnnamedTable$3
UnnamedTable$4
UnnamedTable$5
UnnamedTable$6
UnnamedTable$7
UnnamedTable$8
UnnamedTable$9
-----------------[UnnamedTable$0, UnnamedTable$1, UnnamedTable$2, UnnamedTable$3, UnnamedTable$4, UnnamedTable$5, UnnamedTable$6, UnnamedTable$7, UnnamedTable$8, UnnamedTable$9, datagen]