在 Beam Dataflow 运行程序中使用状态处理和计时器(从 v2.1.0 开始)是否有任何准则或限制?例如状态大小或更新频率的限制等?候选流管道将广泛使用状态和计时器来表示用户会话状态,并使用 Bigtable 作为持久存储。
以下是针对您的用例的一些一般建议
- 请聚合多个元素然后设置计时器。
- 请不要为每个元素创建一个计时器,这会过多。
- 尝试聚合状态,而不是积累大量状态。 IE。聚合为总和和计数,而不是在尝试计算平均值时存储每个数字。
- 请考虑会话窗口 https://cloud.google.com/dataflow/model/windowing#session-windows对于这个用例。
- 在数据流中,合并窗口不支持状态。它是用于梁的。
- 请根据您的访问模式使用状态,即BagState https://beam.apache.org/documentation/sdks/javadoc/0.5.0/org/apache/beam/sdk/util/state/BagState.html用于盲写。
这是一篇内容丰富的博客文章,其中包含有关状态的更多信息“使用 Apache Beam 进行状态处理 https://beam.apache.org/blog/2017/02/13/stateful-processing.html."
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)