2021年大数据Flink(三十一):Table与SQL案例准备 依赖和程序结构
目錄
案例準備
依賴
???????程序結構
???????案例準備
依賴
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 streamingTableEnvironment?tableEnv?=?...;?// see "Create a TableEnvironment" section// create a TabletableEnv.connect(...).createTemporaryTable("table1");// register an output TabletableEnv.connect(...).createTemporaryTable("outputTable");// create a Table object from a Table API queryTable?tapiResult?=?tableEnv.from("table1").select(...);// create a Table object from a SQL queryTable?sqlResult??=?tableEnv.sqlQuery("SELECT ... FROM table1 ... ");// emit a Table API result Table to a TableSink, same for SQL resultTableResult?tableResult?=?tapiResult.executeInsert("outputTable");tableResult...
?
總結
以上是生活随笔為你收集整理的2021年大数据Flink(三十一):Table与SQL案例准备 依赖和程序结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年大数据Flink(三十):Fl
- 下一篇: 2021年大数据Flink(三十二):