开发者社区> 问答> 正文

使用GlobalWindows.create() 窗口,然后在自定义的trigger 中 操作按照自定义时间触发计算或清空操作 这样靠谱吗。

转自钉钉群21789141:使用GlobalWindows.create() 窗口,然后在自定义的trigger 中 操作按照自定义时间触发计算或清空操作 这样靠谱吗。

展开
收起
赵慧@ApacheFlink中文社区 2019-02-14 15:36:58 3415 0
1 条回答
写回答
取消 提交回答
  • 徐前进:从技术上可行 但是你还是要根据你得功能或业务 来测试 比如多大的数据量 多长的计算频度 是否使用state状态 等等

    问: GlobalWindow 窗口逻辑上是无限制的size 吧(这个我看源码好像没有设置size的地方应该就是无限的),然后我的计算频率为,每个用户的Event 到达触发计算,使用state 记录 按照keyby 的用户id 首次event time ,当首次时间与业务中设置的时间满足条件后,触发TriggerResult.PURGE 进行清空,其余操作都按照keyby id 进行计算。是这样个情况,这样操作的话是不是符合flink的意愿。或者可能导致出现的问题,有在未知数据量的情况下,计算的state 可能会爆掉,其他的还有什么异常会出现呢

    徐前进:这个计算逻辑没有问题 你确实要注意 爆掉问题

    问:比如flink默认的 sum/count 中的state 的大小是依赖于哪里的配置

    徐前进:这种看你使用的是那种backend https://ci.apache.org/projects/flink/flink-docs-release-1.7/ops/state/state_backends.html

    2019-07-17 23:28:16
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
用计算和数据去改变整个世界 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载