Flink 中 DataStream 和 DataSet区别
DataSet与DataStream的区别、使用
- DataSet同DataStream从其接口封装、真实计算Operator有很大的差别,Dataset的实现在flink-javamodule中,而DataStream的实现在flink-streaming-java中;
- DataSet: 批式处理,其接口封装类似于Spark的Dataset,支持丰富的函数操作,比如map/fliter/join/cogroup等;
- 数据源创建初始数据集,例如来自文件或Java集合等静态数据;
- 所有的操作为Operator的子类,实现具体逻辑,比如Join逻辑是在JoinOperator中实现;
- DataStram: 流式处理,其结构封装实现输入流的处理,其也实现了丰富的函数支持;
- DataStram所有的操作为StreamOperator的子类,实现具体逻辑,比如Join逻辑是在IntervalJoinOperator中实现的;