2017-09-15 37 views
0

使用有状态处理和定时器对Beam Dataflow运行器(从v2.1.0起)有任何准则或限制吗?诸如对状态大小或更新频率等的限制?候选流式管道将广泛使用状态和定时器来实现用户会话状态,并将Bigtable作为持久存储。使用状态和定时器处理

回答

1

这里是你的使用情况

  • 请汇聚多个元素,然后设置一个计时器,一些一般性的建议。
  • 请不要为每个元素创建一个定时器,这会过度。
  • 尝试和聚合状态,而不是积累大量的状态。即汇总为总数和计数,而不是在计算平均值时存储每个数字。
  • 请考虑session windows这个用例。
  • 在数据流中,不支持合并窗口的状态。这是为了梁。
  • 请根据您的访问模式使用状态,即盲目写入BagState

这里是一个有关状态“Stateful processing with Apache Beam”的更多信息的信息博客文章。

+0

谢谢。由于缺乏对在Apache Beam中合并Windows的有状态DoFn的支持,因此我正在考虑使用全局窗口并使用计时器清除状态。在Dataflow的全局窗口中保留“空”状态单元的开销有多大? – Thomas