2017-08-11 33 views
0

我是新的谷歌數據流。我有2個數據流管道來執行2個不同的工作。一個是ETL過程並加載到Bigquery,另一個從Bigquery讀取以彙總報告。 我想運行管道ETL firt,並在完成報告管道將運行以確保bigquery中的數據是最新更新。設置管道谷歌數據流的優先級

我曾嘗試在一條管道中運行,但它無能爲力。現在我必須先爲ETL運行手動,然後運行報告管道。

任何機構可以給我一些建議,在一條管道中運行2個工作。 謝謝。

+0

我找到了解決辦法是:我建立ETL過程在另一個管道一個管道和聚合過程中,在那之後我導出的每個管道罐子可運行的文件,我用shell腳本每天運行批處理作業計劃與聚合取決於ETL過程的狀態。 – lknguyen

回答

1

您應該可以在單一管道中執行這兩個操作。與寫入BigQuery然後嘗試讀取並生成報告不同,可以考慮將這些中間數據用於這兩種用途。例如:

PCollection<Input> input = /* ... */; 
// Perform your transformation logic 
PCollection<Intermediate> intermediate = input 
    .apply(...) 
    .apply(...); 
// Convert the transformed results into table rows and 
// write those to BigQuery. 
intermediate 
    .apply(ParDo.of(new IntermediateToTableRowETL()) 
    .apply(BigQueryIO.write(...)); 
// Generate your report over the transformed data 
intermediate 
    .apply(...) 
    .apply(...); 
+0

感謝@Ben,我會盡力的 – lknguyen