目錄
案例準備
依賴
???????程式結構
???????案例準備
依賴
https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-api-scala-bridge_2.12</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-api-java-bridge_2.12</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
<!-- flink執行計劃,這是1.9版本之前的-->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner_2.12</artifactId>
<version>${flink.version}</version>
</dependency>
<!-- blink執行計劃,1.11+默認的-->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner-blink_2.12</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-common</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
● flink-table-common:這個包中主要是包含 Flink Planner 和 Blink Planner一些共用的代碼,
● flink-table-api-java:這部分是用戶編程使用的 API,包含了大部分的 API,
● flink-table-api-scala:這里只是非常薄的一層,僅和 Table API 的 Expression 和 DSL 相關,
● 兩個 Planner:flink-table-planner 和 flink-table-planner-blink,
● 兩個 Bridge:flink-table-api-scala-bridge 和 flink-table-api-java-bridge,
Flink Planner 和 Blink Planner 都會依賴于具體的 JavaAPI,也會依賴于具體的 Bridge,通過 Bridge 可以將 API 操作相應的轉化為Scala 的 DataStream、DataSet,或者轉化為 JAVA 的 DataStream 或者Data Set
???????程式結構
https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/common.html#structure-of-table-api-and-sql-programs

// create a TableEnvironment for specific planner batch or streaming
TableEnvironment tableEnv = ...; // see "Create a TableEnvironment" section
// create a Table
tableEnv.connect(...).createTemporaryTable("table1");
// register an output Table
tableEnv.connect(...).createTemporaryTable("outputTable");
// create a Table object from a Table API query
Table tapiResult = tableEnv.from("table1").select(...);
// create a Table object from a SQL query
Table sqlResult = tableEnv.sqlQuery("SELECT ... FROM table1 ... ");
// emit a Table API result Table to a TableSink, same for SQL result
TableResult tableResult = tapiResult.executeInsert("outputTable");
tableResult...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282283.html
標籤:其他
