有大佬看看吗? Tianwang Li <[email protected]> 于2021年10月20日周三 上午11:03写道:
> 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 > ************************************** > -- ************************************** tivanli **************************************
