state用来存放计算过程的节点中间结果或元数据等, 并提供Exactly-Once语义。
在流计算场景中, 数据没有边界源源不断的流入的, 每条数据流入都可能会触发计算, 比如在进行count或sum这些操作, 是选择每次触发计算将所有流入的历史数据重新计算一边还是每次计算都基于上次计算结果进行增量计算呢? 从综合考虑角度, 很多人都会 选择增量计算, 那么问题就产生了: 上一次的中间计算结果保存在哪里? 内存? 这其中会由于本身的网络, 硬件或软件等问题造成某个计算节点失败, 对应的上次计算结果就会丢失, 在节点恢复时, 是需要将所有历史数据重新计算一遍的, 对于这样的结果大家是很难接受的.
作者: 神奇的考拉 链接: https://www.jianshu.com/p/595ba0a2760b 来源: 简书 著作权归作者所有. 商业转载请联系作者获得授权, 非商业转载请注明出处.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。