Flink 1.3.0:在 Streaming SQL 上支持了 Retractions,显著提高了 Streaming SQL 的易用性,使得 Flink SQL 支持了复杂的 Unbounded 聚合连接。 Flink 1.5.0:SQL Client 的引入,标志着 Flink SQL 开始提供纯 SQL 文本。 Flink 1.9.0:抽象了 Table 的 Planner 接口,引入了单独的 Blink Table 模块。Blink Table ...
flink-sql-parser: 默认ANSI sql解析器实现。 flink-sql-parser-hive: hivesql方言解析器实现。 flink-table-planner: planner 计划器,是 table API 最主要的部分,提供了运行时环境和生成程序执行计划的 planner,包含AST与语义树、SQL validator 、planner、优化器和规则实现、代码生成器等。 flink-table-planner-lo...
首先来到执行SQL语句的入口TableEnvironmentImpl.sqlQuery()方法,第一句就是调用Parser.parse()方法解析SQL。 // TableEnvironmentImpl.sqlQuery()@OverridepublicTablesqlQuery(Stringquery){List<Operation>operations=parser.parse(query);// ...} 继续来到ParserImpl.parse()以及它调用的CalciteParser.parse()方法。 ...
Table API 和 SQL 查询的混用非常简单因为它们都返回 Table 对象: 可以在 SQL 查询返回的 Table 对象上定义 Table API 查询。 在TableEnvironment 中注册的结果表可以在 SQL 查询的 FROM 子句中引用,通过这种方法就可以在 Table API 查询的结果上定义 SQL 查询。 6、输出表 Table 通过写入 TableSink 输出。Table...
flink-table-common:当然,如果想使用用户自定义函数,或是跟 kafka 做连接,需要有一个 SQL client,这个包含在 flink-table-common 里。 【温馨提示】这里的flink-table-planner和flink-table-api-scala-bridge两个依赖,是 IDE 环境下运行需要添加的;如果是生产环境,lib 目录下默认已经有了 planner,就只需要有 brid...
由于维表是一张不断变化的表(静态表视为动态表的一种特例),因此在维表 JOIN 时,需指明这条记录关联维表快照的对应时刻。Flink SQL 的维表 JOIN 语法引入了 Temporal Table 的标准语法,用于声明流数据关联的是维表哪个时刻的快照。 需要注意是,目前原生 Flink SQL 的维表 JOIN 仅支持事实表对当前时刻维表快照...
Flink SQL,就是直接可以在代码中写SQL,来实现一些查询(Query)操作 无论输入是批输入还是流式输入,在这两套API中,指定的查询都具有相同的语义,得到相同的结果 需要引入的依赖 <dependency><groupId>org.apache.flink</groupId><artifactId>flink-table-planner_2.12</artifactId><version>1.10.1</version></depen...
1. Table API 与 SQL 2. Apache Calcite 3. 元数据 4. SQL 函数 5. Flink Planner 与 Blink Planner 6. Blink SQL执行过程 7. SQL优化器 8. 总结 Table API 与 Table SQL Table API 和 Table SQL 集成在同一套 API 中。这套 API 的核心概念是Table,用作查询的输入和输出。
Flink 1.9 Table 架构 在Flink Table 的新架构中,有两个查询处理器:Flink Query Processor 和 Blink Query Processor,分别对应两个Planner,我们称之为 Old Planner 和 Blink Planner。查询处理器是 Planner 的具体实现, 通过parser(解析器)、optimizer(优化器)、codegen(代码生成技术)等流程将 Table API & SQL作业...
在Flink Table 的新架构中,有两个查询处理器:Flink Query Processor 和 Blink Query Processor,分别对应两个Planner,我们称之为 Old Planner 和 Blink Planner。查询处理器是 Planner 的具体实现, 通过parser(解析器)、optimizer(优化器)、codegen(代码生成技术)等流程将 Table API & SQL作业转换成 Flink Runtime ...