【问题标题】:Dataflow - State persistence specs数据流 - 状态持久性规范
【发布时间】:2021-12-18 11:24:57
【问题描述】:

我们正在考虑使用 Beam/Dataflow 进行状态处理。我们知道状态持久性由 Windmill/Persistent Disks [1] 管理。

他们是否知道这种持久性技术与替代技术(例如 RocksDB for Flink)的局限性?

谢谢!

[1]Dataflow - State persistence?

【问题讨论】:

标签: google-cloud-platform google-cloud-dataflow


【解决方案1】:

Apache Beam 实际上并不执行管道。我表达了管道的语义,并提供了一个用于描述用户代码的 SDK。但是 Apache Beam 旨在运行在任何运行器上,例如:

  • 数据流(由 Windmill 提供支持);
  • Flink;
  • 火花;
  • 等等……

这实际上是 Beam 的主要吸引力之一 - 它是可移植的,并且将管道语义与执行环境分开。

关于风车:

Windmill 是在流式 Dataflow 作业中在用户虚拟机上运行的进程。它负责执行worker之间的流式shuffle,持久化和维护管道状态的一致性。

风车和磁盘上的持久存储是一回事。 Windmill 将管道状态存储在永久磁盘上。

用户可以在使用 --diskSizeGb 启动管道时选择指定磁盘大小。重新加载作业时,先前作业的磁盘将转移到新作业。你可以看到Stack about it here

关于 Flink,是另一个 runner 所以,Dataflow 和 Flink 是不同的运行器。 RockDB 也使用磁盘存储,使用它的优势可能会有所不同,this article 提供了一些关于它的说明。

总而言之,这两种方法都将使用磁盘存储和其他方式,并且对使用的磁盘类型、环境有很大的依赖性。这不是一个简单的比较,如果真的很重要,我建议你测试两个环境。

【讨论】:

猜你喜欢
  • 2021-12-18
  • 2021-12-23
  • 1970-01-01
  • 2015-04-29
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 2016-02-17
  • 1970-01-01
相关资源
最近更新 更多