一旦执行了ScioContext,便无法修改scio管道,如何一个接一个地运行两个不同的任务/管道

时间:2020-01-13 23:02:37

标签: apache-beam spotify-scio

我正在使用scio v.0.8.0(即不再使用期货)。我需要从BigQuery中提取一些记录并将其保存回BQ。成功保存后,在重试一定次数后,我需要将丢失的记录发布到pubsub。

val (sc, scioArgs) = ContextAndArgs(args)
sc.bigQuerySelect(Query(reconciledQueryString))
    .map(****)
    .saveAsTypedBigQueryTable(Table.Spec(bigQueryConfig.getBigQueryPath("***")

val res = sc.run().waitUntilDone()

if(res.state == PipelineResult.State.DONE) {
    val (sc2, scioArgs2) = ContextAndArgs(args)

    sc.bigQuerySelect(Query(recoveryQueryString))
    .map(****)
    .saveAsCustomOutput("PubsubOut", pubsubOut(""****"")
        sc2.run().waitUntilDone()
}

第二个任务取决于第一个任务。如果我在相同的上下文中一个接一个地运行两个任务,则会收到“执行ScioContext后无法修改管道的信息”,如果我在第一个完成后实例化了第二个上下文,则该作业实际上将提交两个作业(这可能很好)。有没有办法在同一个上下文中协调两个任务并以某种方式在它们之间添加依赖关系?

0 个答案:

没有答案