1.Flink提供了四种不同层级的API。低级API,核心API,Table API,SQL。
2.Flink DataStream的常用API(主要分为三块):DataSource(程序的数据源输入),Transformation(具体的操作),Sink(程序的输出)
3.Flink针对DataStream提供了大量的已经实现的DataSource (数据源)接口。如:
- 基于文件: readTextFile (path)读取文本文件,文件遵循Text InputFormat逐行读取规则并返回。
- 基于Socket: socketTextStream从Sokcet中读取数据,元素可以通过一个分隔符分开
- 基于集合: fromCollection (Collection)通过Java的Collection集合创建一个数据流,集合中的所有元素必须是相同类型的。
- 自定义输入: addSource可以实现读取第三方数据源的数据。
4.Flink针对DataStream提供了大量的已经实现的算子。
Map:输入一个元素,然后返回一个元素,中间可以进行清洗转换等操作。
FlatMap:输入一个元素,可以返回零个,一个或者多个元素。
Filter:过滤函数,对传入的数据进行判断,符合条件的数据会被留下。
KeyBy:根据指定的Key进行分组,Key相同的数据会进入同一个分区。