【问题标题】:Conditional iterations in Google cloud dataflow谷歌云数据流中的条件迭代
【发布时间】:2015-07-28 07:04:34
【问题描述】:

我正在寻找使用 Google Cloud Dataflow 实施数据分析算法的机会。请注意,我还没有数据流方面的经验。我只是在研究它是否能满足我的需求。

我的算法的一部分包含了一些条件迭代,即继续直到满足某个条件:

PCollection data  = ...
while(needsMoreWork(data)) {
  data = doAStep(data)
}

我查看了文档,据我所知,如果我知道流水线开始之前的确切迭代次数,我只能进行“迭代”。在这种情况下,我的管道构建代码​​可以创建一个具有固定步骤数的顺序管道。

我能想到的唯一“解决方案”是在单独的管道中运行每次迭代,将中间数据存储在某个数据库中,然后在我的管道构建中决定是否为下一次迭代启动新的管道。这似乎是一个效率极低的解决方案!

有没有什么好的方法可以在 Google 云数据流中执行这种额外的迭代?

谢谢!

【问题讨论】:

    标签: google-cloud-dataflow


    【解决方案1】:

    就目前而言,您提到的两个选项都是合理的。你甚至可以将这两种方法结合起来。创建一个执行几次迭代的管道(如果 needsMoreWork 为 false,则变为无操作),然后有一个主 Java 程序多次提交该管道,直到 needsMoreWork 为 false。

    我们已经多次看到这个用例,并希望将来能在本地解决它。原生支持正在https://github.com/GoogleCloudPlatform/DataflowJavaSDK/issues/50 中跟踪。

    【讨论】:

    • 谢谢。有什么地方可以跟踪这方面的进展吗?像错误跟踪器或类似的东西?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2019-11-21
    • 2021-05-15
    • 1970-01-01
    • 2015-05-24
    相关资源
    最近更新 更多