AggregateFunction 中 merge 方法的含义

Inv*_*ble 2 apache-flink flink-streaming

我试图理解 Flink 中的 AggregateFunction ,这里描述了这一点。它总共有四种方法,即

  1. 创建累加器
  2. 添加
  3. 获取结果
  4. 合并

据我了解,

createAccumulator当第一个元素进入新窗口时调用该方法,并且新创建的实例将被进一步使用

addcreateAccumulator调用方法以根据定义减少结果,这使用在方法中创建的实例

getResult当窗口关闭时调用方法并返回可用结果

我对上述方法的理解是否正确?最后,方法的用例是什么merge以及何时使用/调用它?这里的定义对我来说并不清楚。

Dav*_*son 6

merge当两个窗口合并时调用该方法。这适用于会话窗口,每当两个会话由于桥接会话之间间隙的事件的到来而合并为一个会话时,会话窗口就会合并。发生这种情况时,两个会话的最新聚合结果将通过调用 进行合并merge