Flink中提供了4种不同层次的API,如下图所示:
•低级API(stateful stream processing):提供了对时间和状态的细粒度控制,简洁性和易用性较差,主要应用在对一些复杂事件的处理逻辑上。
•核心API(datastream && dataset api):主要提供了针对流数据和离线数据的处理,对低级API进行了一些封装,提供了filter、sum、max、min等高级函数,简单且易用,所以在工作中应用比较广泛。
•Table API:一般与DataSet或者DataStream紧密关联,首先通过一个DataSet或DataStream创建出一个Table;然后用类似于filter、join或者select关系型转化操作来转化为一个新的Table对象;最后将一个Table对象转回一个DataSet或DataStream。与SQL不同的是,Table API的查询不是一个指定的SQL字符串,而是调用指定的API方法。
•SQL:Flink的SQL集成是基于Apache Calcite的,Apache Calcite实现了标准的SQL,使用起来比其他API更加灵活,因为可以直接使用SQL语句。Table API和SQL可以很容易地结合在一块使用,它们都返回Table对象。
Flink API的抽象分层
最新推荐文章于 2023-11-06 23:03:19 发布
Flink的API分为四个层次:低级API提供细粒度的时间和状态控制,适用于复杂事件处理;核心API包括Datastream和Dataset,提供高级函数,易用且广泛应用于流和离线数据处理;Table API结合了DataSet和DataStream,通过类似SQL的操作处理Table对象;而SQL基于Apache Calcite,提供直接的SQL查询,与Table API可灵活结合使用。
摘要由CSDN通过智能技术生成