Bootstrap

1、Flink 的 Table API & SQL API 概述

1)概览
1.Table API & SQL

Flink 有两种关系型 API 来做流批统一处理:Table API 和 SQL。

Table API 是用于 Scala 和 Java 语言的查询API,它可以用一种非常直观的方式来组合使用选取、过滤、join 等关系型算子。

Flink SQL 是基于 Apache Calcite 来实现的标准 SQL。

无论输入是连续的(流式)还是有界的(批处理),在两个接口中指定的查询都具有相同的语义,并指定相同的结果。

2)概念与通用 API
1.概述

Table API 和 SQL 集成在同一套 API 中,这套 API 的核心概念是Table,用作查询的输入和输出。

2.Table API 和 SQL 程序的结构

所有用于批处理和流处理的 Table API 和 SQL 程序都遵循相同的模式,下面的代码示例展示了 Table API 和 SQL 程序的通用结构。

import org.apache.flink.table.api.*;
import org.apache.flink.connector.datagen.table.DataGenConnectorOptions;

// 创建一个 TableEnvironment 为 batch or streaming 执行.
TableEnvironment tableEnv = TableEnvironment.create(/*…*/);

// 创建一个 source
;