flink sql中aggregate without 
window产生的统计回撤流sink输出如果不做优化的话会随着source数据来一条就输出一条,这样会导致下游写入的压力会很大,例如mysql
请问这种统计回撤流sink输出优化的话要怎么cache起来取相同key的最后一条数据sink到下游?
可以再over window开窗用last_value函数吗?over window支持作用在回撤流上吗?


例如有下面binlog cdc购买数据(订单购买金额会更新):

orderid.   category    dt                                          amt

订单id     商品类型   购买时间(yyyyMMddHH)      购买金额




按商品类型统计每小时成交总额(每分钟写入下游mysql) 可以写成下面的flink sql实现吗?配合state ttl设置成1小时



INSERT INTO mysql_sink_table 

SELECT category, dt, LAST_VALUE(total)

OVER (

  PARTITION BY category

  ORDER BY PROCTIME() 

  RANGE BETWEEN INTERVAL '1' MINUTE PRECEDING AND CURRENT ROW

) AS var1

FROM (

  SELECT category, dt, SUM(amt) AS total FROM t1 GROUP BY category, dt

);

回复