开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

求助各位大佬,一个sql里面包含有几个大的hop滑动窗口,如15个小时和24个小时,滑动步长为5分钟

求助各位大佬,一个sql里面包含有几个大的hop滑动窗口,如15个小时和24个小时,滑动步长为5分钟,这样就会产生很多overlap 数据,导致状态会很快就达到几百g,然后作业内存也很快达到瓶颈就oom了,然后作业就不断重启,很不稳定,请问这个业务场景有什么有效的解决方案么? 本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 点击这里欢迎加入感兴趣的技术领域群。

展开
收起
黄一刀 2019-12-06 20:29:35 3125 0
2 条回答
写回答
取消 提交回答
  • 这种不可累加型的指标,全天数据几分钟产出一次,确实很烦人,而且state还得手动清,那个ttl不支持event time,说实话感觉用外部存储,比如redis 的hyperloglog会更好一些,uv这种不可累加的指标,放在state里面确实不太好维护

    2019-12-06 20:33:43
    赞同 展开评论 打赏
  • 用Redis,每行存储一个表示UV的HyperLogLog,前端需要取数的时候,取一定的时间区间做pfmerge,这玩意单靠Flink状态实现不靠谱

    2019-12-06 20:32:00
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
MaxCompute SQL计算成本调优以及优化方法 立即下载
时序数据库TSDB新功能 - 如何用SQL进行时序查询 立即下载
PolarDB NL2SQL: 帮助您写出准确、优化的SQL 立即下载