Google cloud dataflow 数据流中的迭代处理

Google cloud dataflow 数据流中的迭代处理,google-cloud-dataflow,Google Cloud Dataflow,如图所示,数据流管道由固定的DAG表示。我想知道是否有可能实现一个管道,在这个管道中,处理将继续进行,直到根据到目前为止计算的数据满足动态评估的条件 下面是一些伪代码来说明我想要实现的内容: PCollection pco = null while(true): pco = pco.apply(someTransform()) if (conditionSatisfied(pco)): break pco.Write

如图所示,数据流管道由固定的DAG表示。我想知道是否有可能实现一个管道,在这个管道中,处理将继续进行,直到根据到目前为止计算的数据满足动态评估的条件

下面是一些伪代码来说明我想要实现的内容:

    PCollection pco = null
    while(true):
        pco = pco.apply(someTransform())
        if (conditionSatisfied(pco)):
            break
    pco.Write()

看起来你真的想要迭代计算。目前Dataflow不支持这一点,但我们知道这是一个非常重要的用例,我们正在努力寻找一组正确的API来表达它

目前,您的解决办法是:

  • 迭代运行整个管道(运行管道,检查输出,如果不满足条件,则再次运行,等等)。这有管道设置和拆卸开销的明显缺点
  • 通过在循环中无条件地应用(),以硬编码的迭代次数构建管道,然后运行整个管道
  • 两者的组合,例如运行固定的5次迭代管道,直到您对结果满意为止