flink1.13 和 flink 1.14

Caizhi Weng <[email protected]> 于2021年10月20日周三 上午10:17写道:

> Hi!
>
> 会将 input 的记录存储在 state 里面。
>
> 如果 input 的字段比较多,但是参与聚合运算的字段比较少。
>
> 这样会导致 state 非常的大。
> >
>
> 你使用的是哪个 Flink 版本以及哪个 planner?这个观察是如何得出的呢?就我所知,state 里应该只存储了参与 agg 运算的字段。
>
> Tianwang Li <[email protected]> 于2021年10月19日周二 下午8:34写道:
>
> > Flink 的 Over 窗口
> > 例如在 range over window 场合,会将 input 的记录存储在 state 里面。
> > 如果 input 的字段比较多,但是参与聚合运算的字段比较少。
> > 这样会导致 state 非常的大。
> >
> > 从 RowTimeRangeBoundedPrecedingFunction 里面逻辑看,
> > 不参与agg运算的字段,在 onTimer 时期输出之后,是可以清理了的。
> >
> > 这样能提升Over 窗口的处理性能吗?
> >
> > SQL例子:
> >
> > SELECT
> > col_1,
> > col_2,
> > col_3,
> > col_4,
> > col_5,
> > col_6, -- 字段内容比较长
> > col_7, -- 字段内容比较长
> > col_8, -- 字段内容比较长
> > col_9, -- 字段内容比较长
> > col_10,
> > col_11,
> > col_12,
> > col_13,
> > col_14,
> > col_15,
> > col_16,
> > col_17,
> > col_18,
> > col_19,
> > sum(col_10) OVER w AS day_col_10,
> > sum(col_11) OVER w AS day_col_11,
> > sum(col_12) OVER w AS day_col_12,
> > sum(col_13) OVER w AS day_col_13,
> > sum(col_14) OVER w AS day_col_14,
> > sum(col_15) OVER w AS day_col_15,
> > sum(col_16) OVER w AS day_col_16
> > FROM table_3
> > window w as (
> > PARTITION BY col_1, col_2
> > ORDER BY rowtime
> > RANGE BETWEEN INTERVAL '1' DAY preceding AND CURRENT ROW)
> >
> > --
> > **************************************
> >  tivanli
> > **************************************
> >
>


-- 
**************************************
 tivanli
**************************************

回复