有大佬看看吗?

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
**************************************

回复