转自钉钉群21789141:使用GlobalWindows.create() 窗口,然后在自定义的trigger 中 操作按照自定义时间触发计算或清空操作 这样靠谱吗。
徐前进:从技术上可行 但是你还是要根据你得功能或业务 来测试 比如多大的数据量 多长的计算频度 是否使用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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。