1、张静/技术专家张芒/技术专家FLINK SQL 在快手的扩展和实践SQL在快手功能扩展性能优化稳定性提升未来展望#1#2#3#4#5#1FLINK SQL 在快手FLINK SQL 在快手30%全量占比30%增量占比4亿/s峰值吞吐2020-122021-1240%60%6亿/s#2功能扩展功能扩展#1Group Window Aggregate 扩展1.支持多维分析2.引入高阶窗口函数 CUMULATE WINDOW DYNAMIC CUMULATE WINDOWWindow Table-Valued Function 扩展(FLIP-145)1.丰富 Window TVF 算子2.支持 W
2、indow Offset3.支持 Batch Mode#2支持多维分析引入高阶窗口函数 CUMULATE WINDOW DYNAMIC CUMULATE WINDOW多维分析Group Window Aggregate 扩展1.标准的 GROUPING SETS/ROLLUP/CUBE 语法2.支持各种 GROUP WINDOW FUNCTION案例统计主题维度和总维度下的 UVSELECTtheme_id,COUNT(DISTINCT user_id)as uv,CUMULATE_END(ts,INTERVAL 1 MINUTE,INTERVAL 1 DAY)FROM source_tabl
3、eGROUP BYCUMULATE(ts,INTERVAL 1 MINUTE,INTERVAL 1 DAY),GROUPING SETS(),(theme_id)支持多维分析引入高阶窗口函数 CUMULATE WINDOW DYNAMIC CUMULATE WINDOWCUMULATE WINDOWGroup Window Aggregate 扩展业务背景绘制数据曲线,每个点表示当天0点到当前的累积指标历史方案1:无限流聚合,把时间归一到分钟粒度后,作为 Group Key 之一历史方案1的缺点:不满足输出到屏幕上的点不再变化的要求历史方案2:窗口聚合:Tumble Window(1天)+Ea
4、rly Fire。历史方案2的缺点:1.曲线上的每个点,时间和累积值在时间上没有对应关系 发生 failover 或者回溯历史,曲线不能还原 各个时间点上分维度的累计值加和不等于总维度的累计值2.在采用 Split Distinct Aggregation 避免数据倾斜时,自增曲线有凹坑支持多维分析引入高阶窗口函数 CUMULATE WINDOW DYNAMIC CUMULATE WINDOWCUMULATE WINDOWGroup Window Aggregate 扩展历史方案2 问题1:历史回溯,曲线不能还原且不光滑问题2:自增曲线有凹坑支持多维分析引入高阶窗口函数 CUMULATE WI
5、NDOW DYNAMIC CUMULATE WINDOWCUMULATE WINDOWGroup Window Aggregate 扩展历史方案2 自增曲线有凹坑的原因:第一级聚合的结果是更新流支持多维分析引入高阶窗口函数 CUMULATE WINDOW DYNAMIC CUMULATE WINDOWCUMULATE WINDOWGroup Window Aggregate 扩展语法CUMULATE(time_attr,interval,interval,interval)time_attr:必选参数,时间属性列step interval:必选参数,定义窗口的步长size interval:必
6、选参数,定义一个窗口的 sizeoffset interval:可选参数,指定窗口开始的偏移量支持多维分析引入高阶窗口函数 CUMULATE WINDOW DYNAMIC CUMULATE WINDOWCUMULATE WINDOWGroup Window Aggregate 扩展语法CUMULATE(time_attr,interval,interval,interval)支持多维分析引入高阶窗口函数 CUMULATE WINDOW DYNAMIC CUMULATE WINDOWCUMULATE WINDOWGroup Window Aggregate 扩展案例绘制数据曲线,每分钟打一个点,