Table API和SQL是一种关系型 API,用户可以像操作 Mysql 数据库表一样的操作数据
如果你想要使用Table API 和SQL的话,需要添加下面的依赖
- <dependency>
- <groupId>org.apache.flink</groupId>
- <artifactId>flink-table-api-java-bridge_2.11</artifactId>
- <version>1.11.0</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.flink</groupId>
- <artifactId>flink-table-api-scala-bridge_2.11</artifactId>
- <version>1.11.0</version>
- </dependency>
如果你想在 本地 IDE中运行程序,还需要添加下面的依赖
- <dependency>
- <groupId>org.apache.flink</groupId>
- <artifactId>flink-table-planner-blink_2.11</artifactId>
- <version>1.11.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.flink</groupId>
- <artifactId>flink-table-planner_2.11</artifactId>
- <version>1.11.1</version>
- </dependency>
如果你用到了老的执行引擎,还需要添加下面这个依赖
则针对stream和batch都可以使用TableEnvironment
- //指定底层使用blink引擎,及数据处理模式-stream
- val sSetting = EnvironmentSettings.newInstance().useBlinkPlanner()
- .inStreamingMode().build()
-
- val sTableEnv = TableEnvironment.create(sSetting)
-
-
- //指定底层使用blink引擎,及数据处理模式-batch
- val sSettings = EnvironmentSettings.newInstance().useBlinkPlanner()
- .inBatchMode().build()
- //创建TableEnvironment对象
- val sTableEnv = TableEnvironment.create(sSettings)
- #针对stream需要使用StreamTableEnvironment
-
- val ssEnv = StreamExecutionEnvironment.getExecutionEnvironment
- val ssSettings = EnvironmentSettings.newInstance().useBlinkPlanner().
- inStreamingMode().build()
- val ssTableEnv = StreamTableEnvironment.create(ssEnv, ssSettings)
-
- #针对batch需要使用BatchTableEnvironment
- val bbEnv = ExecutionEnvironment.getExecutionEnvironment
- val bb = BatchTableEnvironment.create(bbEnv);
-
- sTableEnv.executeSql("create table myTable(id int,name String)\n" +
- ") with(\n" +
- "'connector.type'='filesystem',\n" +
-
- "'connector.path'='D:\\bigdata/source',\n" +
-
- "'connector.type'='csv'\n"+
- ")"
- )
val result = sTableEnv.sqlQuery("select id,name from myTable where id>1")

- import org.apache.flink.table.api._
-
- val result = sTableEnv.from("myTable").select($"id",$"name").filter($"id" >1)
-

解决办法:在File -> Settings中按图设置即可:-target:jvm-1.8
