Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud dataflow 有状态DoFn的状态是否可以随TTL过期?还是无限增长可以?_Google Cloud Dataflow_Apache Beam - Fatal编程技术网

Google cloud dataflow 有状态DoFn的状态是否可以随TTL过期?还是无限增长可以?

Google cloud dataflow 有状态DoFn的状态是否可以随TTL过期?还是无限增长可以?,google-cloud-dataflow,apache-beam,Google Cloud Dataflow,Apache Beam,我在ApacheBeam(在Dataflow中运行)中遇到了这样一种情况,我基于创建了一个简单的有状态DoFn。上游窗口是全局的,改变它会影响下游聚合 目前,我并没有做任何事情来缩小这个州,它似乎只是变得无限大。这是真的吗?无界状态增长是一个问题吗 我只想将TTL附加到状态,但看不到此功能 我正在考虑在数据上存储自己的时间戳,并使用计时器定期清理表。这样做明智吗 存储的数据是某些事件数据上的缓存键。缓存键告诉我,我需要查找此事件的过去事件数据以生成当前事件。有状态的DoFn在这方面工作得很好,但

我在ApacheBeam(在Dataflow中运行)中遇到了这样一种情况,我基于创建了一个简单的有状态DoFn。上游窗口是全局的,改变它会影响下游聚合

目前,我并没有做任何事情来缩小这个州,它似乎只是变得无限大。这是真的吗?无界状态增长是一个问题吗

我只想将TTL附加到状态,但看不到此功能

我正在考虑在数据上存储自己的时间戳,并使用计时器定期清理表。这样做明智吗


存储的数据是某些事件数据上的缓存键。缓存键告诉我,我需要查找此事件的过去事件数据以生成当前事件。有状态的DoFn在这方面工作得很好,但正如我所说的,我担心它会变得无限。我不确定这在数据流中是否有任何后果。

当窗口过期时,状态会自动被垃圾收集。因为您使用的是全局窗口,所以它永远不会过期。所以你需要自己用定时器来管理

我不知道你的代码的细节,但你的想法听起来是对的:

  • 将时间戳与您的状态一起存储,这样您就知道它有多旧了
  • 设置定期重复的事件时间计时器:
    • 清理桌子上比TTL旧的东西
    • @OnTimer
      方法可以重置相同的计时器

您也可以直接为元素的TTL设置计时器,但这将导致触发更多计时器。因此,只有在音量低的情况下才是好的。(但如果卷较低,您可能不必太担心无限增长)

当窗口过期时,状态会自动被垃圾收集。因为您使用的是全局窗口,所以它永远不会过期。所以你需要自己用定时器来管理

我不知道你的代码的细节,但你的想法听起来是对的:

  • 将时间戳与您的状态一起存储,这样您就知道它有多旧了
  • 设置定期重复的事件时间计时器:
    • 清理桌子上比TTL旧的东西
    • @OnTimer
      方法可以重置相同的计时器
您也可以直接为元素的TTL设置计时器,但这将导致触发更多计时器。因此,只有在音量低的情况下才是好的。(但如果交易量很低,你可能不必太担心无限增长)

Hi!我们使用这个对象(StateSpec)在管道中存储元素的已处理键。如果我们使用事件时间处理,这个状态对象是否只会对过期的窗口中的事件自动进行垃圾收集?(不清除后续窗口中的任何后续事件)。(如果没有,是否有一个像我们正在使用的对象可以用TTL清除(即只清除statr中的olders事件而不清除所有事件)嗨!我们正在使用这个对象(StateSpec)将元素的已处理密钥存储在管道中。如果我们使用事件时间处理,此状态对象是否仅会针对已过期的窗口中的事件自动进行垃圾收集?(不清除后续窗口中的任何后续事件)。(如果没有,是否有与我们正在使用的对象类似的对象可以用TTL清除(即仅清除statr中的旧事件,而不清除所有旧事件)