Flink 可以为单个 table/window 处理约 50 GB 的状态吗?

Can Flink handle ~50 GB of state for a single table/window?

我正在构建一个流式分析,单个 table 需要大约 50 GB 的内存初始状态。 ~50 GB 是我将状态加载到 Scala HashMap[String,String] 时使用的 RAM 量。

对于随时间增长的单个 table,Flink 能否处理约 50 GB 的状态?

我能否以流式传输方式对此 table 执行查找和更新?

备注:

Flink状态下单个table50-100GB不是问题。

但需要明确的是,当我们谈论在 Flink 中拥有大量状态(例如 TB)时,我们谈论的是跨许多并行任务分片的键控状态。是的,您可以有一个非常大的 table,但任何给定的实例都只会包含 table.

行的子集

请注意,您将需要选择一个状态后端——要么是基于堆的状态后端,它将状态保存在内存中,作为 JVM 堆上的对象,要么是 RocksDB 状态后端,它将保存状态作为磁盘上带有内存缓存的序列化字节。