2021年大数据Flink(三十一):Table与SQL案例准备 依赖和程序结构

目录

案例准备

依赖

​​​​​​​程序结构


​​​​​​​案例准备

依赖

https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/

 


    org.apache.flink
    flink-table-api-scala-bridge_2.12
    ${flink.version}
    provided


    org.apache.flink
    flink-table-api-java-bridge_2.12
    ${flink.version}
    provided



    org.apache.flink
    flink-table-planner_2.12
    ${flink.version}



    org.apache.flink
    flink-table-planner-blink_2.12
    ${flink.version}
    provided


    org.apache.flink
    flink-table-common
    ${flink.version}
    provided

 

● 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

2021年大数据Flink(三十一):Table与SQL案例准备 依赖和程序结构_第1张图片

 

 

 

// 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...

 

你可能感兴趣的:(大数据,Table与SQL)