理解Flink State

Posted hnrainll

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解Flink State相关的知识,希望对你有一定的参考价值。

在Flink的官网写着:Stateful Computations over Data Streams。
基于状态计算的数据流。

在流式计算中,希望做一些聚合分析等。那么就需要保存当前日志的状态,以备与后来的日志做比较。

在Flink中每个操作都会有状态的保存无论是source、sink还是operator。

按照使用使用keyby可将State分为Keyed State 和 Operator State。他们的区别主要在于Keyed State有key而Operator State没有key。

而按照State的操作是否为运行时的可分为:Raw State和Managed State。Raw State是用户自定义的使用State,虽然不太建议。用户可以在RichFunction中使用。

Flink支持不少State的保存方式:memory、fs、rocksdb。

State可以用于状态保存还可以用于容错、checkpoint等。总之功能很强大。

但是,感觉State都是Flink在维护不需要用户定义使用。


以上是关于理解Flink State的主要内容,如果未能解决你的问题,请参考以下文章

14.State-理解原理即可Flink中状态的自动管理无状态计算和有状态计算状态分类Managed State & Raw StateKeyed State&Operator Sta

Flink State的两张图

Flink中案例学习--State与CheckPoint

Apache Flink 零基础入门:基础概念解析

Flink单流算子

Flink--对DataSource的理解