📜  Apache Flink-表API和SQL

📅  最后修改于: 2020-10-30 10:09:11             🧑  作者: Mango


表API是具有类似表达式语言的SQL的关系API。此API可以执行批处理和流处理。它可以与Java和Scala数据集以及数据流API一起嵌入。您可以从现有数据集和数据流或从外部数据源创建表。通过此关系API,您可以执行连接,聚合,选择和过滤之类的操作。无论输入是批处理还是流,查询的语义都保持不变。

这是一个示例表API程序-

// for batch programs use ExecutionEnvironment instead of StreamExecutionEnvironment
val env = StreamExecutionEnvironment.getExecutionEnvironment

// create a TableEnvironment
val tableEnv = TableEnvironment.getTableEnvironment(env)

// register a Table
tableEnv.registerTable("table1", ...) // or
tableEnv.registerTableSource("table2", ...) // or
tableEnv.registerExternalCatalog("extCat", ...)

// register an output Table
tableEnv.registerTableSink("outputTable", ...);
// create a Table from a Table API query
val tapiResult = tableEnv.scan("table1").select(...)
// Create a Table from a SQL query
val sqlResult = tableEnv.sqlQuery("SELECT ... FROM table2 ...")

// emit a Table API result Table to a TableSink, same for SQL result
tapiResult.insertInto("outputTable")

// execute
env.execute()