我请求澄清 Apache Flink (1.6.0) 在事件通过窗口发送并应用了某些运算符(例如 reduce() 或 process())后如何处理来自 KeyedStreams 的事件。
假设一个单节点集群,在对键控窗口流执行操作后,是否只剩下 1 个数据流或k 个数据流(其中k是键的唯一值的数量)?
为了澄清起见,考虑需要从某个源读取事件,按某个k键,将键控事件发送到某个窗口流中,减少,然后执行几乎所有其他操作。下面两张图中哪一张实际上会被构建出来?
图A
|--------------|
| source |
| (DataStream) |
|--------------|
|
[all events]
|
v
|--------------|
| key by( k ) |
| (KeyedStream)|
|--------------|
/ | \
/ | \
[ k = 1 ] [ k = 2 ] [ k = 3 ]
/ | \
/ | \
v v v
|------------------||------------------||------------------|
| sliding window || …Run Code Online (Sandbox Code Playgroud) partitioning topography sliding-window apache-flink flink-streaming