【问题标题】:Set priority for pipeline google dataflow为管道谷歌数据流设置优先级
【发布时间】:2017-08-11 02:13:50
【问题描述】:

我是谷歌数据流的新手。我有 2 个数据流管道来执行 2 个不同的作业。一个是 ETL 过程并加载到 Bigquery,另一个是从 Bigquery 中读取以汇总报告。 我想首先运行管道 ETL,完成后报告管道将运行以确保 bigquery 中的数据是最新更新的。

我曾尝试在一条管道中运行,但无济于事。现在我必须先手动运行 ETL,然后运行报表管道。

任何人都可以给我一些建议,让我在一个管道中运行 2 个作业。 谢谢。

【问题讨论】:

  • 我发现解决方案是:我在一个管道中构建 ETL 流程,在另一个管道中构建聚合流程,然后将每个管道导出到 jar 可运行文件,并使用 shell 脚本每天运行批处理作业计划聚合取决于 ETL 过程的状态。

标签: pipeline google-cloud-dataflow


【解决方案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(...);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多