Table API 和 Flink SQL 是什么
1、Flink 对批处理和流处理,提供了统一的上层 API;
2、Table API 是一套内嵌在 Java 和 Scala 语言中的查询API,它允许以非常直观的方式组合来自一些关系运算符的查询;
3、Flink 的 SQL 支持基于实现了 SQL 标准的 Apache Calcite;
4、Table API 和 SQL 的程序结构,与流式处理的程序结构十分类似,比如下面的语法;
StreamTableEnvironment tableEnv = ... // 创建表的执行环境
// 创建一张表,用于读取数据
tableEnv.connect(...).createTemporaryTable("inputTable");
// 注册一张表,用于把计算结果输出
tableEnv.connect(...).createTemporaryTable("outputTable");
// 通过 Table API 查询算子,得到一张结果表
Table result = tableEnv.from("inputTable").select(...);
// 通过 SQL查询语句,得到一张结果表
Table sqlResult = tableEnv.sqlQuery("SELECT ...