Window理解
1.Flink Window 概述
window是flink处理无穷流的核心,window将流拆分成有限大小的“桶”,在其上做运算。
1.1Window Api使用
首先我们看下window的api如何使用,摘用官网的说明:
- Keyed Windows
stream
.keyBy(...) <- keyed versus non-keyed windows (是否keyby)
.window(...) <- required: "assigner" (window assigner是必须的)
[.trigger(...)] <- optional: "trigger" (else default trigger) (可选,不设置的话会指定一个默认的)
[.evictor(...)] <- optional: "evictor" (else no evictor) (可选,不设置的话就没有)
[.allowedLateness(...)] <- optional: "lateness" (else zero) (可选,不设置为0)
[.sideOutputLateData(...)] <- optional: "output tag" (else no side output for late data) (可选,不设置的话对于延迟数据没有side oupt)
.reduce/aggregate/fold/apply() <- required: "function" (必须,具体funtion操作)
[.getSideOutput(...)] <- optional: "output tag" (可选,side output 延迟数据处理)
- Non-Keyed Windows
stream
.windowAll(...) <- required: "assigner"
[.trigger(...)] <- optional: "trigger" (else default trigger)
[.evictor(...)] <- optional: "evictor" (else no evictor)
[.allowedLateness(...)] <- optional: "lateness" (else zero)
[.sideOutputLateData(...)] <- optional: "output tag" (else no side output for late data)
.reduce/aggregate/fold/apply() <- required: "function"
[.getSideOutput(...)] <- optional: