1、API基础概述
1.1、四层API
(1)第⼀层是最底层的抽象为有状态实时流处理,抽象实现是 Process Function,⽤于底层处理
(2)第⼆层抽象是 Core APIs,许多应⽤程序不需要使⽤到上述最 底层抽象的 API,⽽是使⽤ Core APIs 进⾏开发,目前开发使用最多的;
- 例如各种形式的⽤户⾃定义转换(transformations)、联 接(joins)、聚合(aggregations)、窗⼝(windows) 和状态(state)操作等,此层 API 中处理的数据类型在每 种编程语⾔中都有其对应的类
(3)第三层抽象是 Table API。 是以表Table为中⼼的声明式编程 API,Table API 使⽤起来很简洁但是表达能⼒差
- 类似数据库中关系模型中的操作,⽐如 select、project、 join、group-by 和 aggregate 等。
- 允许⽤户在编写应⽤程序时将 Table API 与 DataStream/DataSet API 混合使⽤
(4)第四层最顶层抽象是 SQL,这层程序表达式上都类似于 Table API,但是其程序实现都是 SQL 查询表达
1.2、Flink编程模型
①Enviroment:创建一个执行环境,表示当前执行程序上下文
- 程序独立调用:此方法返回本地执行环境
- 命令行客户端调用:此方法返回集群环境
②Source:读取数据
③Transform:进行数据转换运算
④Sink:将计算结果输出到外部系统
- 常见数据流转(重点):DataStream --》keyBy操作 -》 keyStream --》window操作 --》WindowStream --》聚合操作 --》DataStream