请教一个 Flink SQL 的问题,解决了星巴克感谢

查看 195|回复 28
leonhao   
@leonhao 数据都写到数据库,还是得一个额外的程序,每分钟做一次计算吧
kerie
OP
  
@kerie 用 timescaledb 之类的时间序列数据库,使用物化视图,每分钟聚合一次,都是自带的功能,很 Flink 简单多了
weakbd   
@leonhao 谢谢,时序数据库虽然有物化视图功能,但时序数据库本身不能做监控报警,还是需要外部程序做定时查询,将聚合数据推送给监控报警系统。
leonhao   
时间语义试着用 ProcessingTime,再结合滚动窗口去实现你的操作
kerie
OP
  
@kerie grafana
fuyufjh   
@weakbd Flink 的时间属性和 join 语法理解有点困难,可以给个示例,我测试一把吗
BiggerLonger   
@kerie 我是觉得不应该用 Flink 做。Streaming 擅长增量计算,这个问题本质是一个全量计算,“全量”指最近 1min 的全量数据。
我觉得用数仓、定时 1min 查一次是最合适的。
Flink 的理念是 event-driven ,反过来说,如果没有 event 则不该触发任何计算。举个简化的例子,如果这 1min 内没有任何订单,你应该也希望得到一个全部 count=0 的结果吧(而不是什么也不输出),那么这就与 event-driven 相违背了。
weakbd   
要不时时 time window ?
kerie
OP
  
#25 是的,仔细看了下 op 的需求,你不应该以你的维表为基准,以实现 count=0 的结果,在 flink sql 中我是没想到能实现的方式。不过 datastream api 更灵活是可以做到的,你可以尝试下试试使用 AggregateFunction 实现你的需求呢
您需要登录后才可以回帖 登录 | 立即注册

返回顶部