Google Dataflow中的管道初始化步骤

时间:2016-03-15 12:12:51

标签: google-cloud-dataflow

我需要在管道获取其输入数据之前清除一个表,并且我希望此步骤作为管道本身的一部分在云中运行,而不是在本地运行。

这就是代码目前的样子,clearTable()在本地运行:

    exactTargetIntegration.clearTable(); // runs locally
    Pipeline p = Pipeline.create(options);
    PCollection<String> readFromFile =
        p.apply(TextIO.Read.from(INPUT_FILES)); // runs in the cloud
    ...

有可能吗?

1 个答案:

答案 0 :(得分:1)

目前还没有办法确保在同一管道中读取之前发生某些操作。如果您需要在云中运行您的操作,则可以将其作为在第一个之前运行的单独管道运行。

例如:

DataflowPipelineOptions options = ...
options.setRunner(BlockingDataflowPipelineRunner.class);
Pipeline deletePipeline = <build deletion pipeline>
Pipeline mainPipeline = <build main pipeline>
deletePipeline.run(options);
mainPipeline.run(options);

此外,这个用例肯定是我们想要支持的;您可以在此处跟踪问题:https://issues.apache.org/jira/browse/BEAM-65