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 );