2016-03-15 51 views
1

我需要在流水線獲取其輸入數據之前清除表格,我希望這一步作爲管道本身的一部分在雲中運行,而不是在本地運行。Google 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

目前還沒有一種方法可以確保某個操作在同一管道中讀取之前發生。如果您需要在雲中運行您的操作,則可以將其作爲在第一個之前運行的單獨管道運行。

例如:

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