1、t;) 新的 WatermarkAssigner 接口将之前的 AssignerWithPunctuatedWatermarks 和 AssignerWithPeriodicWatermarks 的两类 Watermark 的接口进行了整合,从而简化了后续开发支持插入 Watermark 的 Source 实现复杂度。 2. FLIP-92 支持超过两个输入的 Operator Flink 1.11 提供了对多输入 Operator 的支持。但是,目前这一功能并没有提供完整的 DataStream API 的接口,用户如果想要使用的话,需要通过手动创建
2、 MultipleInputTransformation 与 MultipleConnectedStreams 的方式进行: MultipleInputTransformation<Long> transform = new MultipleInputTransformation<>( My Operator, new SumAllInputOperatorFactory(), BasicTypeInfo.LONG_TYPE_INFO, 1);env.addOperator(transform .addInput(source1.getTransformat
3、ion() .addInput(source2.getTransformation() .addInput(source3.getTransformation();new MultipleConnectedStreams(env) .transform(transform) .addSink(resultSink); Python & ML 1. FLINK-15636 在 Flink Planner 的 batch 模式下支持 Python UDF 的运行 在此之前,Python UDF 可以运行在 Blink Planner 的流、批和 Flink Planner 的流模
4、式下。支持后,两个 Planner 的流批模式都支持 Python UDF 的运行。 2. FLINK-14500 Python UDTF 的支持 UDTF 支持单条写入多条输出。两个 Planner 的流批模式都支持 Python UDTF 的运行。 3. FLIP-121 通过 Cython 来优化 Python UDF 的执行效率 用 Cython 优化了 Coder(序列化、反序列化)和 Operation 的计算逻辑,端到端的性能比 1.10 版本提升了数十倍。 4. FLIP-97 Pandas UDF 的支持 Pandas UDF 以 pandas.Series 作为输入和输出类型,支持批量处理数据。一般而言,Pandas UDF 比普通 UDF 的性能要更好,因为减少了 Java 和 Python 进程之间数据交互的序列化和反序列化开销,同时由于可以批量处理数据,也减少了 Python UDF 调用次数和调用开销。除此之外,用户使用 Pandas UDF 时,可以更方便自然地使用 Pandas 相关的 Python 库。 p style=&q